Skip to content

Commit e04c0bd

Browse files
Add new metrics to windows observ lib (#1457)
* Add new metrics to windows observ lib * make fmt * Move windows to signals example * Update windows-observ-lib/config.libsonnet Co-authored-by: Emily <[email protected]> --------- Co-authored-by: Emily <[email protected]>
1 parent b60cf9f commit e04c0bd

File tree

11 files changed

+91
-39
lines changed

11 files changed

+91
-39
lines changed

README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@ The monitoring mixins in this repository use two linting tools to ensure quality
4141

4242
Observability library is a flexible format to describe dashboards and alerts in a modular way so libraries can be imported into one another or into monitoring-mixins. Observability libraries can be found in folders with `-observ-lib` suffix. [Common library](https://github.com/grafana/jsonnet-libs/tree/master/common-lib) is also used to apply consistent style options.
4343

44-
Some examples:
45-
- [windows-observ-lib](windows-observ-lib/)
46-
4744
### Observability libraries signal extention
4845

4946
[Signal](https://github.com/grafana/jsonnet-libs/tree/master/common-lib/common/signal#signal) is the experimental extension to observability libraries format to declare metrics (signals) and then render them as different grafana panel types (timeseries, stat, table, etc), or alert rules.
@@ -56,6 +53,7 @@ Examples:
5653
- [process-observ-lib](process-observ-lib/)
5754
- [golang-observ-lib](golang-observ-lib/)
5855
- [csp-mixin](csp-mixin/)
56+
- [windows-observ-lib](windows-observ-lib/)
5957

6058
## Prometheus rules testing for monitoring mixins and observability libraries
6159

windows-observ-lib/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ local config = (import 'config.libsonnet')._config;
6363
uid: 'windows',
6464
// prefix dashboards titles
6565
dashboardNamePrefix: '',
66+
metricSource: ['prometheus', 'prometheus_pre_0_30'],
6667
dashboardTags: ['windows'],
6768
dashboardPeriod: 'now-1h',
6869
dashboardTimezone: 'default',
@@ -100,7 +101,7 @@ Drill down disks dashboard:
100101

101102
## Collectors used:
102103

103-
Grafana Agent or combination of windows_exporter/promtail can be used in order to collect data required.
104+
Grafana Agent/Alloy or combination of windows_exporter/promtail can be used in order to collect data required.
104105

105106
The following collectors should be enabled in windows_exporter/windows integration:
106107

windows-observ-lib/config.libsonnet

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212
dashboardTags: ['windows'],
1313
uid: 'windows',
1414
dashboardNamePrefix: '',
15-
metricsSource: 'prometheus', // metrics source for signals
15+
16+
// 'prometheus_pre_0_30' points to old metrics schema prior to breaking changes in windows_exporter v0.30.0,
17+
// 'prometheus' points to current metrics schema.
18+
// Use any of the above or both.
19+
metricsSource: ['prometheus', 'prometheus_pre_0_30'],
1620

1721
// optional
1822
ignoreVolumes: 'HarddiskVolume.*',

windows-observ-lib/dashboards_out/disks

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"uid": "${prometheus_datasource}"
2222
},
2323
"enable": true,
24-
"expr": "windows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
24+
"expr": "windows_system_boot_time_timestamp_seconds{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
2525
"hide": true,
2626
"iconColor": "light-yellow",
2727
"name": "Reboot",

windows-observ-lib/dashboards_out/fleet

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"uid": "${prometheus_datasource}"
2222
},
2323
"enable": true,
24-
"expr": "windows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
24+
"expr": "windows_system_boot_time_timestamp_seconds{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
2525
"hide": true,
2626
"iconColor": "light-yellow",
2727
"name": "Reboot",
@@ -429,7 +429,7 @@
429429
"type": "prometheus",
430430
"uid": "${prometheus_datasource}"
431431
},
432-
"expr": "time() - windows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}",
432+
"expr": "time() - windows_system_boot_time_timestamp_seconds{job=~\"$job\",instance=~\"$instance\"}\nor\ntime() - windows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}",
433433
"format": "table",
434434
"instant": true,
435435
"legendFormat": "{{instance}}: Uptime",
@@ -440,7 +440,7 @@
440440
"type": "prometheus",
441441
"uid": "${prometheus_datasource}"
442442
},
443-
"expr": "windows_cs_logical_processors{job=~\"$job\",instance=~\"$instance\"}",
443+
"expr": "windows_cpu_logical_processor{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_cs_logical_processors{job=~\"$job\",instance=~\"$instance\"}",
444444
"format": "table",
445445
"instant": true,
446446
"legendFormat": "{{instance}}: Cores",
@@ -462,7 +462,7 @@
462462
"type": "prometheus",
463463
"uid": "${prometheus_datasource}"
464464
},
465-
"expr": "windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"}",
465+
"expr": "windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_memory_physical_total_bytes{job=~\"$job\",instance=~\"$instance\"}",
466466
"format": "table",
467467
"instant": true,
468468
"legendFormat": "Memory total",
@@ -473,7 +473,7 @@
473473
"type": "prometheus",
474474
"uid": "${prometheus_datasource}"
475475
},
476-
"expr": "100 - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} * 100",
476+
"expr": "100 - windows_memory_physical_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_memory_physical_total_bytes{job=~\"$job\",instance=~\"$instance\"} * 100\nor\n100 - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} * 100",
477477
"format": "table",
478478
"instant": true,
479479
"legendFormat": "{{instance}}: Usage",
@@ -767,7 +767,7 @@
767767
"type": "prometheus",
768768
"uid": "${prometheus_datasource}"
769769
},
770-
"expr": "topk(25,100 - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} * 100)",
770+
"expr": "topk(25,100 - windows_memory_physical_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_memory_physical_total_bytes{job=~\"$job\",instance=~\"$instance\"} * 100\nor\n100 - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} * 100)",
771771
"format": "time_series",
772772
"instant": false,
773773
"legendFormat": "{{instance}}",
@@ -778,7 +778,7 @@
778778
"type": "prometheus",
779779
"uid": "${prometheus_datasource}"
780780
},
781-
"expr": "avg(100 - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} * 100)",
781+
"expr": "avg(100 - windows_memory_physical_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_memory_physical_total_bytes{job=~\"$job\",instance=~\"$instance\"} * 100\nor\n100 - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} * 100)",
782782
"format": "time_series",
783783
"instant": false,
784784
"legendFormat": "Mean",

