mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
discovery/kubernetes: use namespacedName
Signed-off-by: Giedrius Statkevičius <giedrius.statkevicius@vinted.com>
This commit is contained in:
parent
e452308e37
commit
716fd5b11f
|
@ -20,8 +20,6 @@ import (
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"net"
|
"net"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
"sync"
|
|
||||||
|
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/prometheus/common/model"
|
"github.com/prometheus/common/model"
|
||||||
|
@ -104,10 +102,7 @@ func NewEndpoints(l *slog.Logger, eps cache.SharedIndexInformer, svc, pod, node
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ep := &apiv1.Endpoints{}
|
obj, exists, err := e.endpointsStore.GetByKey(namespacedName(svc.Namespace, svc.Name))
|
||||||
ep.Namespace = svc.Namespace
|
|
||||||
ep.Name = svc.Name
|
|
||||||
obj, exists, err := e.endpointsStore.Get(ep)
|
|
||||||
if exists && err == nil {
|
if exists && err == nil {
|
||||||
e.enqueue(obj.(*apiv1.Endpoints))
|
e.enqueue(obj.(*apiv1.Endpoints))
|
||||||
}
|
}
|
||||||
|
@ -455,43 +450,12 @@ func (e *Endpoints) buildEndpoints(eps *apiv1.Endpoints) *targetgroup.Group {
|
||||||
return tg
|
return tg
|
||||||
}
|
}
|
||||||
|
|
||||||
var objKeyPool = sync.Pool{}
|
|
||||||
|
|
||||||
func generateObjKey(namespace, name string) (string, *strings.Builder) {
|
|
||||||
var sb *strings.Builder
|
|
||||||
|
|
||||||
b := objKeyPool.Get()
|
|
||||||
if b == nil {
|
|
||||||
sb = &strings.Builder{}
|
|
||||||
} else {
|
|
||||||
sb = b.(*strings.Builder)
|
|
||||||
}
|
|
||||||
|
|
||||||
sb.Reset()
|
|
||||||
if namespace == "" {
|
|
||||||
_, _ = sb.WriteString(name)
|
|
||||||
return sb.String(), sb
|
|
||||||
}
|
|
||||||
|
|
||||||
_, _ = sb.WriteString(namespace)
|
|
||||||
_, _ = sb.WriteRune('/')
|
|
||||||
_, _ = sb.WriteString(name)
|
|
||||||
return sb.String(), sb
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *Endpoints) resolvePodRef(ref *apiv1.ObjectReference) *apiv1.Pod {
|
func (e *Endpoints) resolvePodRef(ref *apiv1.ObjectReference) *apiv1.Pod {
|
||||||
if ref == nil || ref.Kind != "Pod" {
|
if ref == nil || ref.Kind != "Pod" {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := &apiv1.Pod{}
|
obj, exists, err := e.podStore.GetByKey(namespacedName(ref.Namespace, ref.Name))
|
||||||
p.Namespace = ref.Namespace
|
|
||||||
p.Name = ref.Name
|
|
||||||
|
|
||||||
key, sb := generateObjKey(p.Namespace, p.Name)
|
|
||||||
defer objKeyPool.Put(sb)
|
|
||||||
|
|
||||||
obj, exists, err := e.podStore.GetByKey(key)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.logger.Error("resolving pod ref failed", "err", err)
|
e.logger.Error("resolving pod ref failed", "err", err)
|
||||||
return nil
|
return nil
|
||||||
|
@ -503,11 +467,7 @@ func (e *Endpoints) resolvePodRef(ref *apiv1.ObjectReference) *apiv1.Pod {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Endpoints) addServiceLabels(ns, name string, tg *targetgroup.Group) {
|
func (e *Endpoints) addServiceLabels(ns, name string, tg *targetgroup.Group) {
|
||||||
svc := &apiv1.Service{}
|
obj, exists, err := e.serviceStore.GetByKey(namespacedName(ns, name))
|
||||||
svc.Namespace = ns
|
|
||||||
svc.Name = name
|
|
||||||
|
|
||||||
obj, exists, err := e.serviceStore.Get(svc)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.logger.Error("retrieving service failed", "err", err)
|
e.logger.Error("retrieving service failed", "err", err)
|
||||||
return
|
return
|
||||||
|
@ -515,7 +475,7 @@ func (e *Endpoints) addServiceLabels(ns, name string, tg *targetgroup.Group) {
|
||||||
if !exists {
|
if !exists {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
svc = obj.(*apiv1.Service)
|
svc := obj.(*apiv1.Service)
|
||||||
|
|
||||||
tg.Labels = tg.Labels.Merge(serviceLabels(svc))
|
tg.Labels = tg.Labels.Merge(serviceLabels(svc))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue