fixup! Update go.mod and go.sum

This commit is contained in:
2025-11-05 10:27:18 +00:00
parent e2c3d03661
commit e36cdf099e
+39 -7
View File
@@ -69,19 +69,33 @@ func ensureDefaultLabels(labels *map[string]string, podName string) {
} }
func appendSortedLabels(buf *bytes.Buffer, labels map[string]string) { func appendSortedLabels(buf *bytes.Buffer, labels map[string]string) {
keys := getSortedKeys(labels) if len(labels) == 0 {
return
}
// Create a snapshot to avoid concurrent access issues
labelsCopy := make(map[string]string, len(labels))
for k, v := range labels {
labelsCopy[k] = v
}
keys := getSortedKeys(labelsCopy)
for i, k := range keys { for i, k := range keys {
if i > 0 { if i > 0 {
buf.WriteByte(',') buf.WriteByte(',')
} }
buf.WriteString(k) buf.WriteString(k)
buf.WriteString(`="`) buf.WriteString(`="`)
buf.WriteString(labels[k]) buf.WriteString(labelsCopy[k])
buf.WriteByte('"') buf.WriteByte('"')
} }
} }
func getSortedKeys(labels map[string]string) []string { func getSortedKeys(labels map[string]string) []string {
if labels == nil {
return []string{}
}
labelsKey := labelsToString(labels) labelsKey := labelsToString(labels)
// Check if the sorted keys are already cached // Check if the sorted keys are already cached
@@ -89,7 +103,7 @@ func getSortedKeys(labels map[string]string) []string {
return keys.([]string) return keys.([]string)
} }
// Compute the sorted keys // Compute the sorted keys - create a snapshot to avoid concurrent access issues
keys := make([]string, 0, len(labels)) keys := make([]string, 0, len(labels))
for k := range labels { for k := range labels {
keys = append(keys, k) keys = append(keys, k)
@@ -103,9 +117,17 @@ func getSortedKeys(labels map[string]string) []string {
} }
func labelsToString(labels map[string]string) string { func labelsToString(labels map[string]string) string {
if labels == nil {
return ""
}
// Create a snapshot of the map to avoid concurrent access issues
keys := make([]string, 0, len(labels)) keys := make([]string, 0, len(labels))
for k := range labels { values := make(map[string]string, len(labels))
for k, v := range labels {
keys = append(keys, k) keys = append(keys, k)
values[k] = v
} }
sort.Strings(keys) sort.Strings(keys)
@@ -113,7 +135,7 @@ func labelsToString(labels map[string]string) string {
for _, k := range keys { for _, k := range keys {
sb.WriteString(k) sb.WriteString(k)
sb.WriteByte('=') sb.WriteByte('=')
sb.WriteString(labels[k]) sb.WriteString(values[k])
sb.WriteByte(';') sb.WriteByte(';')
} }
return sb.String() return sb.String()
@@ -168,13 +190,23 @@ func compile_metrics_with_labels(name string, labels map[string]string) string {
buf.WriteString(name) buf.WriteString(name)
keys := getSortedKeys(labels) if len(labels) == 0 {
return buf.String()
}
// Create a snapshot to avoid concurrent access issues
labelsCopy := make(map[string]string, len(labels))
for k, v := range labels {
labelsCopy[k] = v
}
keys := getSortedKeys(labelsCopy)
for _, k := range keys { for _, k := range keys {
buf.WriteByte('_') buf.WriteByte('_')
buf.WriteString(k) buf.WriteString(k)
buf.WriteByte('_') buf.WriteByte('_')
buf.WriteString(labels[k]) buf.WriteString(labelsCopy[k])
} }
return buf.String() return buf.String()