windows-observ-lib/dashboards_out/logs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"uid": "${prometheus_datasource}"
2222
},
2323
"enable": true,
24-
"expr": "windows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
24+
"expr": "windows_system_boot_time_timestamp_seconds{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
2525
"hide": true,
2626
"iconColor": "light-yellow",
2727
"name": "Reboot",

windows-observ-lib/dashboards_out/overview

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"uid": "${prometheus_datasource}"
2222
},
2323
"enable": true,
24-
"expr": "windows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
24+
"expr": "windows_system_boot_time_timestamp_seconds{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
2525
"hide": true,
2626
"iconColor": "light-yellow",
2727
"name": "Reboot",
@@ -128,7 +128,7 @@
128128
"type": "prometheus",
129129
"uid": "${prometheus_datasource}"
130130
},
131-
"expr": "time() - windows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}",
131+
"expr": "time() - windows_system_boot_time_timestamp_seconds{job=~\"$job\",instance=~\"$instance\"}\nor\ntime() - windows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}",
132132
"format": "time_series",
133133
"instant": false,
134134
"legendFormat": "{{instance}}: Uptime",
@@ -320,7 +320,7 @@
320320
"type": "prometheus",
321321
"uid": "${prometheus_datasource}"
322322
},
323-
"expr": "windows_cs_logical_processors{job=~\"$job\",instance=~\"$instance\"}",
323+
"expr": "windows_cpu_logical_processor{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_cs_logical_processors{job=~\"$job\",instance=~\"$instance\"}",
324324
"format": "time_series",
325325
"instant": false,
326326
"legendFormat": "{{instance}}: Cores",
@@ -368,7 +368,7 @@
368368
"type": "prometheus",
369369
"uid": "${prometheus_datasource}"
370370
},
371-
"expr": "windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"}",
371+
"expr": "windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_memory_physical_total_bytes{job=~\"$job\",instance=~\"$instance\"}",
372372
"format": "time_series",
373373
"instant": false,
374374
"legendFormat": "Memory total",
@@ -646,7 +646,7 @@
646646
"type": "prometheus",
647647
"uid": "${prometheus_datasource}"
648648
},
649-
"expr": "100 - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} * 100",
649+
"expr": "100 - windows_memory_physical_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_memory_physical_total_bytes{job=~\"$job\",instance=~\"$instance\"} * 100\nor\n100 - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"} / windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} * 100",
650650
"format": "time_series",
651651
"instant": false,
652652
"legendFormat": "{{instance}}: Usage",
@@ -730,7 +730,7 @@
730730
"type": "prometheus",
731731
"uid": "${prometheus_datasource}"
732732
},
733-
"expr": "windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"}",
733+
"expr": "windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"} - windows_os_physical_memory_free_bytes{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_memory_physical_total_bytes{job=~\"$job\",instance=~\"$instance\"} - windows_memory_physical_free_bytes{job=~\"$job\",instance=~\"$instance\"}",
734734
"format": "time_series",
735735
"instant": false,
736736
"legendFormat": "Memory used",
@@ -741,7 +741,7 @@
741741
"type": "prometheus",
742742
"uid": "${prometheus_datasource}"
743743
},
744-
"expr": "windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"}",
744+
"expr": "windows_cs_physical_memory_bytes{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_memory_physical_total_bytes{job=~\"$job\",instance=~\"$instance\"}",
745745
"format": "time_series",
746746
"instant": false,
747747
"legendFormat": "Memory total",

