From 9c3d7cfd771c1c7b3ecd2434ddde9926270b4e55 Mon Sep 17 00:00:00 2001 From: Egon Rijpkema Date: Tue, 12 Mar 2019 15:45:26 +0100 Subject: [PATCH] Added deviceCount Removed Unsupported messages as prometheus fails on that. --- nvidia_smi_exporter.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nvidia_smi_exporter.go b/nvidia_smi_exporter.go index 2899ad5..3b3f7d9 100644 --- a/nvidia_smi_exporter.go +++ b/nvidia_smi_exporter.go @@ -8,6 +8,7 @@ import ( "net/http" "os" "os/exec" + "strconv" "strings" ) @@ -39,13 +40,21 @@ func metrics(response http.ResponseWriter, request *http.Request) { "utilization.memory", "memory.total", "memory.free", "memory.used", "eccerrorsaggregate.total", "eccuncorrectedvolatile.total"} result := "" + max_id := "" for _, row := range records { name := fmt.Sprintf("%s[%s]", row[0], row[1]) for idx, value := range row[2:] { result = fmt.Sprintf( "%s%s{gpu=\"%s\"} %s\n", result, metricList[idx], name, value) + max_id = row[1] } + deviceCount := 0 + deviceCount, err = strconv.Atoi(max_id) + result = fmt.Sprintf( + "%sdeviceCount %d\n", result, deviceCount+1) + result = strings.Replace(result, "[Not Supported]", "-1", -1) + } fmt.Fprintf(response, strings.Replace(result, ".", "_", -1))