diff --git a/model/metric.go b/model/metric.go index c5a6b7f..0b7e04a 100644 --- a/model/metric.go +++ b/model/metric.go @@ -63,3 +63,18 @@ func (m Metric) String() string { return fmt.Sprintf("%s{%s}", metricName, strings.Join(labelStrings, ", ")) } } + +func (m Metric) MergeFromLabelSet(labels LabelSet, collisionPrefix LabelName) { + for k, v := range labels { + if collisionPrefix != "" { + for { + if _, exists := m[k]; !exists { + break + } + k = collisionPrefix + k + } + } + + m[k] = v + } +}