2.5. Setting up metrics collection
To use the metrics exposed by your service, you must configure OpenShift Monitoring to scrape metrics from the /metrics endpoint. You can do this by using a ServiceMonitor custom resource definition (CRD) that specifies how to monitor a service or a PodMonitor CRD that specifies how to monitor a pod. The former requires a Service object, while the latter does not, which allows Prometheus to directly scrape metrics from the metrics endpoint exposed by a pod.
This procedure shows how to create a ServiceMonitor resource for the service.
Prerequisites
-
Log in as a cluster administrator or a user with the
monitoring-editrole.
Procedure
-
Create a YAML file for the
ServiceMonitorresource configuration. In this example, the file is calledexample-app-service-monitor.yaml. Fill the file with the configuration for creating the
ServiceMonitorresource:apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: k8s-app: prometheus-example-monitor name: prometheus-example-monitor namespace: ns1 spec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-example-appThis configuration makes OpenShift Monitoring scrape the metrics exposed by the sample service deployed in "Deploying a sample service", which includes the single
versionmetric.Apply the configuration file to the cluster:
$ oc apply -f example-app-service-monitor.yamlIt will take some time to deploy the
ServiceMonitorresource.You can check that the
ServiceMonitorresource is running:$ oc -n ns1 get servicemonitorExample output
NAME AGE prometheus-example-monitor 81m
Additional resources
See the Prometheus Operator API documentation for more information on ServiceMonitor and PodMonitor resources.