package stdlib
import (
"encoding/json"
"github.com/grafana/agent/component/discovery"
"github.com/prometheus/prometheus/discovery/targetgroup"
)
var Identifiers = map[string]interface{}{
"discovery_target_decode": func(in string) (interface{}, error) {
var targetGroups []*targetgroup.Group
if err := json.Unmarshal([]byte(in), &targetGroups); err != nil {
return nil, err
}
var res []discovery.Target
for _, group := range targetGroups {
for _, target := range group.Targets {
outputTarget := make(discovery.Target, len(group.Labels)+len(target))
for k, v := range group.Labels {
outputTarget[string(k)] = string(v)
}
for k, v := range target {
outputTarget[string(k)] = string(v)
}
res = append(res, outputTarget)
}
}
return res, nil
},
}