Skip to content
Closed
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
6 changes: 3 additions & 3 deletions modules/administration-guide/pages/monitoring-che.adoc
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
:_content-type: ASSEMBLY
:description: Monitoring {prod-short} Server
:keywords: administration-guide, monitoring-che
:description: Monitoring {prod-short} Server with Prometheus
:keywords: administration-guide, monitoring-che, prometheus, metrics
:navtitle: Monitoring {prod-short} Server
:page-aliases: .:monitoring-che.adoc, .:tracing-che.adoc, tracing-che.adoc

[id="monitoring-{prod-id-short}"]
= Monitoring {prod-short} Server

You can configure {prod-short} to expose JVM metrics such as JVM memory and class loading for {prod-short} Server.
You can configure {prod-short} to expose JVM metrics such as JVM memory and class loading for {prod-short} Server. The {prod-short} Operator automatically configures Prometheus integration when metrics are enabled.

include::partial$proc_enabling-and-exposing-che-metrics.adoc[leveloffset=+1]

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
:_content-type: ASSEMBLY
:description: Monitoring the {devworkspace} Operator
:keywords: administration-guide, monitoring-the-dev-workspace-operator
:description: Monitoring the {devworkspace} Operator with Prometheus
:keywords: administration-guide, monitoring-the-dev-workspace-operator, prometheus, metrics
:navtitle: Monitoring the {devworkspace} Operator
:page-aliases: .:monitoring-the-dev-workspace-operator.adoc


[id="monitoring-the-dev-workspace-operator"]
= Monitoring the {devworkspace} Operator

You can configure the OpenShift in-cluster monitoring stack to scrape metrics exposed by the {devworkspace} Operator.
You can configure the OpenShift in-cluster monitoring stack to scrape metrics exposed by the {devworkspace} Operator. The {prod-short} Operator automatically configures Prometheus integration when metrics are enabled.

include::partial$proc_collecting-dev-workspace-operator-metrics-with-prometheus.adoc[leveloffset=+1]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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-short} Operator automatically creates the following resources when 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` named `{prod-host}` that detects the {prod-short} JVM metrics Service
* A `Role` named `{prod-id-short}-prometheus` that grants permissions to access services, endpoints, and pods
* A `RoleBinding` named `{prod-id-short}-prometheus` that binds the `prometheus-k8s` ServiceAccount from the `openshift-monitoring` namespace to the Role
* The `openshift.io/cluster-monitoring: "true"` label on the {prod-short} namespace to enable the in-cluster Prometheus instance to detect the ServiceMonitor

. 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 Prometheus resources are managed automatically by the {prod-short} Operator and will be removed when the `CheCluster` is deleted.

.Verification

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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-short} Operator automatically creates the following resources when metrics are enabled:

include::example$snip_{project-context}-create-a-role-and-rolebinding-for-prometheus-to-view-metrics.adoc[]
* A `ServiceMonitor` named `devworkspace-controller` that detects the {devworkspace} Operator metrics Service
* A `Role` named `{prod-id-short}-prometheus` that grants permissions to access services, endpoints, and pods in the `openshift-operators` namespace
* A `RoleBinding` named `{prod-id-short}-prometheus` that binds the `prometheus-k8s` ServiceAccount from the `openshift-monitoring` namespace to the Role
* The `openshift.io/cluster-monitoring: "true"` label on the {prod-short} namespace to enable the in-cluster Prometheus instance to detect the ServiceMonitor

. 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 Prometheus resources are managed automatically by the {prod-short} Operator and will be removed when the `CheCluster` is deleted.

.Verification

Expand Down
Loading