github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/apiserver/servicemonitor.go (about) 1 package apiserver 2 3 import ( 4 "github.com/caos/orbos/internal/operator/boom/application/applications/metricspersisting/servicemonitor" 5 "github.com/caos/orbos/internal/operator/boom/labels" 6 ) 7 8 func GetServicemonitor(instanceName string) *servicemonitor.Config { 9 monitorlabels := labels.GetMonitorLabels(instanceName, "prometheus") 10 11 metricRelabelings := make([]*servicemonitor.ConfigRelabeling, 0) 12 relabeling := &servicemonitor.ConfigRelabeling{ 13 Action: "keep", 14 Regex: "default;kubernetes;https", 15 SourceLabels: []string{"__meta_kubernetes_namespace", "__meta_kubernetes_service_name", "__meta_kubernetes_endpoint_port_name"}, 16 } 17 metricRelabelings = append(metricRelabelings, relabeling) 18 19 endpoints := make([]*servicemonitor.ConfigEndpoint, 0) 20 endpoint := &servicemonitor.ConfigEndpoint{ 21 Scheme: "https", 22 BearerTokenFile: "/var/run/secrets/kubernetes.io/serviceaccount/token", 23 Port: "https", 24 Path: "/metrics", 25 TLSConfig: &servicemonitor.ConfigTLSConfig{ 26 CaFile: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt", 27 }, 28 MetricRelabelings: metricRelabelings, 29 } 30 endpoints = append(endpoints, endpoint) 31 32 labels := map[string]string{ 33 "component": "apiserver", 34 "provider": "kubernetes", 35 } 36 37 return &servicemonitor.Config{ 38 Name: "kubernetes-apiservers-servicemonitor", 39 Endpoints: endpoints, 40 MonitorMatchingLabels: monitorlabels, 41 ServiceMatchingLabels: labels, 42 NamespaceSelector: []string{"default"}, 43 JobName: "kubernetes-apiservers", 44 } 45 }