github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/logcollection/metrics/servicemonitor.go (about) 1 package metrics 2 3 import ( 4 "strings" 5 6 "github.com/caos/orbos/internal/operator/boom/application/applications/logcollection/info" 7 "github.com/caos/orbos/internal/operator/boom/application/applications/metricspersisting/servicemonitor" 8 "github.com/caos/orbos/internal/operator/boom/labels" 9 ) 10 11 func GetServicemonitors(instanceName string) []*servicemonitor.Config { 12 ret := make([]*servicemonitor.Config, 0) 13 ret = append(ret, getFluentd(instanceName)) 14 ret = append(ret, getFluentbit(instanceName)) 15 return ret 16 } 17 18 func getFluentd(instanceName string) *servicemonitor.Config { 19 appName := info.GetName() 20 monitorlabels := labels.GetMonitorLabels(instanceName, appName) 21 ls := make(map[string]string, 0) 22 23 endpoint := &servicemonitor.ConfigEndpoint{ 24 Port: "metrics", 25 HonorLabels: true, 26 } 27 28 ls["app.kubernetes.io/name"] = "fluentd" 29 ls["app.kubernetes.io/managed-by"] = "logging" 30 31 jobname := strings.Join([]string{appName.String(), "fluentd-metrics"}, "-") 32 return &servicemonitor.Config{ 33 Name: "logging-operator-fluentd-servicemonitor", 34 Endpoints: []*servicemonitor.ConfigEndpoint{endpoint}, 35 MonitorMatchingLabels: monitorlabels, 36 ServiceMatchingLabels: ls, 37 JobName: jobname, 38 } 39 } 40 41 func getFluentbit(instanceName string) *servicemonitor.Config { 42 appName := info.GetName() 43 monitorlabels := labels.GetMonitorLabels(instanceName, appName) 44 ls := make(map[string]string, 0) 45 46 endpoint := &servicemonitor.ConfigEndpoint{ 47 Port: "metrics", 48 Path: "/api/v1/metrics/prometheus", 49 HonorLabels: true, 50 } 51 52 ls["app.kubernetes.io/name"] = "fluentbit" 53 ls["app.kubernetes.io/managed-by"] = "logging" 54 55 jobname := strings.Join([]string{appName.String(), "fluentbit-metrics"}, "-") 56 return &servicemonitor.Config{ 57 Name: "logging-operator-fluentbit-servicemonitor", 58 Endpoints: []*servicemonitor.ConfigEndpoint{endpoint}, 59 MonitorMatchingLabels: monitorlabels, 60 ServiceMatchingLabels: ls, 61 JobName: jobname, 62 } 63 }