Merge pull request #1308 from PaytmLabs/feature/separate-thanos-rules

Create Thanos Sidecar rules separately from Prometheus ones
This commit is contained in:
Damien Grisonnet
2021-08-05 16:19:01 +02:00
committed by GitHub

View File

@@ -50,20 +50,22 @@ function(params) {
assert std.isObject(p._config.resources), assert std.isObject(p._config.resources),
assert std.isObject(p._config.mixin._config), assert std.isObject(p._config.mixin._config),
mixin:: (import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') + mixin::
(import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') + ( (import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') +
if p._config.thanos != {} then (import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') + {
(import 'github.com/thanos-io/thanos/mixin/alerts/sidecar.libsonnet') + { _config+:: p._config.mixin._config,
targetGroups: {}, },
sidecar: {
selector: p._config.mixin._config.thanosSelector, mixinThanos::
dimensions: std.join(', ', ['job', 'instance']), (import 'github.com/thanos-io/thanos/mixin/alerts/sidecar.libsonnet') +
}, (import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') + {
} _config+:: p._config.mixin._config,
else {} targetGroups: {},
) { sidecar: {
_config+:: p._config.mixin._config, selector: p._config.mixin._config.thanosSelector,
}, dimensions: std.join(', ', ['job', 'instance']),
},
},
prometheusRule: { prometheusRule: {
apiVersion: 'monitoring.coreos.com/v1', apiVersion: 'monitoring.coreos.com/v1',
@@ -327,6 +329,22 @@ function(params) {
}, },
}, },
// Include thanos sidecar PrometheusRule only if thanos config was passed by user
[if std.objectHas(params, 'thanos') && std.length(params.thanos) > 0 then 'prometheusRuleThanosSidecar']: {
apiVersion: 'monitoring.coreos.com/v1',
kind: 'PrometheusRule',
metadata: {
labels: p._config.commonLabels + p._config.mixin.ruleLabels,
name: 'prometheus-' + p._config.name + '-thanos-sidecar-rules',
namespace: p._config.namespace,
},
spec: {
local r = if std.objectHasAll(p.mixinThanos, 'prometheusRules') then p.mixinThanos.prometheusRules.groups else [],
local a = if std.objectHasAll(p.mixinThanos, 'prometheusAlerts') then p.mixinThanos.prometheusAlerts.groups else [],
groups: a + r,
},
},
// Include thanos sidecar Service only if thanos config was passed by user // Include thanos sidecar Service only if thanos config was passed by user
[if std.objectHas(params, 'thanos') && std.length(params.thanos) > 0 then 'serviceThanosSidecar']: { [if std.objectHas(params, 'thanos') && std.length(params.thanos) > 0 then 'serviceThanosSidecar']: {
apiVersion: 'v1', apiVersion: 'v1',