From 3a0f148728d58de9320541232b11adce4eb141e2 Mon Sep 17 00:00:00 2001 From: Thomas Gruber Date: Tue, 17 Jun 2025 10:35:51 +0200 Subject: [PATCH 01/12] Fix Typo in gpfsMetric.md --- collectors/gpfsMetric.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collectors/gpfsMetric.md b/collectors/gpfsMetric.md index 975d5c5..3902569 100644 --- a/collectors/gpfsMetric.md +++ b/collectors/gpfsMetric.md @@ -12,7 +12,7 @@ hugo_path: docs/reference/cc-metric-collector/collectors/gpfs.md ## `gpfs` collector ```json - "ibstat": { + "gpfs": { "mmpmon_path": "/path/to/mmpmon", "exclude_filesystem": [ "fs1" From fabb37ea70d2450b00743f5c5b7c0c671a08f919 Mon Sep 17 00:00:00 2001 From: Thomas Roehl Date: Tue, 22 Apr 2025 12:48:15 +0200 Subject: [PATCH 02/12] Fix URL to new location of cc-units --- internal/metricRouter/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/metricRouter/README.md b/internal/metricRouter/README.md index 0ab75be..57b504c 100644 --- a/internal/metricRouter/README.md +++ b/internal/metricRouter/README.md @@ -236,13 +236,13 @@ __deprecated__ The cc-metric-collector tries to read the data from the system as it is reported. If available, it tries to read the metric unit from the system as well (e.g. from `/proc/meminfo`). The problem is that, depending on the source, the metric units are named differently. Just think about `byte`, `Byte`, `B`, `bytes`, ... -The [cc-units](https://github.com/ClusterCockpit/cc-units) package provides us a normalization option to use the same metric unit name for all metrics. It this option is set to true, all `unit` meta tags are normalized. +The [cc-units](https://github.com/ClusterCockpit/cc-lib/ccUnits) package provides us a normalization option to use the same metric unit name for all metrics. It this option is set to true, all `unit` meta tags are normalized. ## The `change_unit_prefix` section __deprecated__ -It is often the case that metrics are reported by the system using a rather outdated unit prefix (like `/proc/meminfo` still uses kByte despite current memory sizes are in the GByte range). If you want to change the prefix of a unit, you can do that with the help of [cc-units](https://github.com/ClusterCockpit/cc-units). The setting works on the metric name and requires the new prefix for the metric. The cc-units package determines the scaling factor. +It is often the case that metrics are reported by the system using a rather outdated unit prefix (like `/proc/meminfo` still uses kByte despite current memory sizes are in the GByte range). If you want to change the prefix of a unit, you can do that with the help of [cc-units](https://github.com/ClusterCockpit/cc-lib/ccUnits). The setting works on the metric name and requires the new prefix for the metric. The cc-units package determines the scaling factor. # Aggregate metric values of the current interval with the `interval_aggregates` option From f74d856e69543300345391c90ba947959989b585 Mon Sep 17 00:00:00 2001 From: Thomas Gruber Date: Mon, 28 Apr 2025 18:01:07 +0200 Subject: [PATCH 03/12] Nvidia energy metrics to Nvidia collector (#144) * Add energy metrics from NVML to Nvidia NVML collector * Add energy metrics to Nvidia collector README --- collectors/nvidiaMetric.go | 113 ++++++++++++++++++++++++++++--------- collectors/nvidiaMetric.md | 3 + 2 files changed, 89 insertions(+), 27 deletions(-) diff --git a/collectors/nvidiaMetric.go b/collectors/nvidiaMetric.go index 4f6dbde..8197777 100644 --- a/collectors/nvidiaMetric.go +++ b/collectors/nvidiaMetric.go @@ -27,10 +27,12 @@ type NvidiaCollectorConfig struct { } type NvidiaCollectorDevice struct { - device nvml.Device - excludeMetrics map[string]bool - tags map[string]string - meta map[string]string + device nvml.Device + excludeMetrics map[string]bool + tags map[string]string + meta map[string]string + lastEnergyReading uint64 + lastEnergyTimestamp time.Time } type NvidiaCollector struct { @@ -149,6 +151,8 @@ func (m *NvidiaCollector) Init(config json.RawMessage) error { // Add device handle g.device = device + g.lastEnergyReading = 0 + g.lastEnergyTimestamp = time.Now() // Add tags g.tags = map[string]string{ @@ -206,7 +210,7 @@ func (m *NvidiaCollector) Init(config json.RawMessage) error { return nil } -func readMemoryInfo(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readMemoryInfo(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_fb_mem_total"] || !device.excludeMetrics["nv_fb_mem_used"] || !device.excludeMetrics["nv_fb_mem_reserved"] { var total uint64 var used uint64 @@ -250,7 +254,7 @@ func readMemoryInfo(device NvidiaCollectorDevice, output chan lp.CCMessage) erro return nil } -func readBarMemoryInfo(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readBarMemoryInfo(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_bar1_mem_total"] || !device.excludeMetrics["nv_bar1_mem_used"] { meminfo, ret := nvml.DeviceGetBAR1MemoryInfo(device.device) if ret != nvml.SUCCESS { @@ -277,7 +281,7 @@ func readBarMemoryInfo(device NvidiaCollectorDevice, output chan lp.CCMessage) e return nil } -func readUtilization(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readUtilization(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { isMig, ret := nvml.DeviceIsMigDeviceHandle(device.device) if ret != nvml.SUCCESS { err := errors.New(nvml.ErrorString(ret)) @@ -319,7 +323,7 @@ func readUtilization(device NvidiaCollectorDevice, output chan lp.CCMessage) err return nil } -func readTemp(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readTemp(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_temp"] { // Retrieves the current temperature readings for the device, in degrees C. // @@ -338,7 +342,7 @@ func readTemp(device NvidiaCollectorDevice, output chan lp.CCMessage) error { return nil } -func readFan(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readFan(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_fan"] { // Retrieves the intended operating speed of the device's fan. // @@ -361,7 +365,7 @@ func readFan(device NvidiaCollectorDevice, output chan lp.CCMessage) error { return nil } -// func readFans(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +// func readFans(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { // if !device.excludeMetrics["nv_fan"] { // numFans, ret := nvml.DeviceGetNumFans(device.device) // if ret == nvml.SUCCESS { @@ -382,7 +386,7 @@ func readFan(device NvidiaCollectorDevice, output chan lp.CCMessage) error { // return nil // } -func readEccMode(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readEccMode(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_ecc_mode"] { // Retrieves the current and pending ECC modes for the device. // @@ -416,7 +420,7 @@ func readEccMode(device NvidiaCollectorDevice, output chan lp.CCMessage) error { return nil } -func readPerfState(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readPerfState(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_perf_state"] { // Retrieves the current performance state for the device. // @@ -436,13 +440,16 @@ func readPerfState(device NvidiaCollectorDevice, output chan lp.CCMessage) error return nil } -func readPowerUsage(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readPowerUsage(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_power_usage"] { // Retrieves power usage for this GPU in milliwatts and its associated circuitry (e.g. memory) // // On Fermi and Kepler GPUs the reading is accurate to within +/- 5% of current power draw. + // On Ampere (except GA100) or newer GPUs, the API returns power averaged over 1 sec interval. + // On GA100 and older architectures, instantaneous power is returned. // - // It is only available if power management mode is supported + // It is only available if power management mode is supported. + mode, ret := nvml.DeviceGetPowerManagementMode(device.device) if ret != nvml.SUCCESS { return nil @@ -461,7 +468,54 @@ func readPowerUsage(device NvidiaCollectorDevice, output chan lp.CCMessage) erro return nil } -func readClocks(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readEnergyConsumption(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { + // Retrieves total energy consumption for this GPU in millijoules (mJ) since the driver was last reloaded + + // For Volta or newer fully supported devices. + if (!device.excludeMetrics["nv_energy"]) && (!device.excludeMetrics["nv_energy_abs"]) && (!device.excludeMetrics["nv_average_power"]) { + now := time.Now() + mode, ret := nvml.DeviceGetPowerManagementMode(device.device) + if ret != nvml.SUCCESS { + return nil + } + if mode == nvml.FEATURE_ENABLED { + energy, ret := nvml.DeviceGetTotalEnergyConsumption(device.device) + if ret == nvml.SUCCESS { + if device.lastEnergyReading != 0 { + if !device.excludeMetrics["nv_energy"] { + y, err := lp.NewMetric("nv_energy", device.tags, device.meta, (energy-device.lastEnergyReading)/1000, now) + if err == nil { + y.AddMeta("unit", "Joules") + output <- y + } + } + if !device.excludeMetrics["nv_average_power"] { + + energyDiff := (energy - device.lastEnergyReading) / 1000 + timeDiff := now.Sub(device.lastEnergyTimestamp) + y, err := lp.NewMetric("nv_average_power", device.tags, device.meta, energyDiff/uint64(timeDiff.Seconds()), now) + if err == nil { + y.AddMeta("unit", "watts") + output <- y + } + } + } + if !device.excludeMetrics["nv_energy_abs"] { + y, err := lp.NewMetric("nv_energy_abs", device.tags, device.meta, energy/1000, now) + if err == nil { + y.AddMeta("unit", "Joules") + output <- y + } + } + device.lastEnergyReading = energy + device.lastEnergyTimestamp = time.Now() + } + } + } + return nil +} + +func readClocks(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { // Retrieves the current clock speeds for the device. // // Available clock information: @@ -513,7 +567,7 @@ func readClocks(device NvidiaCollectorDevice, output chan lp.CCMessage) error { return nil } -func readMaxClocks(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readMaxClocks(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { // Retrieves the maximum clock speeds for the device. // // Available clock information: @@ -571,7 +625,7 @@ func readMaxClocks(device NvidiaCollectorDevice, output chan lp.CCMessage) error return nil } -func readEccErrors(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readEccErrors(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_ecc_uncorrected_error"] { // Retrieves the total ECC error counts for the device. // @@ -602,7 +656,7 @@ func readEccErrors(device NvidiaCollectorDevice, output chan lp.CCMessage) error return nil } -func readPowerLimit(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readPowerLimit(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_power_max_limit"] { // Retrieves the power management limit associated with this device. // @@ -622,7 +676,7 @@ func readPowerLimit(device NvidiaCollectorDevice, output chan lp.CCMessage) erro return nil } -func readEncUtilization(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readEncUtilization(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { isMig, ret := nvml.DeviceIsMigDeviceHandle(device.device) if ret != nvml.SUCCESS { err := errors.New(nvml.ErrorString(ret)) @@ -649,7 +703,7 @@ func readEncUtilization(device NvidiaCollectorDevice, output chan lp.CCMessage) return nil } -func readDecUtilization(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readDecUtilization(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { isMig, ret := nvml.DeviceIsMigDeviceHandle(device.device) if ret != nvml.SUCCESS { err := errors.New(nvml.ErrorString(ret)) @@ -676,7 +730,7 @@ func readDecUtilization(device NvidiaCollectorDevice, output chan lp.CCMessage) return nil } -func readRemappedRows(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readRemappedRows(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_remapped_rows_corrected"] || !device.excludeMetrics["nv_remapped_rows_uncorrected"] || !device.excludeMetrics["nv_remapped_rows_pending"] || @@ -729,7 +783,7 @@ func readRemappedRows(device NvidiaCollectorDevice, output chan lp.CCMessage) er return nil } -func readProcessCounts(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readProcessCounts(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { if !device.excludeMetrics["nv_compute_processes"] { // Get information about processes with a compute context on a device // @@ -821,7 +875,7 @@ func readProcessCounts(device NvidiaCollectorDevice, output chan lp.CCMessage) e return nil } -func readViolationStats(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readViolationStats(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { var violTime nvml.ViolationTime var ret nvml.Return @@ -935,7 +989,7 @@ func readViolationStats(device NvidiaCollectorDevice, output chan lp.CCMessage) return nil } -func readNVLinkStats(device NvidiaCollectorDevice, output chan lp.CCMessage) error { +func readNVLinkStats(device *NvidiaCollectorDevice, output chan lp.CCMessage) error { // Retrieves the specified error counter value // Please refer to \a nvmlNvLinkErrorCounter_t for error counters that are available // @@ -1070,7 +1124,7 @@ func (m *NvidiaCollector) Read(interval time.Duration, output chan lp.CCMessage) return } - readAll := func(device NvidiaCollectorDevice, output chan lp.CCMessage) { + readAll := func(device *NvidiaCollectorDevice, output chan lp.CCMessage) { name, ret := nvml.DeviceGetName(device.device) if ret != nvml.SUCCESS { name = "NoName" @@ -1110,6 +1164,11 @@ func (m *NvidiaCollector) Read(interval time.Duration, output chan lp.CCMessage) cclog.ComponentDebug(m.name, "readPowerUsage for device", name, "failed") } + err = readEnergyConsumption(device, output) + if err != nil { + cclog.ComponentDebug(m.name, "readEnergyConsumption for device", name, "failed") + } + err = readClocks(device, output) if err != nil { cclog.ComponentDebug(m.name, "readClocks for device", name, "failed") @@ -1169,7 +1228,7 @@ func (m *NvidiaCollector) Read(interval time.Duration, output chan lp.CCMessage) // Actual read loop over all attached Nvidia GPUs for i := 0; i < m.num_gpus; i++ { - readAll(m.gpus[i], output) + readAll(&m.gpus[i], output) // Iterate over all MIG devices if any if m.config.ProcessMigDevices { @@ -1243,7 +1302,7 @@ func (m *NvidiaCollector) Read(interval time.Duration, output chan lp.CCMessage) } } - readAll(migDevice, output) + readAll(&migDevice, output) } } } diff --git a/collectors/nvidiaMetric.md b/collectors/nvidiaMetric.md index 93a7491..8163bc0 100644 --- a/collectors/nvidiaMetric.md +++ b/collectors/nvidiaMetric.md @@ -82,5 +82,8 @@ Metrics: * `nv_nvlink_ecc_errors` * `nv_nvlink_replay_errors` * `nv_nvlink_recovery_errors` +* `nv_energy` +* `nv_energy_abs` +* `nv_average_power` Some metrics add the additional sub type tag (`stype`) like the `nv_nvlink_*` metrics set `stype=nvlink,stype-id=`. From d8f10384a160c17f23906e914ecfe9473f0cea3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20R=C3=B6hl?= Date: Tue, 29 Apr 2025 16:48:05 +0200 Subject: [PATCH 04/12] Remove hostlist, now in cc-lib --- pkg/hostlist/hostlist.go | 125 --------------------------------- pkg/hostlist/hostlist_test.go | 126 ---------------------------------- 2 files changed, 251 deletions(-) delete mode 100644 pkg/hostlist/hostlist.go delete mode 100644 pkg/hostlist/hostlist_test.go diff --git a/pkg/hostlist/hostlist.go b/pkg/hostlist/hostlist.go deleted file mode 100644 index 6ed5ae0..0000000 --- a/pkg/hostlist/hostlist.go +++ /dev/null @@ -1,125 +0,0 @@ -package hostlist - -import ( - "fmt" - "regexp" - "sort" - "strconv" - "strings" -) - -func Expand(in string) (result []string, err error) { - - // Create ranges regular expression - reStNumber := "[[:digit:]]+" - reStRange := reStNumber + "-" + reStNumber - reStOptionalNumberOrRange := "(" + reStNumber + ",|" + reStRange + ",)*" - reStNumberOrRange := "(" + reStNumber + "|" + reStRange + ")" - reStBraceLeft := "[[]" - reStBraceRight := "[]]" - reStRanges := reStBraceLeft + - reStOptionalNumberOrRange + - reStNumberOrRange + - reStBraceRight - reRanges := regexp.MustCompile(reStRanges) - - // Create host list regular expression - reStDNSChars := "[a-zA-Z0-9-]+" - reStPrefix := "^(" + reStDNSChars + ")" - reStOptionalSuffix := "(" + reStDNSChars + ")?" - re := regexp.MustCompile(reStPrefix + "([[][0-9,-]+[]])?" + reStOptionalSuffix) - - // Remove all delimiters from the input - in = strings.TrimLeft(in, ", ") - - for len(in) > 0 { - if v := re.FindStringSubmatch(in); v != nil { - - // Remove matched part from the input - lenPrefix := len(v[0]) - in = in[lenPrefix:] - - // Remove all delimiters from the input - in = strings.TrimLeft(in, ", ") - - // matched prefix, range and suffix - hlPrefix := v[1] - hlRanges := v[2] - hlSuffix := v[3] - - // Single node without ranges - if hlRanges == "" { - result = append(result, hlPrefix) - continue - } - - // Node with ranges - if v := reRanges.FindStringSubmatch(hlRanges); v != nil { - - // Remove braces - hlRanges = hlRanges[1 : len(hlRanges)-1] - - // Split host ranges at , - for _, hlRange := range strings.Split(hlRanges, ",") { - - // Split host range at - - RangeStartEnd := strings.Split(hlRange, "-") - - // Range is only a single number - if len(RangeStartEnd) == 1 { - result = append(result, hlPrefix+RangeStartEnd[0]+hlSuffix) - continue - } - - // Range has a start and an end - widthRangeStart := len(RangeStartEnd[0]) - widthRangeEnd := len(RangeStartEnd[1]) - iStart, _ := strconv.ParseUint(RangeStartEnd[0], 10, 64) - iEnd, _ := strconv.ParseUint(RangeStartEnd[1], 10, 64) - if iStart > iEnd { - return nil, fmt.Errorf("single range start is greater than end: %s", hlRange) - } - - // Create print format string for range numbers - doPadding := widthRangeStart == widthRangeEnd - widthPadding := widthRangeStart - var formatString string - if doPadding { - formatString = "%0" + fmt.Sprint(widthPadding) + "d" - } else { - formatString = "%d" - } - formatString = hlPrefix + formatString + hlSuffix - - // Add nodes from this range - for i := iStart; i <= iEnd; i++ { - result = append(result, fmt.Sprintf(formatString, i)) - } - } - } else { - return nil, fmt.Errorf("not at hostlist range: %s", hlRanges) - } - } else { - return nil, fmt.Errorf("not a hostlist: %s", in) - } - } - - if result != nil { - // sort - sort.Strings(result) - - // uniq - previous := 1 - for current := 1; current < len(result); current++ { - if result[current-1] != result[current] { - if previous != current { - result[previous] = result[current] - } - previous++ - } - } - result = result[:previous] - } - - return -} diff --git a/pkg/hostlist/hostlist_test.go b/pkg/hostlist/hostlist_test.go deleted file mode 100644 index d5c57ad..0000000 --- a/pkg/hostlist/hostlist_test.go +++ /dev/null @@ -1,126 +0,0 @@ -package hostlist - -import ( - "testing" -) - -func TestExpand(t *testing.T) { - - // Compare two slices of strings - equal := func(a, b []string) bool { - if len(a) != len(b) { - return false - } - for i, v := range a { - if v != b[i] { - return false - } - } - return true - } - - type testDefinition struct { - input string - resultExpected []string - errorExpected bool - } - - expandTests := []testDefinition{ - { - // Single node - input: "n1", - resultExpected: []string{"n1"}, - errorExpected: false, - }, - { - // Single node, duplicated - input: "n1,n1", - resultExpected: []string{"n1"}, - errorExpected: false, - }, - { - // Single node with padding - input: "n[01]", - resultExpected: []string{"n01"}, - errorExpected: false, - }, - { - // Single node with suffix - input: "n[01]-p", - resultExpected: []string{"n01-p"}, - errorExpected: false, - }, - { - // Multiple nodes with a single range - input: "n[1-2]", - resultExpected: []string{"n1", "n2"}, - errorExpected: false, - }, - { - // Multiple nodes with a single range and a single index - input: "n[1-2,3]", - resultExpected: []string{"n1", "n2", "n3"}, - errorExpected: false, - }, - { - // Multiple nodes with different prefixes - input: "n[1-2],m[1,2]", - resultExpected: []string{"m1", "m2", "n1", "n2"}, - errorExpected: false, - }, - { - // Multiple nodes with different suffixes - input: "n[1-2]-p,n[1,2]-q", - resultExpected: []string{"n1-p", "n1-q", "n2-p", "n2-q"}, - errorExpected: false, - }, - { - // Multiple nodes with and without node ranges - input: " n09, n[01-04,06-07,09] , , n10,n04", - resultExpected: []string{"n01", "n02", "n03", "n04", "n06", "n07", "n09", "n10"}, - errorExpected: false, - }, - { - // Forbidden DNS character - input: "n@", - resultExpected: []string{}, - errorExpected: true, - }, - { - // Forbidden range - input: "n[1-2-2,3]", - resultExpected: []string{}, - errorExpected: true, - }, - { - // Forbidden range limits - input: "n[2-1]", - resultExpected: []string{}, - errorExpected: true, - }, - } - - for _, expandTest := range expandTests { - result, err := Expand(expandTest.input) - - hasError := err != nil - if hasError != expandTest.errorExpected && hasError { - t.Errorf("Expand('%s') failed: unexpected error '%v'", - expandTest.input, err) - continue - } - if hasError != expandTest.errorExpected && !hasError { - t.Errorf("Expand('%s') did not fail as expected: got result '%+v'", - expandTest.input, result) - continue - } - if !hasError && !equal(result, expandTest.resultExpected) { - t.Errorf("Expand('%s') failed: got result '%+v', expected result '%v'", - expandTest.input, result, expandTest.resultExpected) - continue - } - - t.Logf("Checked hostlist.Expand('%s'): result = '%+v', err = '%v'", - expandTest.input, result, err) - } -} From 4c7a0e064f2928bc3c63d3e143164f838f908432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20R=C3=B6hl?= Date: Tue, 29 Apr 2025 16:48:24 +0200 Subject: [PATCH 05/12] Add copyright header to Golang files --- cc-metric-collector.go | 7 +++++++ collectors/beegfsmetaMetric.go | 7 +++++++ collectors/beegfsstorageMetric.go | 7 +++++++ collectors/collectorManager.go | 7 +++++++ collectors/cpufreqCpuinfoMetric.go | 7 +++++++ collectors/cpufreqMetric.go | 7 +++++++ collectors/cpustatMetric.go | 7 +++++++ collectors/customCmdMetric.go | 7 +++++++ collectors/diskstatMetric.go | 7 +++++++ collectors/gpfsMetric.go | 7 +++++++ collectors/infinibandMetric.go | 7 +++++++ collectors/iostatMetric.go | 7 +++++++ collectors/ipmiMetric.go | 7 +++++++ collectors/likwidMetric.go | 7 +++++++ collectors/loadavgMetric.go | 7 +++++++ collectors/lustreMetric.go | 7 +++++++ collectors/memstatMetric.go | 7 +++++++ collectors/metricCollector.go | 7 +++++++ collectors/netstatMetric.go | 7 +++++++ collectors/nfsMetric.go | 7 +++++++ collectors/nfsiostatMetric.go | 7 +++++++ collectors/numastatsMetric.go | 7 +++++++ collectors/nvidiaMetric.go | 7 +++++++ collectors/raplMetric.go | 7 +++++++ collectors/rocmsmiMetric.go | 7 +++++++ collectors/sampleMetric.go | 7 +++++++ collectors/sampleTimerMetric.go | 7 +++++++ collectors/schedstatMetric.go | 7 +++++++ collectors/selfMetric.go | 7 +++++++ collectors/tempMetric.go | 7 +++++++ collectors/topprocsMetric.go | 7 +++++++ internal/metricAggregator/metricAggregator.go | 7 +++++++ internal/metricAggregator/metricAggregatorFunctions.go | 7 +++++++ internal/metricRouter/metricCache.go | 7 +++++++ internal/metricRouter/metricRouter.go | 7 +++++++ pkg/ccTopology/ccTopology.go | 7 +++++++ pkg/multiChanTicker/multiChanTicker.go | 7 +++++++ 37 files changed, 259 insertions(+) diff --git a/cc-metric-collector.go b/cc-metric-collector.go index 7b4a415..a26e439 100644 --- a/cc-metric-collector.go +++ b/cc-metric-collector.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package main import ( diff --git a/collectors/beegfsmetaMetric.go b/collectors/beegfsmetaMetric.go index f8786b8..d76e9eb 100644 --- a/collectors/beegfsmetaMetric.go +++ b/collectors/beegfsmetaMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/beegfsstorageMetric.go b/collectors/beegfsstorageMetric.go index 3fc27e6..a5111d1 100644 --- a/collectors/beegfsstorageMetric.go +++ b/collectors/beegfsstorageMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/collectorManager.go b/collectors/collectorManager.go index 2aea6c0..8676f7c 100644 --- a/collectors/collectorManager.go +++ b/collectors/collectorManager.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/cpufreqCpuinfoMetric.go b/collectors/cpufreqCpuinfoMetric.go index 7bee412..b9c1458 100644 --- a/collectors/cpufreqCpuinfoMetric.go +++ b/collectors/cpufreqCpuinfoMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/cpufreqMetric.go b/collectors/cpufreqMetric.go index 2106d06..672cc18 100644 --- a/collectors/cpufreqMetric.go +++ b/collectors/cpufreqMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/cpustatMetric.go b/collectors/cpustatMetric.go index 7f1fdc9..f5a36ac 100644 --- a/collectors/cpustatMetric.go +++ b/collectors/cpustatMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/customCmdMetric.go b/collectors/customCmdMetric.go index 42b206b..a25d733 100644 --- a/collectors/customCmdMetric.go +++ b/collectors/customCmdMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/diskstatMetric.go b/collectors/diskstatMetric.go index f0db3d3..4a68b75 100644 --- a/collectors/diskstatMetric.go +++ b/collectors/diskstatMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/gpfsMetric.go b/collectors/gpfsMetric.go index 9753566..1d7b869 100644 --- a/collectors/gpfsMetric.go +++ b/collectors/gpfsMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/infinibandMetric.go b/collectors/infinibandMetric.go index 50bc3d0..dd3a98b 100644 --- a/collectors/infinibandMetric.go +++ b/collectors/infinibandMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/iostatMetric.go b/collectors/iostatMetric.go index be37abc..61ba61d 100644 --- a/collectors/iostatMetric.go +++ b/collectors/iostatMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/ipmiMetric.go b/collectors/ipmiMetric.go index 16a1f83..d198bbb 100644 --- a/collectors/ipmiMetric.go +++ b/collectors/ipmiMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/likwidMetric.go b/collectors/likwidMetric.go index 2b8f9d4..85b1b99 100644 --- a/collectors/likwidMetric.go +++ b/collectors/likwidMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors /* diff --git a/collectors/loadavgMetric.go b/collectors/loadavgMetric.go index 4cdf704..dab459c 100644 --- a/collectors/loadavgMetric.go +++ b/collectors/loadavgMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/lustreMetric.go b/collectors/lustreMetric.go index 1678d1d..e826fb5 100644 --- a/collectors/lustreMetric.go +++ b/collectors/lustreMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/memstatMetric.go b/collectors/memstatMetric.go index 632d8b3..8f76b63 100644 --- a/collectors/memstatMetric.go +++ b/collectors/memstatMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/metricCollector.go b/collectors/metricCollector.go index e9bb6ae..6182430 100644 --- a/collectors/metricCollector.go +++ b/collectors/metricCollector.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/netstatMetric.go b/collectors/netstatMetric.go index 5f55a56..33eea6f 100644 --- a/collectors/netstatMetric.go +++ b/collectors/netstatMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/nfsMetric.go b/collectors/nfsMetric.go index b8351b2..b961b9d 100644 --- a/collectors/nfsMetric.go +++ b/collectors/nfsMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/nfsiostatMetric.go b/collectors/nfsiostatMetric.go index b605270..cf69023 100644 --- a/collectors/nfsiostatMetric.go +++ b/collectors/nfsiostatMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/numastatsMetric.go b/collectors/numastatsMetric.go index 2a5730c..995089a 100644 --- a/collectors/numastatsMetric.go +++ b/collectors/numastatsMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/nvidiaMetric.go b/collectors/nvidiaMetric.go index 8197777..93c73b4 100644 --- a/collectors/nvidiaMetric.go +++ b/collectors/nvidiaMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/raplMetric.go b/collectors/raplMetric.go index 6f16715..0a78ab9 100644 --- a/collectors/raplMetric.go +++ b/collectors/raplMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/rocmsmiMetric.go b/collectors/rocmsmiMetric.go index c70dfd0..fa1a46a 100644 --- a/collectors/rocmsmiMetric.go +++ b/collectors/rocmsmiMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/sampleMetric.go b/collectors/sampleMetric.go index acdf83f..9cc8973 100644 --- a/collectors/sampleMetric.go +++ b/collectors/sampleMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/sampleTimerMetric.go b/collectors/sampleTimerMetric.go index 3971799..4e5d055 100644 --- a/collectors/sampleTimerMetric.go +++ b/collectors/sampleTimerMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/schedstatMetric.go b/collectors/schedstatMetric.go index 039071c..f49e56c 100644 --- a/collectors/schedstatMetric.go +++ b/collectors/schedstatMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/selfMetric.go b/collectors/selfMetric.go index a97484b..8457254 100644 --- a/collectors/selfMetric.go +++ b/collectors/selfMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/tempMetric.go b/collectors/tempMetric.go index 503e41f..109ab39 100644 --- a/collectors/tempMetric.go +++ b/collectors/tempMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/collectors/topprocsMetric.go b/collectors/topprocsMetric.go index 7eed446..eca380e 100644 --- a/collectors/topprocsMetric.go +++ b/collectors/topprocsMetric.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package collectors import ( diff --git a/internal/metricAggregator/metricAggregator.go b/internal/metricAggregator/metricAggregator.go index 2f53616..c64556e 100644 --- a/internal/metricAggregator/metricAggregator.go +++ b/internal/metricAggregator/metricAggregator.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package metricAggregator import ( diff --git a/internal/metricAggregator/metricAggregatorFunctions.go b/internal/metricAggregator/metricAggregatorFunctions.go index 0f1468b..58134c1 100644 --- a/internal/metricAggregator/metricAggregatorFunctions.go +++ b/internal/metricAggregator/metricAggregatorFunctions.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package metricAggregator import ( diff --git a/internal/metricRouter/metricCache.go b/internal/metricRouter/metricCache.go index b200fba..40a9203 100644 --- a/internal/metricRouter/metricCache.go +++ b/internal/metricRouter/metricCache.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package metricRouter import ( diff --git a/internal/metricRouter/metricRouter.go b/internal/metricRouter/metricRouter.go index 6453558..665a094 100644 --- a/internal/metricRouter/metricRouter.go +++ b/internal/metricRouter/metricRouter.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package metricRouter import ( diff --git a/pkg/ccTopology/ccTopology.go b/pkg/ccTopology/ccTopology.go index ee05dd3..24e6eb1 100644 --- a/pkg/ccTopology/ccTopology.go +++ b/pkg/ccTopology/ccTopology.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package ccTopology import ( diff --git a/pkg/multiChanTicker/multiChanTicker.go b/pkg/multiChanTicker/multiChanTicker.go index 5707378..83cfc45 100644 --- a/pkg/multiChanTicker/multiChanTicker.go +++ b/pkg/multiChanTicker/multiChanTicker.go @@ -1,3 +1,10 @@ +// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. +// All rights reserved. This file is part of cc-lib. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. +// additional authors: +// Holger Obermaier (NHR@KIT) + package multiChanTicker import ( From b9665d0d6862119ec6fb9c06f345e318b44d31cd Mon Sep 17 00:00:00 2001 From: Thomas Gruber Date: Tue, 17 Jun 2025 10:32:08 +0200 Subject: [PATCH 06/12] Numastats: Read in config and send abs values by default. Fixes #146 (#147) --- collectors/numastatsMetric.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/collectors/numastatsMetric.go b/collectors/numastatsMetric.go index 995089a..bb5cc42 100644 --- a/collectors/numastatsMetric.go +++ b/collectors/numastatsMetric.go @@ -1,10 +1,3 @@ -// Copyright (C) NHR@FAU, University Erlangen-Nuremberg. -// All rights reserved. This file is part of cc-lib. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. -// additional authors: -// Holger Obermaier (NHR@KIT) - package collectors import ( @@ -85,6 +78,14 @@ func (m *NUMAStatsCollector) Init(config json.RawMessage) error { "group": "NUMA", } + m.config.SendAbsoluteValues = true + if len(config) > 0 { + err := json.Unmarshal(config, &m.config) + if err != nil { + return fmt.Errorf("unable to unmarshal numastat configuration: %s", err.Error()) + } + } + // Loop for all NUMA node directories base := "/sys/devices/system/node/node" globPattern := base + "[0-9]*" @@ -152,11 +153,11 @@ func (m *NUMAStatsCollector) Read(interval time.Duration, output chan lp.CCMessa } if m.config.SendAbsoluteValues { - msg, err := lp.NewMessage( + msg, err := lp.NewMetric( "numastats_"+key, t.tagSet, m.meta, - map[string]interface{}{"value": value}, + value, now, ) if err == nil { @@ -168,11 +169,11 @@ func (m *NUMAStatsCollector) Read(interval time.Duration, output chan lp.CCMessa prev, ok := t.previousValues[key] if ok { rate := float64(value-prev) / timeDiff - msg, err := lp.NewMessage( + msg, err := lp.NewMetric( "numastats_"+key+"_rate", t.tagSet, m.meta, - map[string]interface{}{"value": rate}, + rate, now, ) if err == nil { From 6b03d3aee80540c39390636b0fcf5997d4f95ad5 Mon Sep 17 00:00:00 2001 From: Thomas Gruber Date: Tue, 17 Jun 2025 11:36:18 +0200 Subject: [PATCH 07/12] Update golang RPM links in CI --- .github/workflows/runonce.yml | 36 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/runonce.yml b/.github/workflows/runonce.yml index bedbec7..2f16aaa 100644 --- a/.github/workflows/runonce.yml +++ b/.github/workflows/runonce.yml @@ -71,10 +71,10 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.22.9-1.module_el8.10.0+3938+8c723e16.noarch.rpm + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.noarch.rpm - name: RPM build MetricCollector id: rpmbuild @@ -116,11 +116,11 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.22.7-2.el9_5.noarch.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.22.7-2.el9_5.x86_64.rpm + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.el9_6.noarch.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.23.9-1.el9_6.x86_64.rpm - name: RPM build MetricCollector id: rpmbuild @@ -160,10 +160,10 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.22.9-1.module_el8.10.0+3938+8c723e16.noarch.rpm + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.noarch.rpm - name: RPM build MetricCollector id: rpmbuild @@ -202,11 +202,11 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.22.7-2.el9_5.noarch.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.22.7-2.el9_5.x86_64.rpm + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.el9_6.noarch.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.23.9-1.el9_6.x86_64.rpm - name: RPM build MetricCollector id: rpmbuild From c1032ff329cb2bfdfbb888580b056f906e37acd2 Mon Sep 17 00:00:00 2001 From: Thomas Gruber Date: Tue, 17 Jun 2025 11:38:18 +0200 Subject: [PATCH 08/12] Fix '+' in Golang RPM URLs --- .github/workflows/runonce.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/runonce.yml b/.github/workflows/runonce.yml index 2f16aaa..5daf3ff 100644 --- a/.github/workflows/runonce.yml +++ b/.github/workflows/runonce.yml @@ -71,10 +71,10 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.noarch.rpm + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.noarch.rpm - name: RPM build MetricCollector id: rpmbuild @@ -160,10 +160,10 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.module_el8.10.0%2B4000%2B1ad1b2cc.noarch.rpm + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.noarch.rpm - name: RPM build MetricCollector id: rpmbuild From 979192af4efc70ac6f3b723b99c1d79e4896408a Mon Sep 17 00:00:00 2001 From: Thomas Gruber Date: Tue, 17 Jun 2025 11:59:53 +0200 Subject: [PATCH 09/12] Fix Golang RPM URLs in Release Action --- .github/workflows/Release.yml | 36 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml index a2dfff4..0aabbe5 100644 --- a/.github/workflows/Release.yml +++ b/.github/workflows/Release.yml @@ -48,10 +48,10 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.22.9-1.module_el8.10.0+3938+8c723e16.noarch.rpm + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.noarch.rpm - name: RPM build MetricCollector id: rpmbuild @@ -126,11 +126,11 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.22.7-2.el9_5.noarch.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.22.7-2.el9_5.x86_64.rpm + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.el9_6.noarch.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.23.9-1.el9_6.x86_64.rpm - name: RPM build MetricCollector id: rpmbuild @@ -202,10 +202,10 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.22.9-1.module_el8.10.0+3938+8c723e16.x86_64.rpm \ - https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.22.9-1.module_el8.10.0+3938+8c723e16.noarch.rpm + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.x86_64.rpm \ + https://repo.almalinux.org/almalinux/8/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.module_el8.10.0+4000+1ad1b2cc.noarch.rpm - name: RPM build MetricCollector id: rpmbuild @@ -262,11 +262,11 @@ jobs: - name: Setup Golang run: | dnf --assumeyes --disableplugin=subscription-manager install \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.22.7-2.el9_5.x86_64.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.22.7-2.el9_5.noarch.rpm \ - https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.22.7-2.el9_5.x86_64.rpm + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/go-toolset-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-bin-1.23.9-1.el9_6.x86_64.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-src-1.23.9-1.el9_6.noarch.rpm \ + https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/golang-race-1.23.9-1.el9_6.x86_64.rpm - name: RPM build MetricCollector id: rpmbuild From 48f5afe2bec119b3b2d3bdd3b68c31f0445ef173 Mon Sep 17 00:00:00 2001 From: Thomas Roehl Date: Wed, 18 Jun 2025 12:22:07 +0200 Subject: [PATCH 10/12] Update cc-lib to 0.2.0 --- go.mod | 40 ++++++++++++------------- go.sum | 92 +++++++++++++++++++++++----------------------------------- 2 files changed, 55 insertions(+), 77 deletions(-) diff --git a/go.mod b/go.mod index 06ddb71..fb6861f 100644 --- a/go.mod +++ b/go.mod @@ -5,44 +5,42 @@ go 1.23.4 toolchain go1.23.7 require ( - github.com/ClusterCockpit/cc-lib v0.1.1 + github.com/ClusterCockpit/cc-lib v0.2.0 github.com/ClusterCockpit/go-rocm-smi v0.3.0 - github.com/NVIDIA/go-nvml v0.12.0-2 + github.com/NVIDIA/go-nvml v0.12.4-1 github.com/PaesslerAG/gval v1.2.2 github.com/fsnotify/fsnotify v1.7.0 - github.com/gorilla/mux v1.8.1 - github.com/influxdata/influxdb-client-go/v2 v2.14.0 github.com/influxdata/line-protocol v0.0.0-20210922203350-b1ad95c89adf - github.com/influxdata/line-protocol/v2 v2.2.1 - github.com/nats-io/nats.go v1.39.0 - github.com/prometheus/client_golang v1.20.5 - github.com/stmcginnis/gofish v0.15.0 github.com/tklauser/go-sysconf v0.3.13 golang.design/x/thread v0.0.0-20210122121316-335e9adffdf1 - golang.org/x/exp v0.0.0-20250215185904-eff6e970281f - golang.org/x/sys v0.30.0 + golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 + golang.org/x/sys v0.32.0 ) require ( - github.com/ClusterCockpit/cc-backend v1.4.2 // indirect - github.com/ClusterCockpit/cc-units v0.4.0 // indirect github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/expr-lang/expr v1.17.0 // indirect + github.com/expr-lang/expr v1.17.2 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/klauspost/compress v1.17.9 // indirect + github.com/gorilla/mux v1.8.1 // indirect + github.com/influxdata/influxdb-client-go/v2 v2.14.0 // indirect + github.com/influxdata/line-protocol/v2 v2.2.1 // indirect + github.com/klauspost/compress v1.18.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/nats-io/nkeys v0.4.9 // indirect + github.com/nats-io/nats.go v1.41.2 // indirect + github.com/nats-io/nkeys v0.4.11 // indirect github.com/nats-io/nuid v1.0.1 // indirect github.com/oapi-codegen/runtime v1.1.1 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.55.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_golang v1.22.0 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.63.0 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect github.com/shopspring/decimal v1.3.1 // indirect + github.com/stmcginnis/gofish v0.20.0 // indirect github.com/tklauser/numcpus v0.7.0 // indirect - golang.org/x/crypto v0.35.0 // indirect - golang.org/x/net v0.36.0 // indirect - google.golang.org/protobuf v1.35.2 // indirect + golang.org/x/crypto v0.37.0 // indirect + golang.org/x/net v0.39.0 // indirect + google.golang.org/protobuf v1.36.6 // indirect ) diff --git a/go.sum b/go.sum index 430dc4d..4e6930b 100644 --- a/go.sum +++ b/go.sum @@ -1,16 +1,10 @@ -github.com/ClusterCockpit/cc-backend v1.4.2 h1:kTOzqkh9N0564N9nqQThnSs7TAfg8RLgvSm00e5HtIc= -github.com/ClusterCockpit/cc-backend v1.4.2/go.mod h1:g8TNHXe4AXej26snu2//jO3mUF980elT93iV/k11O/c= -github.com/ClusterCockpit/cc-lib v0.1.0-beta.1 h1:dz9j0g2cod8+SMDjuoIY6ISpiHHeekhX6yQaeiwiwJw= -github.com/ClusterCockpit/cc-lib v0.1.0-beta.1/go.mod h1:kXMskla1i5ZSfXW0vVRIHgGeXMU5zu2PzYOYnUaOr80= -github.com/ClusterCockpit/cc-lib v0.1.1 h1:AXZWYUzgTaE/WdxLNSWPR7FJoA5WlzvYZxw4gIw3gNw= -github.com/ClusterCockpit/cc-lib v0.1.1/go.mod h1:SHKcWW/+kN+pcofAtHJFxvmx1FV0VIJuQv5PuT0HDcc= -github.com/ClusterCockpit/cc-units v0.4.0 h1:zP5DOu99GmErW0tCDf0gcLrlWt42RQ9dpoONEOh4cI0= -github.com/ClusterCockpit/cc-units v0.4.0/go.mod h1:3S3PAhAayS3pbgcT4q9Vn9VJw22Op51X0YimtG77zBw= +github.com/ClusterCockpit/cc-lib v0.2.0 h1:4mEpppqWXkjS3PCHYSOxF3NisrKsbPjg17ftsFhEKPk= +github.com/ClusterCockpit/cc-lib v0.2.0/go.mod h1:S6oZNtejBHu+ewmGRKYFqJmlrRReXv8J4D2UP8hmu50= github.com/ClusterCockpit/go-rocm-smi v0.3.0 h1:1qZnSpG7/NyLtc7AjqnUL9Jb8xtqG1nMVgp69rJfaR8= github.com/ClusterCockpit/go-rocm-smi v0.3.0/go.mod h1:+I3UMeX3OlizXDf1WpGD43W4KGZZGVSGmny6rTeOnWA= github.com/NVIDIA/go-nvml v0.11.6-0/go.mod h1:hy7HYeQy335x6nEss0Ne3PYqleRa6Ct+VKD9RQ4nyFs= -github.com/NVIDIA/go-nvml v0.12.0-2 h1:Sg239yy7jmopu/cuvYauoMj9fOpcGMngxVxxS1EBXeY= -github.com/NVIDIA/go-nvml v0.12.0-2/go.mod h1:7ruy85eOM73muOc/I37euONSwEyFqZsv5ED9AogD4G0= +github.com/NVIDIA/go-nvml v0.12.4-1 h1:WKUvqshhWSNTfm47ETRhv0A0zJyr1ncCuHiXwoTrBEc= +github.com/NVIDIA/go-nvml v0.12.4-1/go.mod h1:8Llmj+1Rr+9VGGwZuRer5N/aCjxGuR5nPb/9ebBiIEQ= github.com/PaesslerAG/gval v1.2.2 h1:Y7iBzhgE09IGTt5QgGQ2IdaYYYOU134YGHBThD+wm9E= github.com/PaesslerAG/gval v1.2.2/go.mod h1:XRFLwvmkTEdYziLdaCeCa5ImcGVrfQbeNUbVR+C6xac= github.com/PaesslerAG/jsonpath v0.1.0 h1:gADYeifvlqK3R3i2cR5B4DGgxLXIPb3TRTH1mGi0jPI= @@ -27,10 +21,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/expr-lang/expr v1.16.9 h1:WUAzmR0JNI9JCiF0/ewwHB1gmcGw5wW7nWt8gc6PpCI= -github.com/expr-lang/expr v1.16.9/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= -github.com/expr-lang/expr v1.17.0 h1:+vpszOyzKLQXC9VF+wA8cVA0tlA984/Wabc/1hF9Whg= -github.com/expr-lang/expr v1.17.0/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= +github.com/expr-lang/expr v1.17.2 h1:o0A99O/Px+/DTjEnQiodAgOIK9PPxL8DtXhBRKC+Iso= +github.com/expr-lang/expr v1.17.2/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= github.com/frankban/quicktest v1.11.0/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= github.com/frankban/quicktest v1.11.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= github.com/frankban/quicktest v1.13.0 h1:yNZif1OkDfNoDfb9zZa9aXIpejNR4F23Wely0c+Qdqk= @@ -39,8 +31,8 @@ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nos github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -57,8 +49,8 @@ github.com/influxdata/line-protocol/v2 v2.1.0/go.mod h1:QKw43hdUBg3GTk2iC3iyCxks github.com/influxdata/line-protocol/v2 v2.2.1 h1:EAPkqJ9Km4uAxtMRgUubJyqAr6zgWM0dznKMLRauQRE= github.com/influxdata/line-protocol/v2 v2.2.1/go.mod h1:DmB3Cnh+3oxmG6LOBIxce4oaL4CPj3OmMPgvauXh+tM= github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= -github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= -github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= +github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -70,10 +62,10 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/nats-io/nats.go v1.39.0 h1:2/yg2JQjiYYKLwDuBzV0FbB2sIV+eFNkEevlRi4n9lI= -github.com/nats-io/nats.go v1.39.0/go.mod h1:MgRb8oOdigA6cYpEPhXJuRVH6UE/V4jblJ2jQ27IXYM= -github.com/nats-io/nkeys v0.4.9 h1:qe9Faq2Gxwi6RZnZMXfmGMZkg3afLLOtrU+gDZJ35b0= -github.com/nats-io/nkeys v0.4.9/go.mod h1:jcMqs+FLG+W5YO36OX6wFIFcmpdAns+w1Wm6D3I/evE= +github.com/nats-io/nats.go v1.41.2 h1:5UkfLAtu/036s99AhFRlyNDI1Ieylb36qbGjJzHixos= +github.com/nats-io/nats.go v1.41.2/go.mod h1:iRWIPokVIFbVijxuMQq4y9ttaBTMe0SFdlZfMDd+33g= +github.com/nats-io/nkeys v0.4.11 h1:q44qGV008kYd9W1b1nEBkNzvnWxtRSQ7A8BoqRrcfa0= +github.com/nats-io/nkeys v0.4.11/go.mod h1:szDimtgmfOi9n25JpfIdGw12tZFYXqhGxjhVxsatHVE= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= @@ -81,14 +73,14 @@ github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmt github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= -github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= +github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA98k= +github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= @@ -96,44 +88,32 @@ github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPO github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= -github.com/stmcginnis/gofish v0.15.0 h1:8TG41+lvJk/0Nf8CIIYErxbMlQUy80W0JFRZP3Ld82A= -github.com/stmcginnis/gofish v0.15.0/go.mod h1:BLDSFTp8pDlf/xDbLZa+F7f7eW0E/CHCboggsu8CznI= +github.com/stmcginnis/gofish v0.20.0 h1:hH2V2Qe898F2wWT1loApnkDUrXXiLKqbSlMaH3Y1n08= +github.com/stmcginnis/gofish v0.20.0/go.mod h1:PzF5i8ecRG9A2ol8XT64npKUunyraJ+7t0kYMpQAtqU= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4= github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0= github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= golang.design/x/thread v0.0.0-20210122121316-335e9adffdf1 h1:P7S/GeHBAFEZIYp0ePPs2kHXoazz8q2KsyxHyQVGCJg= golang.design/x/thread v0.0.0-20210122121316-335e9adffdf1/go.mod h1:9CWpnTUmlQkfdpdutA1nNf4iE5lAVt3QZOu0Z6hahBE= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= -golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= -golang.org/x/exp v0.0.0-20250215185904-eff6e970281f h1:oFMYAjX0867ZD2jcNiLBrI9BdpmEkvPyi5YrBGXbamg= -golang.org/x/exp v0.0.0-20250215185904-eff6e970281f/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk= -golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= -golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= -golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= -golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= +golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= +golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= +golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= +golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= golang.org/x/sys v0.0.0-20210122093101-04d7465088b8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= -golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= +golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= -google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY= +google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From 0a2a85f2ce3c51f1fb5610bef4e3f76aff14fa33 Mon Sep 17 00:00:00 2001 From: Michael Panzlaff Date: Mon, 23 Jun 2025 14:00:29 +0200 Subject: [PATCH 11/12] Add missing 'Section' and 'Priority' to .deb.control --- scripts/cc-metric-collector.deb.control | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/cc-metric-collector.deb.control b/scripts/cc-metric-collector.deb.control index 8f752cd..34e724f 100644 --- a/scripts/cc-metric-collector.deb.control +++ b/scripts/cc-metric-collector.deb.control @@ -1,4 +1,6 @@ Package: cc-metric-collector +Section: misc +Priority: optional Version: {VERSION} Installed-Size: {INSTALLED_SIZE} Architecture: {ARCH} From aa6181a0187f8380dc9c5f2e77affcb0f9046e82 Mon Sep 17 00:00:00 2001 From: Michael Schwarz Date: Wed, 2 Jul 2025 13:38:24 +0200 Subject: [PATCH 12/12] Read written bytes instead of read bytes --- collectors/gpfsMetric.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collectors/gpfsMetric.go b/collectors/gpfsMetric.go index 1d7b869..222e04b 100644 --- a/collectors/gpfsMetric.go +++ b/collectors/gpfsMetric.go @@ -278,7 +278,7 @@ func (m *GpfsCollector) Read(interval time.Duration, output chan lp.CCMessage) { output <- y } if m.config.SendBandwidths { - if lastBytesWritten := m.lastState[filesystem].bytesRead; lastBytesWritten >= 0 { + if lastBytesWritten := m.lastState[filesystem].bytesWritten; lastBytesWritten >= 0 { bwWrite := float64(bytesWritten-lastBytesWritten) / timeDiff if y, err := lp.NewMessage(