Skip to content

Commit 895fbb1

Browse files
committed
nvme_metrics: introduce nvme_namespace_info metric
Introduce info metric to facilitate join-relationship between namespace-specific and controller-specific metrics. e.g. nvme_namespace_info{controller="nvme0",namepace="nvme0n1",nsid="1"} Signed-off-by: Daniel Swarbrick <[email protected]>
1 parent da956a5 commit 895fbb1

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

Diff for: nvme_metrics.py

+15-4
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@
114114
),
115115

116116
# Namespace-specific (e.g. "nvme0n1") metrics
117+
"namespace_info": Info(
118+
"namespace",
119+
"Namespace information",
120+
["namepace", "nsid", "controller"], namespace=namespace, registry=registry,
121+
),
117122
"physical_size": Gauge(
118123
"physical_size_bytes",
119124
"Device size in bytes",
@@ -179,11 +184,17 @@ def main():
179184
)
180185

181186
for ns in ctrl["Namespaces"]:
182-
device_name = ns["NameSpace"]
187+
ns_dev = ns["NameSpace"]
188+
189+
metrics["namespace_info"].labels(
190+
ns_dev,
191+
ns["NSID"],
192+
ctrl_dev,
193+
)
183194

184-
metrics["sector_size"].labels(device_name).set(ns["SectorSize"])
185-
metrics["physical_size"].labels(device_name).set(ns["PhysicalSize"])
186-
metrics["used_bytes"].labels(device_name).set(ns["UsedBytes"])
195+
metrics["sector_size"].labels(ns_dev).set(ns["SectorSize"])
196+
metrics["physical_size"].labels(ns_dev).set(ns["PhysicalSize"])
197+
metrics["used_bytes"].labels(ns_dev).set(ns["UsedBytes"])
187198

188199
# Most SSDs (perhaps _all_ consumer grade SSDs) only contain a single namespace.
189200
# Fetch the device global SMART log by omitting any --namespace-id flag.

0 commit comments

Comments
 (0)