github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/reconciling/metrics/servicemonitor.go (about) 1 package metrics 2 3 import ( 4 "github.com/caos/orbos/internal/operator/boom/application/applications/metricspersisting/servicemonitor" 5 "github.com/caos/orbos/internal/operator/boom/application/applications/reconciling/info" 6 "github.com/caos/orbos/internal/operator/boom/labels" 7 ) 8 9 func GetServicemonitors(instanceName string) []*servicemonitor.Config { 10 11 servicemonitors := make([]*servicemonitor.Config, 0) 12 13 servicemonitors = append(servicemonitors, getSMApplicationController(instanceName)) 14 servicemonitors = append(servicemonitors, getSMRepoServer(instanceName)) 15 servicemonitors = append(servicemonitors, getSMServer(instanceName)) 16 17 return servicemonitors 18 } 19 20 func getSMServer(instanceName string) *servicemonitor.Config { 21 appName := info.GetName() 22 monitorlabels := labels.GetMonitorLabels(instanceName, appName) 23 ls := labels.GetApplicationLabels(appName) 24 25 // argocd-server 26 endpoint := &servicemonitor.ConfigEndpoint{ 27 Port: "metrics", 28 Path: "/metrics", 29 } 30 31 ls["app.kubernetes.io/instance"] = "argocd" 32 ls["app.kubernetes.io/part-of"] = "argocd" 33 ls["app.kubernetes.io/component"] = "server" 34 35 return &servicemonitor.Config{ 36 Name: "argocd-server-servicemonitor", 37 Endpoints: []*servicemonitor.ConfigEndpoint{endpoint}, 38 MonitorMatchingLabels: monitorlabels, 39 ServiceMatchingLabels: ls, 40 JobName: "argocd-server", 41 } 42 } 43 44 func getSMRepoServer(instanceName string) *servicemonitor.Config { 45 appName := info.GetName() 46 monitorlabels := labels.GetMonitorLabels(instanceName, appName) 47 ls := labels.GetApplicationLabels(appName) 48 49 // argocd-repo-server 50 endpoint := &servicemonitor.ConfigEndpoint{ 51 Port: "metrics", 52 Path: "/metrics", 53 } 54 55 ls["app.kubernetes.io/instance"] = "argocd" 56 ls["app.kubernetes.io/part-of"] = "argocd" 57 ls["app.kubernetes.io/component"] = "repo-server" 58 59 return &servicemonitor.Config{ 60 Name: "argocd-repo-server-servicemonitor", 61 Endpoints: []*servicemonitor.ConfigEndpoint{endpoint}, 62 MonitorMatchingLabels: monitorlabels, 63 ServiceMatchingLabels: ls, 64 JobName: "argocd-repo-server", 65 } 66 67 } 68 69 func getSMApplicationController(instanceName string) *servicemonitor.Config { 70 appName := info.GetName() 71 monitorlabels := labels.GetMonitorLabels(instanceName, appName) 72 ls := labels.GetApplicationLabels(appName) 73 74 //argocd-application-controller 75 endpoint := &servicemonitor.ConfigEndpoint{ 76 Port: "metrics", 77 Path: "/metrics", 78 } 79 80 ls["app.kubernetes.io/instance"] = "argocd" 81 ls["app.kubernetes.io/part-of"] = "argocd" 82 ls["app.kubernetes.io/component"] = "application-controller" 83 84 return &servicemonitor.Config{ 85 Name: "argocd-application-controller-servicemonitor", 86 Endpoints: []*servicemonitor.ConfigEndpoint{endpoint}, 87 MonitorMatchingLabels: monitorlabels, 88 ServiceMatchingLabels: ls, 89 JobName: "application-controller", 90 } 91 }