diff --git a/discovery/kubernetes/endpoints.go b/discovery/kubernetes/endpoints.go index f905ae92c..c60bf3543 100644 --- a/discovery/kubernetes/endpoints.go +++ b/discovery/kubernetes/endpoints.go @@ -15,6 +15,7 @@ package kubernetes import ( "context" + "github.com/prometheus/prometheus/util/strutil" "net" "strconv" @@ -199,6 +200,8 @@ func endpointsSourceFromNamespaceAndName(namespace, name string) string { } const ( + endpointsLabelPrefix = metaLabelPrefix + "endpoints_label_" + endpointsLabelPresentPrefix = metaLabelPrefix + "endpoints_labelpresent_" endpointsNameLabel = metaLabelPrefix + "endpoints_name" endpointNodeName = metaLabelPrefix + "endpoint_node_name" endpointHostname = metaLabelPrefix + "endpoint_hostname" @@ -218,6 +221,12 @@ func (e *Endpoints) buildEndpoints(eps *apiv1.Endpoints) *targetgroup.Group { endpointsNameLabel: lv(eps.Name), } e.addServiceLabels(eps.Namespace, eps.Name, tg) + //add endponits labels metadata + for k, v := range eps.Labels { + ln := strutil.SanitizeLabelName(k) + tg.Labels[model.LabelName(endpointsLabelPrefix+ln)] = lv(v) + tg.Labels[model.LabelName(endpointsLabelPresentPrefix+ln)] = presentValue + } type podEntry struct { pod *apiv1.Pod