Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Check failure on line 6 in modules/administration-guide/partials/proc_collecting-che-metrics-with-prometheus.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [CheDocs.Attributes] Use the AsciiDoc attribute {orch-namespace}, {platforms-namespace}, or {namespace} rather than ' namespace .' Raw Output: {"message": "[CheDocs.Attributes] Use the AsciiDoc attribute {orch-namespace}, {platforms-namespace}, or {namespace} rather than ' namespace .'", "location": {"path": "modules/administration-guide/partials/proc_collecting-che-metrics-with-prometheus.adoc", "range": {"start": {"line": 6, "column": 131}}}, "severity": "ERROR"}

.Prerequisites

Expand All @@ -15,88 +15,14 @@

.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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Check failure on line 5 in modules/administration-guide/partials/proc_collecting-dev-workspace-operator-metrics-with-prometheus.adoc

View workflow job for this annotation

GitHub Actions / Linting with Vale

[vale] reported by reviewdog 🐶 [CheDocs.Attributes] Use the AsciiDoc attribute {orch-namespace}, {platforms-namespace}, or {namespace} rather than ' namespace .' Raw Output: {"message": "[CheDocs.Attributes] Use the AsciiDoc attribute {orch-namespace}, {platforms-namespace}, or {namespace} rather than ' namespace .'", "location": {"path": "modules/administration-guide/partials/proc_collecting-dev-workspace-operator-metrics-with-prometheus.adoc", "range": {"start": {"line": 5, "column": 131}}}, "severity": "ERROR"}

.Prerequisites

Expand All @@ -14,44 +14,14 @@

.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

Expand Down
Loading