mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-30 10:56:28 +02:00
36 lines
649 B
Go
36 lines
649 B
Go
package prometheus
|
|
|
|
import (
|
|
"iter"
|
|
|
|
dto "github.com/prometheus/client_model/go"
|
|
)
|
|
|
|
func AddLabels(
|
|
src iter.Seq2[*dto.MetricFamily, error],
|
|
addLabels map[string]string,
|
|
) iter.Seq2[*dto.MetricFamily, error] {
|
|
var extra []*dto.LabelPair
|
|
for k, v := range addLabels {
|
|
k, v := k, v
|
|
extra = append(extra, &dto.LabelPair{
|
|
Name: &k,
|
|
Value: &v,
|
|
})
|
|
}
|
|
|
|
return func(yield func(*dto.MetricFamily, error) bool) {
|
|
for mf, err := range src {
|
|
if err != nil {
|
|
yield(nil, err)
|
|
return
|
|
}
|
|
for _, metric := range mf.Metric {
|
|
metric.Label = append(metric.Label, extra...)
|
|
}
|
|
if !yield(mf, nil) {
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|