windows-observ-lib/dashboards_out/system

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"uid": "${prometheus_datasource}"
2222
},
2323
"enable": true,
24-
"expr": "windows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
24+
"expr": "windows_system_boot_time_timestamp_seconds{job=~\"$job\",instance=~\"$instance\"}\nor\nwindows_system_system_up_time{job=~\"$job\",instance=~\"$instance\"}*1000 > $__from < $__to",
2525
"hide": true,
2626
"iconColor": "light-yellow",
2727
"name": "Reboot",
@@ -474,7 +474,7 @@
474474
"type": "prometheus",
475475
"uid": "${prometheus_datasource}"
476476
},
477-
"expr": "windows_os_timezone{job=~\"$job\",instance=~\"$instance\"}",
477+
"expr": "windows_os_timezone{job=~\"$job\",instance=~\"$instance\"}\nor ignoring(timezone)\nwindows_time_timezone{job=~\"$job\",instance=~\"$instance\"}",
478478
"format": "table",
479479
"instant": false,
480480
"legendFormat": "{{instance}}: Timezone",
@@ -530,7 +530,7 @@
530530
"type": "prometheus",
531531
"uid": "${prometheus_datasource}"
532532
},
533-
"expr": "clamp_max(windows_time_ntp_client_time_sources{job=~\"$job\",instance=~\"$instance\"}, 1)",
533+
"expr": "clamp_max(\n windows_time_ntp_client_time_sources{job=~\"$job\",instance=~\"$instance\"}\n,1)",
534534
"format": "time_series",
535535
"instant": false,
536536
"legendFormat": "NTP status",

windows-observ-lib/prometheus_rules_out/prometheus_alerts.yaml

Lines changed: 9 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

