Skip to content

Commit c6d6ebd

Browse files
committed
Add mitigation information to the linux vulnerabilities collector
While the CPU vulnerabilities collector has been added in #2721 , it's currently not including information regarding the mitigation strategy used for a given vulnerability. This information can be quite valuable, as often times different mitigation strategies come with a different performance impact. This commit adds a third label to the cpu_vulnerabilities_info metric, to include the "mitigation" used for a given vulnerability - if a given vulnerability is not affecting a node or the node is still vulnerable, the mitigation is expected to be empty. Signed-off-by: João Lima <[email protected]>
1 parent f34aaa6 commit c6d6ebd

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

collector/cpu_vulnerabilities_linux.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var (
2929
vulnerabilityDesc = prometheus.NewDesc(
3030
prometheus.BuildFQName(namespace, cpuVulerabilitiesCollector, "info"),
3131
"Details of each CPU vulnerability reported by sysfs. The value of the series is an int encoded state of the vulnerability. The same state is stored as a string in the label",
32-
[]string{"codename", "state"},
32+
[]string{"codename", "state", "mitigation"},
3333
nil,
3434
)
3535
)
@@ -62,6 +62,7 @@ func (v *cpuVulnerabilitiesCollector) Update(ch chan<- prometheus.Metric) error
6262
1.0,
6363
vulnerability.CodeName,
6464
sysfs.VulnerabilityHumanEncoding[vulnerability.State],
65+
vulnerability.Mitigation,
6566
)
6667
}
6768
return nil

collector/fixtures/e2e-64k-page-output.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -404,11 +404,11 @@ node_cpu_seconds_total{cpu="7",mode="system"} 101.64
404404
node_cpu_seconds_total{cpu="7",mode="user"} 290.98
405405
# HELP node_cpu_vulnerabilities_info Details of each CPU vulnerability reported by sysfs. The value of the series is an int encoded state of the vulnerability. The same state is stored as a string in the label
406406
# TYPE node_cpu_vulnerabilities_info gauge
407-
node_cpu_vulnerabilities_info{codename="itlb_multihit",state="not affected"} 1
408-
node_cpu_vulnerabilities_info{codename="mds",state="vulnerable"} 1
409-
node_cpu_vulnerabilities_info{codename="retbleed",state="mitigation"} 1
410-
node_cpu_vulnerabilities_info{codename="spectre_v1",state="mitigation"} 1
411-
node_cpu_vulnerabilities_info{codename="spectre_v2",state="mitigation"} 1
407+
node_cpu_vulnerabilities_info{codename="itlb_multihit",mitigation="",state="not affected"} 1
408+
node_cpu_vulnerabilities_info{codename="mds",mitigation="",state="vulnerable"} 1
409+
node_cpu_vulnerabilities_info{codename="retbleed",mitigation="untrained return thunk; SMT enabled with STIBP protection",state="mitigation"} 1
410+
node_cpu_vulnerabilities_info{codename="spectre_v1",mitigation="usercopy/swapgs barriers and __user pointer sanitization",state="mitigation"} 1
411+
node_cpu_vulnerabilities_info{codename="spectre_v2",mitigation="Retpolines, IBPB: conditional, STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected",state="mitigation"} 1
412412
# HELP node_disk_ata_rotation_rate_rpm ATA disk rotation rate in RPMs (0 for SSDs).
413413
# TYPE node_disk_ata_rotation_rate_rpm gauge
414414
node_disk_ata_rotation_rate_rpm{device="sda"} 7200

collector/fixtures/e2e-output.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -426,11 +426,11 @@ node_cpu_seconds_total{cpu="7",mode="system"} 101.64
426426
node_cpu_seconds_total{cpu="7",mode="user"} 290.98
427427
# HELP node_cpu_vulnerabilities_info Details of each CPU vulnerability reported by sysfs. The value of the series is an int encoded state of the vulnerability. The same state is stored as a string in the label
428428
# TYPE node_cpu_vulnerabilities_info gauge
429-
node_cpu_vulnerabilities_info{codename="itlb_multihit",state="not affected"} 1
430-
node_cpu_vulnerabilities_info{codename="mds",state="vulnerable"} 1
431-
node_cpu_vulnerabilities_info{codename="retbleed",state="mitigation"} 1
432-
node_cpu_vulnerabilities_info{codename="spectre_v1",state="mitigation"} 1
433-
node_cpu_vulnerabilities_info{codename="spectre_v2",state="mitigation"} 1
429+
node_cpu_vulnerabilities_info{codename="itlb_multihit",mitigation="",state="not affected"} 1
430+
node_cpu_vulnerabilities_info{codename="mds",mitigation="",state="vulnerable"} 1
431+
node_cpu_vulnerabilities_info{codename="retbleed",mitigation="untrained return thunk; SMT enabled with STIBP protection",state="mitigation"} 1
432+
node_cpu_vulnerabilities_info{codename="spectre_v1",mitigation="usercopy/swapgs barriers and __user pointer sanitization",state="mitigation"} 1
433+
node_cpu_vulnerabilities_info{codename="spectre_v2",mitigation="Retpolines, IBPB: conditional, STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected",state="mitigation"} 1
434434
# HELP node_disk_ata_rotation_rate_rpm ATA disk rotation rate in RPMs (0 for SSDs).
435435
# TYPE node_disk_ata_rotation_rate_rpm gauge
436436
node_disk_ata_rotation_rate_rpm{device="sda"} 7200

0 commit comments

Comments
 (0)