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  }