11local alerts = import './alerts.libsonnet' ;
2+ local config = import './config.libsonnet' ;
23local dashboards = import './dashboards.libsonnet' ;
34local datasources = import './datasources.libsonnet' ;
45local g = import './g.libsonnet' ;
@@ -7,58 +8,10 @@ local targets = import './targets.libsonnet';
78local commonlib = import 'common-lib/common/main.libsonnet' ;
89
910{
10- new(
11- filteringSelector,
12- groupLabels=['job' ],
13- instanceLabels=['instance' ],
14- dashboardNamePrefix='' ,
15- dashboardTags=[uid],
16- uid,
17- ): {
11+ new(): {
1812
1913 local this = self ,
20- config: {
21- // any modular library should include as inputs:
22- // 'dashboardNamePrefix' - Use as prefix for all Dashboards and (optional) rule groups
23- // 'filteringSelector' - Static selector to apply to ALL dashboard variables of type query, panel queries, alerts and recording rules.
24- // 'groupLabels' - one or more labels that can be used to identify 'group' of instances. In simple cases, can be 'job' or 'cluster'.
25- // 'instanceLabels' - one or more labels that can be used to identify single entity of instances. In simple cases, can be 'instance' or 'pod'.
26- // 'uid' - UID to prefix all dashboards original uids
27- groupLabels: groupLabels,
28- instanceLabels: instanceLabels,
29- filteringSelector: filteringSelector,
30- dashboardTags: dashboardTags,
31- uid: uid,
32- dashboardNamePrefix: dashboardNamePrefix,
33-
34- // optional
35- ignoreVolumes: 'HarddiskVolume.*' ,
36- alertsCPUThresholdWarning: '90' ,
37- alertMemoryUsageThresholdCritical: '90' ,
38- alertDiskUsageThresholdCritical: '90' ,
39- dashboardPeriod: 'now-1h' ,
40- dashboardTimezone: 'default' ,
41- dashboardRefresh: '1m' ,
42-
43- // optional Windows AD
44- alertsHighPendingReplicationOperations: 50 , // count
45- alertsHighReplicationSyncRequestFailures: 0 , // count
46- alertsHighPasswordChanges: 25 , // count
47- alertsMetricsDownJobName: 'integrations/windows_exporter' ,
48- enableADDashboard: false ,
49-
50- // logs lib related
51- enableLokiLogs: true ,
52- extraLogLabels: ['channel' , 'source' , 'keywords' , 'level' ],
53- logsVolumeGroupBy: 'level' ,
54- showLogsVolume: true ,
55- logsExtraFilters:
56- |||
57- | label_format timestamp="{{__timestamp__}}"
58- | drop channel_extracted,source_extracted,computer_extracted,level_extracted,keywords_extracted
59- | line_format `{{ if eq "[[instance]]" ".*" }}{{ alignLeft 25 .instance}}|{{end}}{{alignLeft 12 .channel }}| {{ alignLeft 25 .source}}| {{ .message }}`
60- ||| ,
61- },
14+ config: config,
6215 grafana: {
6316 variables: commonlib.variables.new(
6417 filteringSelector=this.config.filteringSelector,
@@ -74,7 +27,7 @@ local commonlib = import 'common-lib/common/main.libsonnet';
7427 reboot: commonlib.annotations.reboot.new(
7528 title='Reboot' ,
7629 target=this.grafana.targets.reboot,
77- instanceLabels=std.join (',' , instanceLabels),
30+ instanceLabels=std.join (',' , this.config. instanceLabels),
7831 )
7932 + commonlib.annotations.base.withTagKeys(std.join (',' , this.config.groupLabels + this.config.instanceLabels)),
8033 }
@@ -124,5 +77,8 @@ local commonlib = import 'common-lib/common/main.libsonnet';
12477 },
12578
12679 },
80+ withConfigMixin(config): {
81+ config+: config,
82+ },
12783
12884}
0 commit comments