github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/application/applications/orbiter/servicemonitor.go (about)

     1  package orbiter
     2  
     3  import (
     4  	"github.com/caos/orbos/internal/operator/boom/application/applications/metricspersisting/servicemonitor"
     5  	deprecatedlabels "github.com/caos/orbos/internal/operator/boom/labels"
     6  	"github.com/caos/orbos/internal/operator/boom/name"
     7  	"github.com/caos/orbos/internal/operator/orbiter/kinds/orb"
     8  	"github.com/caos/orbos/pkg/labels"
     9  )
    10  
    11  func GetServicemonitor(instanceName string) *servicemonitor.Config {
    12  	var appName name.Application
    13  	appName = "orbiter"
    14  
    15  	relabelings := []*servicemonitor.ConfigRelabeling{{
    16  		Action:       "replace",
    17  		SourceLabels: []string{"job"},
    18  		TargetLabel:  "job",
    19  		Replacement:  "caos_remote_${1}",
    20  	}, {
    21  		Action: "labeldrop",
    22  		Regex:  "(container|endpoint|namespace|pod)",
    23  	}}
    24  
    25  	metricRelabelings := []*servicemonitor.ConfigRelabeling{{
    26  		Action:       "keep",
    27  		Regex:        "probe",
    28  		SourceLabels: []string{"__name__"},
    29  	}, {
    30  		Action: "labelkeep",
    31  		Regex:  "__.+|job|name|type|target",
    32  	}, {
    33  		Action:       "replace",
    34  		SourceLabels: []string{"__name__"},
    35  		TargetLabel:  "__name__",
    36  		Replacement:  "caos_${1}",
    37  	}}
    38  
    39  	endpoint := &servicemonitor.ConfigEndpoint{
    40  		Port:              "metrics",
    41  		Path:              "/metrics",
    42  		Relabelings:       relabelings,
    43  		MetricRelabelings: metricRelabelings,
    44  	}
    45  
    46  	return &servicemonitor.Config{
    47  		Name:                  "orbiter-servicemonitor",
    48  		Endpoints:             []*servicemonitor.ConfigEndpoint{endpoint},
    49  		MonitorMatchingLabels: deprecatedlabels.GetMonitorLabels(instanceName, appName),
    50  		ServiceMatchingLabels: labels.MustK8sMap(orb.OperatorSelector()),
    51  		JobName:               "orbiter",
    52  	}
    53  }