From ea903f004cdc068266b2bc8bc9d6cb388bbf7935 Mon Sep 17 00:00:00 2001 From: Anatolii Bazko Date: Fri, 15 May 2026 13:27:05 +0000 Subject: [PATCH] docs: Update monitoring procedures for automated Prometheus resource management The che-operator now automatically creates and manages Prometheus resources (ServiceMonitor, Role, RoleBinding) and namespace labeling for monitoring Eclipse Che and the DevWorkspace Operator. Updated documentation to reflect this automation and removed manual configuration steps. Related: eclipse-che/che-operator#2117 Co-Authored-By: Claude Sonnet 4.5 --- ...ollecting-che-metrics-with-prometheus.adoc | 88 ++----------------- ...pace-operator-metrics-with-prometheus.adoc | 44 ++-------- 2 files changed, 14 insertions(+), 118 deletions(-) diff --git a/modules/administration-guide/partials/proc_collecting-che-metrics-with-prometheus.adoc b/modules/administration-guide/partials/proc_collecting-che-metrics-with-prometheus.adoc index b86014256a..3e2ef8a037 100644 --- a/modules/administration-guide/partials/proc_collecting-che-metrics-with-prometheus.adoc +++ b/modules/administration-guide/partials/proc_collecting-che-metrics-with-prometheus.adoc @@ -3,7 +3,7 @@ [id="collecting-{prod-id-short}-metrics-with-prometheus"] = Collecting {prod-short} Server metrics with Prometheus -To use the in-cluster Prometheus instance to collect, store, and query JVM metrics for {prod-short} Server: +The {prod-operator} automatically creates the required Prometheus resources (ServiceMonitor, Role, and RoleBinding) and configures namespace labeling for monitoring {prod-short} Server JVM metrics. .Prerequisites @@ -15,88 +15,14 @@ To use the in-cluster Prometheus instance to collect, store, and query JVM metri .Procedure -. Create the ServiceMonitor for detecting the {prod-short} JVM metrics Service. -+ -.ServiceMonitor -==== -[source,yaml,subs="+quotes,+attributes,+macros"] ----- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: che-host - namespace: {prod-namespace} <1> -spec: - endpoints: - - interval: 10s <2> - port: metrics - scheme: http - namespaceSelector: - matchNames: - - {prod-namespace} <1> - selector: - matchLabels: - app.kubernetes.io/name: {prod-deployment} ----- -<1> The {prod-short} namespace. The default is `{prod-namespace}`. -<2> The rate at which a target is scraped. -==== - -. Create a Role and RoleBinding to allow Prometheus to view the metrics. - -+ -.Role -==== -[source,yaml,subs="+quotes,+attributes,+macros"] ----- -kind: Role -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: prometheus-k8s - namespace: {prod-namespace} <1> -rules: - - verbs: - - get - - list - - watch - apiGroups: - - '' - resources: - - services - - endpoints - - pods ----- -<1> The {prod-short} namespace. The default is `{prod-namespace}`. -==== +The {prod-operator} automatically manages the following resources when {prod-short} Server metrics are enabled: -+ -.RoleBinding -==== -[source,yaml,subs="+quotes,+attributes,+macros"] ----- -kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: view-{prod-id-short}-openshift-monitoring-prometheus-k8s - namespace: {prod-namespace} <1> -subjects: - - kind: ServiceAccount - name: prometheus-k8s - namespace: openshift-monitoring -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: prometheus-k8s ----- -<1> The {prod-short} namespace. The default is `{prod-namespace}`. -==== +* A `ServiceMonitor` object for scraping {prod-short} Server metrics +* A `Role` granting the `prometheus-k8s` service account permission to view services, endpoints, and pods +* A `RoleBinding` binding the `prometheus-k8s` service account to the role +* The `openshift.io/cluster-monitoring=true` label on the {prod-short} namespace for OpenShift monitoring discovery -. Allow the in-cluster Prometheus instance to detect the ServiceMonitor in the {prod-short} namespace. The default {prod-short} namespace is `{prod-namespace}`. -+ -[source,terminal,subs="+attributes,quotes"] ----- -$ oc label namespace {prod-namespace} openshift.io/cluster-monitoring=true ----- +No manual configuration is required. The operator reconciles these resources automatically. .Verification diff --git a/modules/administration-guide/partials/proc_collecting-dev-workspace-operator-metrics-with-prometheus.adoc b/modules/administration-guide/partials/proc_collecting-dev-workspace-operator-metrics-with-prometheus.adoc index b198f24bd1..471f069acd 100644 --- a/modules/administration-guide/partials/proc_collecting-dev-workspace-operator-metrics-with-prometheus.adoc +++ b/modules/administration-guide/partials/proc_collecting-dev-workspace-operator-metrics-with-prometheus.adoc @@ -2,7 +2,7 @@ = Collecting {devworkspace} Operator metrics [role="_abstract"] -To use the in-cluster Prometheus instance to collect, store, and query metrics about the {devworkspace} Operator: +The {prod-operator} automatically creates the required Prometheus resources (ServiceMonitor, Role, and RoleBinding) and configures namespace labeling for monitoring the {devworkspace} Operator. .Prerequisites @@ -14,44 +14,14 @@ To use the in-cluster Prometheus instance to collect, store, and query metrics a .Procedure -. Create the ServiceMonitor for detecting the Dev Workspace Operator metrics Service. -+ -.ServiceMonitor -==== -[source,yaml,subs="+quotes,+attributes,+macros"] ----- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: devworkspace-controller - namespace: {prod-namespace} <1> -spec: - endpoints: - - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token - interval: 10s <2> - port: metrics - scheme: https - tlsConfig: - insecureSkipVerify: true - namespaceSelector: - matchNames: - - openshift-operators - selector: - matchLabels: - app.kubernetes.io/name: devworkspace-controller ----- -<1> The {prod-short} namespace. The default is `{prod-namespace}`. -<2> The rate at which a target is scraped. -==== +The {prod-operator} automatically manages the following resources for {devworkspace} Operator monitoring: -include::example$snip_{project-context}-create-a-role-and-rolebinding-for-prometheus-to-view-metrics.adoc[] +* A `ServiceMonitor` object for scraping {devworkspace} Operator metrics +* A `Role` granting the `prometheus-k8s` service account permission to view services, endpoints, and pods +* A `RoleBinding` binding the `prometheus-k8s` service account to the role +* The `openshift.io/cluster-monitoring=true` label on the {prod-short} namespace for OpenShift monitoring discovery -. Allow the in-cluster Prometheus instance to detect the ServiceMonitor in the {prod-short} namespace. The default {prod-short} namespace is `{prod-namespace}`. -+ -[source,subs="+attributes"] ----- -$ oc label namespace {prod-namespace} openshift.io/cluster-monitoring=true ----- +No manual configuration is required. The operator reconciles these resources automatically. .Verification