From 683fff1811da2a76129595559da215a44d3b8328 Mon Sep 17 00:00:00 2001 From: cczhuang420 Date: Mon, 3 Mar 2025 12:47:22 +1300 Subject: [PATCH 1/4] add system metadata labels Signed-off-by: cczhuang420 --- collectors/monitoring_collector.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/collectors/monitoring_collector.go b/collectors/monitoring_collector.go index a2c1543..dbddb1c 100644 --- a/collectors/monitoring_collector.go +++ b/collectors/monitoring_collector.go @@ -14,6 +14,7 @@ package collectors import ( + "encoding/json" "errors" "fmt" "log/slog" @@ -451,6 +452,34 @@ func (c *MonitoringCollector) reportTimeSeriesMetrics( labelValues = append(labelValues, value) } } + + // Add system metadata labels + // @see https://cloud.google.com/monitoring/api/ref_v3/rest/v3/TimeSeries + if timeSeries.Metadata.SystemLabels != nil { + // Marshal the SystemLabels struct to JSON + jsonBytes, err := json.Marshal(timeSeries.Metadata.SystemLabels) + if err != nil { + c.logger.Error("error marshaling SystemLabels to JSON", "err", err) + continue + } + + // Unmarshal the JSON into a map[string]interface{} + var systemLabelsMap map[string]interface{} + err = json.Unmarshal(jsonBytes, &systemLabelsMap) + if err != nil { + c.logger.Error("error unmarshaling JSON to map", "err", err) + continue + } + + for key, value := range systemLabelsMap { + valueStr := fmt.Sprintf("%v", value) + if !c.keyExists(labelKeys, key) { + labelKeys = append(labelKeys, key) + labelValues = append(labelValues, valueStr) + } + } + } + if c.monitoringDropDelegatedProjects { dropDelegatedProject := false From f92d21497cbf7a1f5bd7dd1fd4bcd167d4e549ed Mon Sep 17 00:00:00 2001 From: cczhuang420 Date: Mon, 3 Mar 2025 12:51:36 +1300 Subject: [PATCH 2/4] add system metadata labels Signed-off-by: cczhuang420 --- collectors/monitoring_collector.go | 1 - 1 file changed, 1 deletion(-) diff --git a/collectors/monitoring_collector.go b/collectors/monitoring_collector.go index dbddb1c..9ad0e7e 100644 --- a/collectors/monitoring_collector.go +++ b/collectors/monitoring_collector.go @@ -480,7 +480,6 @@ func (c *MonitoringCollector) reportTimeSeriesMetrics( } } - if c.monitoringDropDelegatedProjects { dropDelegatedProject := false From 0e927dae97f1c185982f94b0e48a5e7b69270dd5 Mon Sep 17 00:00:00 2001 From: cczhuang420 Date: Mon, 3 Mar 2025 12:56:56 +1300 Subject: [PATCH 3/4] add system metadata labels Signed-off-by: cczhuang420 --- collectors/monitoring_collector.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collectors/monitoring_collector.go b/collectors/monitoring_collector.go index 9ad0e7e..9855533 100644 --- a/collectors/monitoring_collector.go +++ b/collectors/monitoring_collector.go @@ -452,7 +452,7 @@ func (c *MonitoringCollector) reportTimeSeriesMetrics( labelValues = append(labelValues, value) } } - + // Add system metadata labels // @see https://cloud.google.com/monitoring/api/ref_v3/rest/v3/TimeSeries if timeSeries.Metadata.SystemLabels != nil { From 46f29a96aba07d98955a6a0a034f9ee30c356aa1 Mon Sep 17 00:00:00 2001 From: cczhuang420 Date: Mon, 3 Mar 2025 15:21:32 +1300 Subject: [PATCH 4/4] SCYLLA-76582: add system metadata labels Signed-off-by: cczhuang420 --- collectors/monitoring_collector.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collectors/monitoring_collector.go b/collectors/monitoring_collector.go index 9855533..02e6f7d 100644 --- a/collectors/monitoring_collector.go +++ b/collectors/monitoring_collector.go @@ -455,7 +455,7 @@ func (c *MonitoringCollector) reportTimeSeriesMetrics( // Add system metadata labels // @see https://cloud.google.com/monitoring/api/ref_v3/rest/v3/TimeSeries - if timeSeries.Metadata.SystemLabels != nil { + if timeSeries.Metadata != nil && timeSeries.Metadata.SystemLabels != nil { // Marshal the SystemLabels struct to JSON jsonBytes, err := json.Marshal(timeSeries.Metadata.SystemLabels) if err != nil {