Skip to content

Commit 33cc694

Browse files
authored
Merge pull request #1308 from PaytmLabs/feature/separate-thanos-rules
Create Thanos Sidecar rules separately from Prometheus ones
2 parents 54d8f88 + 961f138 commit 33cc694

File tree

1 file changed

+32
-14
lines changed

1 file changed

+32
-14
lines changed

jsonnet/kube-prometheus/components/prometheus.libsonnet

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,22 @@ function(params) {
5050
assert std.isObject(p._config.resources),
5151
assert std.isObject(p._config.mixin._config),
5252

53-
mixin:: (import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') +
54-
(import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') + (
55-
if p._config.thanos != {} then
56-
(import 'github.com/thanos-io/thanos/mixin/alerts/sidecar.libsonnet') + {
57-
targetGroups: {},
58-
sidecar: {
59-
selector: p._config.mixin._config.thanosSelector,
60-
dimensions: std.join(', ', ['job', 'instance']),
61-
},
62-
}
63-
else {}
64-
) {
65-
_config+:: p._config.mixin._config,
66-
},
53+
mixin::
54+
(import 'github.com/prometheus/prometheus/documentation/prometheus-mixin/mixin.libsonnet') +
55+
(import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') + {
56+
_config+:: p._config.mixin._config,
57+
},
58+
59+
mixinThanos::
60+
(import 'github.com/thanos-io/thanos/mixin/alerts/sidecar.libsonnet') +
61+
(import 'github.com/kubernetes-monitoring/kubernetes-mixin/lib/add-runbook-links.libsonnet') + {
62+
_config+:: p._config.mixin._config,
63+
targetGroups: {},
64+
sidecar: {
65+
selector: p._config.mixin._config.thanosSelector,
66+
dimensions: std.join(', ', ['job', 'instance']),
67+
},
68+
},
6769

6870
prometheusRule: {
6971
apiVersion: 'monitoring.coreos.com/v1',
@@ -327,6 +329,22 @@ function(params) {
327329
},
328330
},
329331

332+
// Include thanos sidecar PrometheusRule only if thanos config was passed by user
333+
[if std.objectHas(params, 'thanos') && std.length(params.thanos) > 0 then 'prometheusRuleThanosSidecar']: {
334+
apiVersion: 'monitoring.coreos.com/v1',
335+
kind: 'PrometheusRule',
336+
metadata: {
337+
labels: p._config.commonLabels + p._config.mixin.ruleLabels,
338+
name: 'prometheus-' + p._config.name + '-thanos-sidecar-rules',
339+
namespace: p._config.namespace,
340+
},
341+
spec: {
342+
local r = if std.objectHasAll(p.mixinThanos, 'prometheusRules') then p.mixinThanos.prometheusRules.groups else [],
343+
local a = if std.objectHasAll(p.mixinThanos, 'prometheusAlerts') then p.mixinThanos.prometheusAlerts.groups else [],
344+
groups: a + r,
345+
},
346+
},
347+
330348
// Include thanos sidecar Service only if thanos config was passed by user
331349
[if std.objectHas(params, 'thanos') && std.length(params.thanos) > 0 then 'serviceThanosSidecar']: {
332350
apiVersion: 'v1',

0 commit comments

Comments
 (0)