To use the metrics exposed by your service, you need to configure OpenShift Monitoring to scrape metrics from the /metrics
endpoint. You can do this using a ServiceMonitor, a custom resource definition (CRD) that specifies how a service should be monitored, or a PodMonitor, a CRD that specifies how a pod should be monitored. The former requires a Service object, while the latter does not, allowing Prometheus to directly scrape metrics from the metrics endpoint exposed by a Pod.
This procedure shows how to create a ServiceMonitor for the service.
-
Log in as a cluster administrator or a user with the
monitor-crd-edit
role.
-
Create a YAML file for the ServiceMonitor configuration. In this example, the file is called
example-app-service-monitor.yaml
. -
Fill the file with the configuration for creating the ServiceMonitor:
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-app
This configuration makes OpenShift Monitoring scrape the metrics exposed by the sample service deployed in "Deploying a sample service", which includes the single
version
metric. -
Apply the configuration file to the cluster:
$ oc apply -f example-app-service-monitor.yaml
It will take some time to deploy the ServiceMonitor.
-
You can check that the ServiceMonitor is running:
$ oc -n ns1 get servicemonitor NAME AGE prometheus-example-monitor 81m
See the Prometheus Operator API documentation for more information on ServiceMonitors and PodMonitors.