windows-observ-lib/signals/memory.libsonnet

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ function(this)
99
aggLevel: 'none',
1010
aggFunction: 'avg',
1111
discoveryMetric: {
12-
prometheus: 'windows_cs_physical_memory_bytes',
12+
prometheus: 'windows_memory_physical_total_bytes',
13+
prometheus_pre_0_30: 'windows_cs_physical_memory_bytes',
1314
},
1415
signals: {
1516
memoryTotal: {
@@ -19,10 +20,14 @@ function(this)
1920
description: 'Total physical memory in bytes',
2021
unit: 'bytes',
2122
sources: {
22-
prometheus: {
23+
prometheus_pre_0_30: {
2324
expr: 'windows_cs_physical_memory_bytes{%(queriesSelector)s}',
2425
legendCustomTemplate: 'Memory total',
2526
},
27+
prometheus: {
28+
expr: 'windows_memory_physical_total_bytes{%(queriesSelector)s}',
29+
legendCustomTemplate: 'Memory total',
30+
},
2631
},
2732
},
2833
memoryFree: {
@@ -32,34 +37,45 @@ function(this)
3237
description: 'Free physical memory in bytes',
3338
unit: 'bytes',
3439
sources: {
35-
prometheus: {
40+
prometheus_pre_0_30: {
3641
expr: 'windows_os_physical_memory_free_bytes{%(queriesSelector)s}',
3742
},
43+
prometheus: {
44+
expr: 'windows_memory_physical_free_bytes{%(queriesSelector)s}',
45+
},
3846
},
3947
},
4048
memoryUsed: {
4149
name: 'Memory used',
4250
nameShort: 'Used',
43-
type: 'gauge',
51+
type: 'raw',
4452
description: 'Used physical memory in bytes',
4553
unit: 'bytes',
4654
sources: {
47-
prometheus: {
55+
prometheus_pre_0_30: {
4856
expr: 'windows_cs_physical_memory_bytes{%(queriesSelector)s} - windows_os_physical_memory_free_bytes{%(queriesSelector)s}',
4957
legendCustomTemplate: 'Memory used',
5058
},
59+
prometheus: {
60+
expr: 'windows_memory_physical_total_bytes{%(queriesSelector)s} - windows_memory_physical_free_bytes{%(queriesSelector)s}',
61+
legendCustomTemplate: 'Memory used',
62+
},
63+
5164
},
5265
},
5366
memoryUsagePercent: {
5467
name: 'Memory usage',
5568
nameShort: 'Usage',
56-
type: 'gauge',
69+
type: 'raw',
5770
description: 'Memory usage percentage',
5871
unit: 'percent',
5972
sources: {
60-
prometheus: {
73+
prometheus_pre_0_30: {
6174
expr: '100 - windows_os_physical_memory_free_bytes{%(queriesSelector)s} / windows_cs_physical_memory_bytes{%(queriesSelector)s} * 100',
6275
},
76+
prometheus: {
77+
expr: '100 - windows_memory_physical_free_bytes{%(queriesSelector)s} / windows_memory_physical_total_bytes{%(queriesSelector)s} * 100',
78+
},
6379
},
6480
},
6581
memoryPageTotal: {
@@ -81,21 +97,28 @@ function(this)
8197
description: 'Free page file space in bytes',
8298
unit: 'bytes',
8399
sources: {
84-
prometheus: {
100+
//https://github.com/prometheus-community/windows_exporter/pull/1735
101+
prometheus_pre_0_30: {
85102
expr: 'windows_os_paging_free_bytes{%(queriesSelector)s}',
86103
},
104+
prometheus: {
105+
expr: 'windows_pagefile_free_bytes{%(queriesSelector)s}',
106+
},
87107
},
88108
},
89109
memoryPageUsed: {
90110
name: 'Page file used',
91111
nameShort: 'Page used',
92-
type: 'gauge',
112+
type: 'raw',
93113
description: 'Used page file space in bytes',
94114
unit: 'bytes',
95115
sources: {
96-
prometheus: {
116+
prometheus_pre_0_30: {
97117
expr: 'windows_os_paging_limit_bytes{%(queriesSelector)s} - windows_os_paging_free_bytes{%(queriesSelector)s}',
98118
},
119+
prometheus: {
120+
expr: 'windows_pagefile_limit_bytes{%(queriesSelector)s} - windows_pagefile_free_bytes{%(queriesSelector)s}',
121+
},
99122
},
100123
},
101124
},

0 commit comments

Comments
 (0)