Chapter 1. Enabling observability for Red Hat Developer Hub on OpenShift Container Platform In OpenShift Container Platform, metrics are exposed through an HTTP service endpoint under the /metrics canonical name. You can create a ServiceMonitor custom resource (CR) to scrape metrics from a service endpoint in a user-defined project. 1.1. Enabling metrics monitoring in a Red Hat Developer Hub Operator installation on an OpenShift Container Platform cluster You can enable and view metrics for an Operator-installed Red Hat Developer Hub instance from the Developer perspective of the OpenShift Container Platform web console. Prerequisites Your OpenShift Container Platform cluster has monitoring for user-defined projects enabled. You have installed Red Hat Developer Hub on OpenShift Container Platform using the Red Hat Developer Hub Operator. You have installed the OpenShift CLI ( oc ). Procedure Currently, the Red Hat Developer Hub Operator does not support creating a ServiceMonitor custom resource (CR) by default. You must complete the following steps to create a ServiceMonitor CR to scrape metrics from the endpoint. Create the ServiceMonitor CR as a YAML file: apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: <developer_hub_service_monitor_name> 1 namespace: <rhdh_namespace_name> 2 labels: app.kubernetes.io/instance: <rhdh_cr_name> 3 app.kubernetes.io/name: Backstage spec: namespaceSelector: matchNames: - <rhdh_namespace_name> 4 selector: matchLabels: app.kubernetes.io/instance: <deployment_name> 5 app.kubernetes.io/name: <rhdh_cr_type> 6 endpoints: - port: http-metrics path: '/metrics' 1 The name of your ServiceMonitor resource, for example, developer_hub_service_monitor . 2 The namespace where your ServiceMonitor will live, for example, my-rhdh-project . 3 The label name identifying the ServiceMonitor CR instance, for example, my-rhdh-custom-resource . 4 The namespace where your RHDH instance is installed, for example, my-rhdh-project . 5 The name of your RHDH deployment, for example, developer-hub . 6 The name of your RHDH application, for example, backstage . Note spec.selector.matchLabels configuration must match the labels of your RHDH installation. Apply the ServiceMonitor CR by running the following command: oc apply -f <filename> Verification From the Developer perspective in the OpenShift Container Platform web console, select the Observe view. Click the Metrics tab to view metrics for Red Hat Developer Hub pods. From the Developer perspective in the OpenShift Container Platform web console, click Project > Services and verify the labels for backstage-developer-hub . 1.2. Enabling metrics monitoring in a Helm chart installation on an OpenShift Container Platform cluster You can enable and view metrics for a Red Hat Developer Hub Helm deployment from the Developer perspective of the OpenShift Container Platform web console. Prerequisites Your OpenShift Container Platform cluster has monitoring for user-defined projects enabled. You have installed Red Hat Developer Hub on OpenShift Container Platform using the Helm chart. Procedure From the Developer perspective in the OpenShift Container Platform web console, select the Topology view. Click the overflow menu of the Red Hat Developer Hub Helm chart, and select Upgrade . On the Upgrade Helm Release page, select the YAML view option in Configure via , then configure the metrics section in the YAML, as shown in the following example: upstream: # ... metrics: serviceMonitor: enabled: true path: /metrics port: http-metrics # ... Click Upgrade . Verification From the Developer perspective in the OpenShift Container Platform web console, select the Observe view. Click the Metrics tab to view metrics for Red Hat Developer Hub pods. Additional resources OpenShift Container Platform - Managing metrics

Commands:
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: <developer_hub_service_monitor_name> 1 namespace: <rhdh_namespace_name> 2 labels: app.kubernetes.io/instance: <rhdh_cr_name> 3 app.kubernetes.io/name: Backstage spec: namespaceSelector: matchNames: - <rhdh_namespace_name> 4 selector: matchLabels: app.kubernetes.io/instance: <deployment_name> 5 app.kubernetes.io/name: <rhdh_cr_type> 6 endpoints: - port: http-metrics path: '/metrics'
apply -f <filename>
upstream: metrics: serviceMonitor: enabled: true path: /metrics port: http-metrics