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  }