View Source
const (
	// OperatorPortName defines the default operator metrics port name used in the metrics Service.
	OperatorPortName = "http-metrics"
	// CRPortName defines the custom resource specific metrics' port name used in the metrics Service.
	CRPortName = "cr-metrics"


View Source
var ErrServiceMonitorNotPresent = fmt.Errorf("no ServiceMonitor registered with the API")


func CreateMetricsService

func CreateMetricsService(ctx context.Context, cfg *rest.Config, servicePorts []v1.ServicePort) (*v1.Service, error)

CreateMetricsService creates a Kubernetes Service to expose the passed metrics port(s) with the given name(s).

func CreateServiceMonitors

func CreateServiceMonitors(config *rest.Config, ns string, services []*v1.Service, updaters ...ServiceMonitorUpdater) ([]*monitoringv1.ServiceMonitor, error)

CreateServiceMonitors creates ServiceMonitors objects based on an array of Service objects. If CR ServiceMonitor is not registered in the Cluster it will not attempt at creating resources.

func GenerateServiceMonitor

func GenerateServiceMonitor(s *v1.Service) *monitoringv1.ServiceMonitor

GenerateServiceMonitor generates a prometheus-operator ServiceMonitor object based on the passed Service object.


type ServiceMonitorUpdater

type ServiceMonitorUpdater func(*monitoringv1.ServiceMonitor) error