@@ -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