diff --git a/modules/monitoring-about-cluster-monitoring.adoc b/modules/monitoring-about-cluster-monitoring.adoc deleted file mode 100644 index f4144d26951d..000000000000 --- a/modules/monitoring-about-cluster-monitoring.adoc +++ /dev/null @@ -1,32 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/monitoring-overview.adoc - -// This module uses a conditionalized title so that the module -// can be re-used in associated products but the title is not -// included in the existing OpenShift assembly. - -:_mod-docs-content-type: CONCEPT -[id="about-openshift-monitoring_{context}"] -ifeval::["{context}" == "understanding-the-monitoring-stack"] -:ocp-monitoring: -endif::[] - -ifndef::ocp-monitoring[] -= About {product-title} monitoring -endif::ocp-monitoring[] -:ocp-monitoring!: - -{product-title} includes a preconfigured, preinstalled, and self-updating monitoring stack that provides *monitoring for core platform components*. {product-title} delivers monitoring best practices out of the box. A set of alerts are included by default that immediately notify cluster administrators about issues with a cluster. Default dashboards in the {product-title} web console include visual representations of cluster metrics to help you to quickly understand the state of your cluster. - -After installing {product-title} {product-version}, cluster administrators can optionally enable *monitoring for user-defined projects*. By using this feature, cluster administrators, developers, and other users can specify how services and pods are monitored in their own projects. You can then query metrics, review dashboards, and manage alerting rules and silences for your own projects in the {product-title} web console. - -[NOTE] -==== -Cluster administrators can grant developers and other users permission to monitor their own projects. Privileges are granted by assigning one of the predefined monitoring roles. -==== - -[id="about-openshift-monitoring_{context}"] -ifeval::["{context}" == "understanding-the-monitoring-stack"] -:!ocp-monitoring: -endif::[] diff --git a/modules/monitoring-configuring-cluster-for-application-monitoring.adoc b/modules/monitoring-configuring-cluster-for-application-monitoring.adoc deleted file mode 100644 index a2f97ce434d7..000000000000 --- a/modules/monitoring-configuring-cluster-for-application-monitoring.adoc +++ /dev/null @@ -1,19 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/application-monitoring.adoc - -:_mod-docs-content-type: PROCEDURE -[id="configuring-cluster-for-application-monitoring_{context}"] -= Configuring cluster for application monitoring - -Before application developers can monitor their applications, the human operator of the cluster needs to configure the cluster accordingly. This procedure shows how to. - -.Prerequisites - -* You must log in as a user that belongs to a role with administrative privileges for the cluster. - -.Procedure - -. In the {product-title} web console, navigate to the *Operators* -> *OperatorHub* page and install the Prometheus Operator in the namespace where your application is. - -. Navigate to the *Operators* -> *Installed Operators* page and install Prometheus, Alertmanager, Prometheus Rule, and Service Monitor in the same namespace. diff --git a/modules/monitoring-configuring-monitoring-for-an-application.adoc b/modules/monitoring-configuring-monitoring-for-an-application.adoc deleted file mode 100644 index c8a499d87bb8..000000000000 --- a/modules/monitoring-configuring-monitoring-for-an-application.adoc +++ /dev/null @@ -1,100 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/application-monitoring.adoc - -:_mod-docs-content-type: PROCEDURE -[id="configuring-monitoring-for-an-application_{context}"] -= Configuring monitoring for an application - -This procedure shows, on an example, how an application developer can deploy an application and configure monitoring for it. - -.Prerequisites - -* Make sure you configured the cluster for application monitoring. In this example, it is presumed that Prometheus and Alertmanager instances were installed in the `default` project. - -.Procedure - -. Create a YAML file for your configuration. In this example, it is called `deploy.yaml`. - -. Add configuration for deploying a sample application: -+ -[source,yaml] ----- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: example-app - namespace: default -spec: - selector: - matchLabels: - app: example-app - replicas: 1 - template: - metadata: - labels: - app: example-app - spec: - containers: - - name: example-app - image: ghcr.io/rhobs/prometheus-example-app:0.4.2 - ports: - - name: web - containerPort: 8080 ---- ----- - -. Add configuration for exposing the sample application as a service: -+ -[source,yaml] ----- -kind: Service -apiVersion: v1 -metadata: - name: example-app - namespace: default - labels: - tier: frontend -spec: - selector: - app: example-app - ports: - - name: web - port: 8080 ---- ----- - -. Add configuration for creating a service monitor for the sample application. This will add your application as a target for monitoring: -+ -[source,yaml] ----- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: example-app - namespace: default - labels: - k8s-app: example-app -spec: - selector: - matchLabels: - tier: frontend - endpoints: - - port: web ----- - -. Apply the configuration file to the cluster: -+ -[source,terminal] ----- -$ oc apply -f deploy.yaml ----- - -. Forward a port to the Prometheus UI. In this example, port 9090 is used: -+ -[source,terminal] ----- -$ oc port-forward -n openshift-user-workload-monitoring svc/prometheus-operated 9090 ----- - -. Navigate to the Prometheus UI at http://localhost:9090/targets to see the sample application being monitored. diff --git a/modules/monitoring-configuring-the-monitoring-stack.adoc b/modules/monitoring-configuring-the-monitoring-stack.adoc deleted file mode 100644 index 686128f6a7ed..000000000000 --- a/modules/monitoring-configuring-the-monitoring-stack.adoc +++ /dev/null @@ -1,156 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/configuring-the-monitoring-stack.adoc - -:_mod-docs-content-type: PROCEDURE -[id="configuring-the-monitoring-stack_{context}"] -= Configuring the monitoring stack - -ifndef::openshift-dedicated,openshift-rosa[] -In {product-title} {product-version}, you can configure the monitoring stack using the `cluster-monitoring-config` or `user-workload-monitoring-config` `ConfigMap` objects. Config maps configure the {cmo-first}, which in turn configures the components of the stack. -endif::openshift-dedicated,openshift-rosa[] -ifdef::openshift-dedicated,openshift-rosa[] -In {product-title}, you can configure the stack that monitors workloads for user-defined projects by using the `user-workload-monitoring-config` `ConfigMap` object. Config maps configure the {cmo-first}, which in turn configures the components of the stack. -endif::openshift-dedicated,openshift-rosa[] - -.Prerequisites - -ifndef::openshift-dedicated,openshift-rosa[] -* *If you are configuring core {product-title} monitoring components*: -** You have access to the cluster as a user with the `cluster-admin` cluster role. -** You have created the `cluster-monitoring-config` `ConfigMap` object. -* *If you are configuring components that monitor user-defined projects*: -** You have access to the cluster as a user with the `cluster-admin` cluster role, or as a user with the `user-workload-monitoring-config-edit` role in the `openshift-user-workload-monitoring` project. -** A cluster administrator has enabled monitoring for user-defined projects. -endif::openshift-dedicated,openshift-rosa[] -ifdef::openshift-dedicated,openshift-rosa[] -* You have access to the cluster as a user with the `dedicated-admin` role. -* The `user-workload-monitoring-config` `ConfigMap` object exists. This object is created by default when the cluster is created. -endif::openshift-dedicated,openshift-rosa[] -* You have installed the OpenShift CLI (`oc`). - -.Procedure - -. Edit the `ConfigMap` object. -ifndef::openshift-dedicated,openshift-rosa[] -** *To configure core {product-title} monitoring components*: -.. Edit the `cluster-monitoring-config` `ConfigMap` object in the `openshift-monitoring` project: -+ -[source,terminal] ----- -$ oc -n openshift-monitoring edit configmap cluster-monitoring-config ----- - -.. Add your configuration under `data/config.yaml` as a key-value pair `:{nbsp}`: -+ -[source,yaml] ----- -apiVersion: v1 -kind: ConfigMap -metadata: - name: cluster-monitoring-config - namespace: openshift-monitoring -data: - config.yaml: | - : - ----- -+ -Substitute `` and `` accordingly. -+ -The following example `ConfigMap` object configures a persistent volume claim (PVC) for Prometheus. This relates to the Prometheus instance that monitors core {product-title} components only: -+ -[source,yaml] ----- -apiVersion: v1 -kind: ConfigMap -metadata: - name: cluster-monitoring-config - namespace: openshift-monitoring -data: - config.yaml: | - prometheusK8s: <1> - volumeClaimTemplate: - spec: - storageClassName: fast - volumeMode: Filesystem - resources: - requests: - storage: 40Gi ----- -<1> Defines the Prometheus component and the subsequent lines define its configuration. - -** *To configure components that monitor user-defined projects*: -endif::openshift-dedicated,openshift-rosa[] -.. Edit the `user-workload-monitoring-config` `ConfigMap` object in the `openshift-user-workload-monitoring` project: -+ -[source,terminal] ----- -$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config ----- - -.. Add your configuration under `data/config.yaml` as a key-value pair `:{nbsp}`: -+ -[source,yaml] ----- -apiVersion: v1 -kind: ConfigMap -metadata: - name: user-workload-monitoring-config - namespace: openshift-user-workload-monitoring -data: - config.yaml: | - : - ----- -+ -Substitute `` and `` accordingly. -+ -The following example `ConfigMap` object configures a data retention period and minimum container resource requests for Prometheus. This relates to the Prometheus instance that monitors user-defined projects only: -+ -[source,yaml] ----- -apiVersion: v1 -kind: ConfigMap -metadata: - name: user-workload-monitoring-config - namespace: openshift-user-workload-monitoring -data: - config.yaml: | - prometheus: <1> - retention: 24h <2> - resources: - requests: - cpu: 200m <3> - memory: 2Gi <4> ----- -<1> Defines the Prometheus component and the subsequent lines define its configuration. -<2> Configures a twenty-four hour data retention period for the Prometheus instance that monitors user-defined projects. -<3> Defines a minimum resource request of 200 millicores for the Prometheus container. -<4> Defines a minimum pod resource request of 2 GiB of memory for the Prometheus container. -ifndef::openshift-dedicated,openshift-rosa[] -+ -[NOTE] -==== -The Prometheus config map component is called `prometheusK8s` in the `cluster-monitoring-config` `ConfigMap` object and `prometheus` in the `user-workload-monitoring-config` `ConfigMap` object. -==== -endif::openshift-dedicated,openshift-rosa[] - -. Save the file to apply the changes to the `ConfigMap` object. -+ -[WARNING] -==== -Different configuration changes to the `ConfigMap` object result in different outcomes: - -* The pods are not redeployed. Therefore, there is no service outage. - -* The affected pods are redeployed: - -** For single-node clusters, this results in temporary service outage. - -** For multi-node clusters, because of high-availability, the affected pods are gradually rolled out and the monitoring stack remains available. - -** Configuring and resizing a persistent volume always results in a service outage, regardless of high availability. - -Each procedure that requires a change in the config map includes its expected outcome. -==== diff --git a/modules/monitoring-contents-of-the-metrics-ui.adoc b/modules/monitoring-contents-of-the-metrics-ui.adoc deleted file mode 100644 index 6d1a9366ea1a..000000000000 --- a/modules/monitoring-contents-of-the-metrics-ui.adoc +++ /dev/null @@ -1,35 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/managing-metrics.adoc - -[id="contents-of-the-metrics-ui_{context}"] -= Contents of the Metrics UI - -This section shows and explains the contents of the Metrics UI, a web interface to Prometheus. - -The *Metrics* page is accessible by clicking *Observe* -> *Metrics* in the {product-title} web console. - -image::monitoring-metrics-screen.png[] - -. Actions. -* Add query. -* Expand or collapse all query tables. -* Delete all queries. -. Hide the plot. -. The interactive plot. -. The catalog of available metrics. -. Add query. -. Run queries. -. Query forms. -. Expand or collapse the form. -. The query. -. Clear query. -. Enable or disable query. -. Actions for a specific query. -* Enable or disable query. -* Show or hide all series of the query from the plot. -* Delete query. -. The metrics table for a query. -. Color assigned to the graph of the metric. Selecting the square shows or hides the graph. - -Additionally, there is a link to the old Prometheus interface next to the title of the page. diff --git a/modules/monitoring-creating-a-role-for-setting-up-metrics-collection.adoc b/modules/monitoring-creating-a-role-for-setting-up-metrics-collection.adoc deleted file mode 100644 index 2273eb861fcb..000000000000 --- a/modules/monitoring-creating-a-role-for-setting-up-metrics-collection.adoc +++ /dev/null @@ -1,36 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/monitoring-your-own-services.adoc - -[id="creating-a-role-for-setting-up-metrics-collection_{context}"] -= Creating a role for setting up metrics collection - -This procedure shows how to create a role that allows a user to set up metrics collection for a service as described in "Setting up metrics collection". - -.Procedure - -. Create a YAML file for the new role. In this example, it is called `custom-metrics-role.yaml`. - -. Fill the file with the configuration for the `monitor-crd-edit` role: -+ -[source,yaml] ----- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: monitor-crd-edit -rules: -- apiGroups: ["monitoring.coreos.com"] - resources: ["prometheusrules", "servicemonitors", "podmonitors"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] ----- -+ -This role enables a user to set up metrics collection for services. - -. Apply the configuration file to the cluster: -+ ----- -$ oc apply -f custom-metrics-role.yaml ----- -+ -Now the role is created. diff --git a/modules/monitoring-creating-alerting-rules.adoc b/modules/monitoring-creating-alerting-rules.adoc deleted file mode 100644 index 4b906b6bc7d7..000000000000 --- a/modules/monitoring-creating-alerting-rules.adoc +++ /dev/null @@ -1,60 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/managing-alerts.adoc - -[id="creating-alerting-rules-for-user-defined-projects_{context}"] -= Creating alerting rules for user-defined projects - -For user-defined projects you can create alerting rules. Those alerting rules will fire alerts based on the values of chosen metrics. - -.Prerequisites - -* You have enabled monitoring for user-defined projects. -* You are logged in as a user that has the `monitoring-rules-edit` cluster role for the project where you want to create an alerting rule. -* You have installed the OpenShift CLI (`oc`). - -.Procedure - -. Create a YAML file for alerting rules. In this example, it is called `example-app-alerting-rule.yaml`. - -. Add an alerting rule configuration to the YAML file. For example: -+ -[NOTE] -==== -When you create an alerting rule, a project label is enforced on it if a rule with the same name exists in another project. -==== -+ -[source,yaml] ----- -apiVersion: monitoring.coreos.com/v1 -kind: PrometheusRule -metadata: - name: example-alert - namespace: ns1 -spec: - groups: - - name: example - rules: - - alert: VersionAlert - expr: version{job="prometheus-example-app"} == 0 ----- -+ -This configuration creates an alerting rule named `example-alert`. The alerting rule fires an alert when the `version` metric exposed by the sample service becomes `0`. -+ -[IMPORTANT] -==== -A user-defined alerting rule can include metrics for its own project and cluster metrics. You cannot include metrics for another user-defined project. - -For example, an alerting rule for the user-defined project `ns1` can have metrics from `ns1` and cluster metrics, such as the CPU and memory metrics. However, the rule cannot include metrics from `ns2`. - -Additionally, you cannot create alerting rules for the `openshift-*` core {product-title} projects. {product-title} monitoring by default provides a set of alerting rules for these projects. -==== - -. Apply the configuration file to the cluster: -+ -[source,terminal] ----- -$ oc apply -f example-app-alerting-rule.yaml ----- -+ -It takes some time to create the alerting rule. diff --git a/modules/monitoring-exploring-the-visualized-metrics.adoc b/modules/monitoring-exploring-the-visualized-metrics.adoc deleted file mode 100644 index 97e743ba3f24..000000000000 --- a/modules/monitoring-exploring-the-visualized-metrics.adoc +++ /dev/null @@ -1,34 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/managing-metrics.adoc - -:_mod-docs-content-type: PROCEDURE -[id="exploring-the-visualized-metrics_{context}"] -= Exploring the visualized metrics - -After running the queries, the metrics are displayed on an interactive plot. The X-axis in the plot represents time and the Y-axis represents metrics values. Each metric is shown as a colored line on the graph. You can manipulate the plot interactively and explore the metrics. - -.Procedure - -* Initially, all metrics from all enabled queries are shown on the plot. You can select which metrics are shown. -+ -[NOTE] -==== -By default, the query table shows an expanded view that lists every metric and its current value. You can select *˅* to minimize the expanded view for a query. -==== - -** To hide all metrics from a query, click {kebab} for the query and click *Hide all series*. - -** To hide a specific metric, go to the query table and click the colored square near the metric name. - -* To zoom into the plot and change the time range, do one of the following: - -** Visually select the time range by clicking and dragging on the plot horizontally. - -** Use the menu in the left upper corner to select the time range. - -* To reset the time range, select *Reset Zoom*. - -* To display outputs for all queries at a specific point in time, hold the mouse cursor on the plot at that point. The query outputs will appear in a pop-up box. - -. To hide the plot, select *Hide Graph*. \ No newline at end of file diff --git a/modules/monitoring-exposing-custom-application-metrics-for-horizontal-pod-autoscaling.adoc b/modules/monitoring-exposing-custom-application-metrics-for-horizontal-pod-autoscaling.adoc deleted file mode 100644 index 15c6d4481333..000000000000 --- a/modules/monitoring-exposing-custom-application-metrics-for-horizontal-pod-autoscaling.adoc +++ /dev/null @@ -1,276 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/application-monitoring.adoc - -[id="exposing-custom-application-metrics-for-horizontal-pod-autoscaling_{context}"] -= Exposing custom application metrics for horizontal pod autoscaling - -You can use the `prometheus-adapter` resource to expose custom application metrics for the horizontal pod autoscaler. - -.Prerequisites - -* You have a custom Prometheus instance installed. In this example, it is presumed that Prometheus was installed in a user-defined `custom-prometheus` project. -+ -[NOTE] -==== -Custom Prometheus instances and the Prometheus Operator installed through Operator Lifecycle Manager (OLM) can cause issues with user-defined workload monitoring if it is enabled. Custom Prometheus instances are not supported in {product-title}. -==== -+ -* You have deployed an application and a service in a user-defined project. In this example, it is presumed that the application and its service monitor were installed in a user-defined `custom-prometheus` project. -* You have installed the OpenShift CLI (`oc`). - -.Procedure - -. Create a YAML file for your configuration. In this example, the file is called `deploy.yaml`. - -. Add configuration details for creating the service account, roles, and role bindings for `prometheus-adapter`: -+ -[source,yaml,subs=quotes] ----- -kind: ServiceAccount -apiVersion: v1 -metadata: - name: custom-metrics-apiserver - namespace: custom-prometheus ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: custom-metrics-server-resources -rules: -- apiGroups: - - custom.metrics.k8s.io - resources: ["\*"] - verbs: ["*"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: custom-metrics-resource-reader -rules: -- apiGroups: - - "" - resources: - - namespaces - - pods - - services - verbs: - - get - - list ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: custom-metrics:system:auth-delegator -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: system:auth-delegator -subjects: -- kind: ServiceAccount - name: custom-metrics-apiserver - namespace: custom-prometheus ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: custom-metrics-auth-reader - namespace: kube-system -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: extension-apiserver-authentication-reader -subjects: -- kind: ServiceAccount - name: custom-metrics-apiserver - namespace: custom-prometheus ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: custom-metrics-resource-reader -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: custom-metrics-resource-reader -subjects: -- kind: ServiceAccount - name: custom-metrics-apiserver - namespace: custom-prometheus ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: hpa-controller-custom-metrics -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: custom-metrics-server-resources -subjects: -- kind: ServiceAccount - name: horizontal-pod-autoscaler - namespace: kube-system ---- ----- - -. Add configuration details for the custom metrics for `prometheus-adapter`: -+ -[source,yaml] ----- -apiVersion: v1 -kind: ConfigMap -metadata: - name: adapter-config - namespace: custom-prometheus -data: - config.yaml: | - rules: - - seriesQuery: 'http_requests_total{namespace!="",pod!=""}' <1> - resources: - overrides: - namespace: {resource: "namespace"} - pod: {resource: "pod"} - service: {resource: "service"} - name: - matches: "^(.*)_total" - as: "${1}_per_second" <2> - metricsQuery: 'sum(rate(<<.Series>>{<<.LabelMatchers>>}[2m])) by (<<.GroupBy>>)' ---- ----- -<1> Specifies the chosen metric to be the number of HTTP requests. -<2> Specifies the frequency for the metric. - -. Add configuration details for registering `prometheus-adapter` as an API service: -+ -[source,yaml,subs=quotes] ----- -apiVersion: v1 -kind: Service -metadata: - annotations: - service.beta.openshift.io/serving-cert-secret-name: prometheus-adapter-tls - labels: - name: prometheus-adapter - name: prometheus-adapter - namespace: custom-prometheus -spec: - ports: - - name: https - port: 443 - targetPort: 6443 - selector: - app: prometheus-adapter - type: ClusterIP ---- -apiVersion: apiregistration.k8s.io/v1beta1 -kind: APIService -metadata: - name: v1beta1.custom.metrics.k8s.io -spec: - service: - name: prometheus-adapter - namespace: custom-prometheus - group: custom.metrics.k8s.io - version: v1beta1 - insecureSkipTLSVerify: true - groupPriorityMinimum: 100 - versionPriority: 100 ---- ----- - -. List the Prometheus Adapter image: -+ -[source,terminal] ----- -$ oc get -n openshift-monitoring deploy/prometheus-adapter -o jsonpath="{..image}" ----- - -. Add configuration details for deploying `prometheus-adapter`: -+ -[source,yaml] ----- -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app: prometheus-adapter - name: prometheus-adapter - namespace: custom-prometheus -spec: - replicas: 1 - selector: - matchLabels: - app: prometheus-adapter - template: - metadata: - labels: - app: prometheus-adapter - name: prometheus-adapter - spec: - serviceAccountName: custom-metrics-apiserver - containers: - - name: prometheus-adapter - image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:a46915a206cd7d97f240687c618dd59e8848fcc3a0f51e281f3384153a12c3e0 <1> - args: - - --secure-port=6443 - - --tls-cert-file=/var/run/serving-cert/tls.crt - - --tls-private-key-file=/var/run/serving-cert/tls.key - - --logtostderr=true - - --prometheus-url=http://prometheus-operated.default.svc:9090/ - - --metrics-relist-interval=1m - - --v=4 - - --config=/etc/adapter/config.yaml - ports: - - containerPort: 6443 - volumeMounts: - - mountPath: /var/run/serving-cert - name: volume-serving-cert - readOnly: true - - mountPath: /etc/adapter/ - name: config - readOnly: true - - mountPath: /tmp - name: tmp-vol - volumes: - - name: volume-serving-cert - secret: - secretName: prometheus-adapter-tls - - name: config - configMap: - name: adapter-config - - name: tmp-vol - emptyDir: {} ----- -<1> Specifies the Prometheus Adapter image found in the previous step. - -. Apply the configuration to the cluster: -+ -[source,terminal] ----- -$ oc apply -f deploy.yaml ----- -+ -.Example output -[source,terminal] ----- -serviceaccount/custom-metrics-apiserver created -clusterrole.rbac.authorization.k8s.io/custom-metrics-server-resources created -clusterrole.rbac.authorization.k8s.io/custom-metrics-resource-reader created -clusterrolebinding.rbac.authorization.k8s.io/custom-metrics:system:auth-delegator created -rolebinding.rbac.authorization.k8s.io/custom-metrics-auth-reader created -clusterrolebinding.rbac.authorization.k8s.io/custom-metrics-resource-reader created -clusterrolebinding.rbac.authorization.k8s.io/hpa-controller-custom-metrics created -configmap/adapter-config created -service/prometheus-adapter created -apiservice.apiregistration.k8s.io/v1.custom.metrics.k8s.io created -deployment.apps/prometheus-adapter created ----- - -. Verify that the `prometheus-adapter` pod in your user-defined project is in a `Running` state. In this example the project is `custom-prometheus`: -+ -[source,terminal] ----- -$ oc -n custom-prometheus get pods prometheus-adapter- ----- - -. The metrics for the application are now exposed and they can be used to configure horizontal pod autoscaling. diff --git a/modules/monitoring-intro-enabling-monitoring-for-user-defined-projects.adoc b/modules/monitoring-intro-enabling-monitoring-for-user-defined-projects.adoc deleted file mode 100644 index e0f8198cfeb2..000000000000 --- a/modules/monitoring-intro-enabling-monitoring-for-user-defined-projects.adoc +++ /dev/null @@ -1,11 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc - -:_mod-docs-content-type: CONCEPT -[id="intro-enabling-monitoring-for-user-defined-projects_{context}"] -= Enabling monitoring for user-defined projects - -In {product-title}, you can enable monitoring for user-defined projects in addition to the default platform monitoring. You can monitor your own projects in {product-title} without the need for an additional monitoring solution. Using this feature centralizes monitoring for core platform components and user-defined projects. - -include::snippets/monitoring-custom-prometheus-note.adoc[] diff --git a/modules/monitoring-running-metrics-queries.adoc b/modules/monitoring-running-metrics-queries.adoc deleted file mode 100644 index a9c3357e91b6..000000000000 --- a/modules/monitoring-running-metrics-queries.adoc +++ /dev/null @@ -1,31 +0,0 @@ -// Module included in the following assemblies: -// -// * observability/monitoring/examining-cluster-metrics.adoc - -[id="running-metrics-queries_{context}"] -= Running metrics queries - -You begin working with metrics by entering one or several Prometheus Query Language (PromQL) queries. - -.Procedure - -. Open the {product-title} web console and navigate to the *Observe* -> *Metrics* page. - -. In the query field, enter your PromQL query. -* To show all available metrics and PromQL functions, click *Insert Metric at Cursor*. -. For multiple queries, click *Add Query*. -. For deleting queries, click {kebab} for the query, then select *Delete query*. -. For keeping but not running a query, click *Disable query*. -. After you finish creating queries, click *Run Queries*. The metrics from the queries are visualized on the plot. If a query is invalid, the UI shows an error message. -+ -[NOTE] -==== -Queries that operate on large amounts of data might timeout or overload the browser when drawing timeseries graphs. To avoid this, hide the graph and calibrate your query using only the metrics table. Then, after finding a feasible query, enable the plot to draw the graphs. -==== -+ -. Optional: The page URL now contains the queries you ran. To use this set of queries again in the future, save this URL. - -[role="_additional-resources"] -.Additional resources - -* See the link:https://prometheus.io/docs/prometheus/latest/querying/basics/[Prometheus Query Language documentation]. diff --git a/observability/monitoring/accessing-third-party-monitoring-apis.adoc b/observability/monitoring/accessing-third-party-monitoring-apis.adoc deleted file mode 100644 index 53b1229b1227..000000000000 --- a/observability/monitoring/accessing-third-party-monitoring-apis.adoc +++ /dev/null @@ -1,48 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="accessing-third-party-monitoring-apis"] -= Accessing monitoring APIs by using the CLI -include::_attributes/common-attributes.adoc[] -:context: accessing-third-party-monitoring-apis - -toc::[] - -In {product-title}, you can access web service APIs for some monitoring components from the command-line interface (CLI). - -[IMPORTANT] -==== -In certain situations, accessing API endpoints can degrade the performance and scalability of your cluster, especially if you use endpoints to retrieve, send, or query large amounts of metrics data. - -To avoid these issues, follow these recommendations: - -* Avoid querying endpoints frequently. Limit queries to a maximum of one every 30 seconds. -* Do not try to retrieve all metrics data through the `/federate` endpoint for Prometheus. Query it only when you want to retrieve a limited, aggregated data set. For example, retrieving fewer than 1,000 samples for each request helps minimize the risk of performance degradation. -==== - -// Accessing service APIs for third-party monitoring components -include::modules/monitoring-about-accessing-monitoring-web-service-apis.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources -* xref:../../observability/monitoring/reviewing-monitoring-dashboards.adoc#reviewing-monitoring-dashboards[Reviewing monitoring dashboards] - -include::modules/monitoring-accessing-third-party-monitoring-web-service-apis.adoc[leveloffset=+1] - -// Querying metrics by using the federation endpoint for Prometheus -include::modules/monitoring-querying-metrics-by-using-the-federation-endpoint-for-prometheus.adoc[leveloffset=+1] - -// Accessing metrics from outside the cluster for custom applications -include::modules/accessing-metrics-outside-cluster.adoc[leveloffset=+1] - -// Resources reference for accessing API endpoints -include::modules/monitoring-resources-reference-for-the-cluster-monitoring-operator.adoc[leveloffset=+1] - -[role="_additional-resources"] -[id="additional-resources_{context}"] -== Additional resources - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects-uwm_enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#configuring-remote-write-storage_configuring-the-monitoring-stack[Configuring remote write storage] -* xref:../../observability/monitoring/managing-metrics.adoc#managing-metrics[Managing metrics] -* xref:../../observability/monitoring/managing-alerts.adoc#managing-alerts[Managing alerts] diff --git a/observability/monitoring/application-monitoring.adoc b/observability/monitoring/application-monitoring.adoc deleted file mode 100644 index a6f2baa8919b..000000000000 --- a/observability/monitoring/application-monitoring.adoc +++ /dev/null @@ -1,16 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="application-monitoring"] -= Application monitoring -include::_attributes/common-attributes.adoc[] -:context: application-monitoring - -toc::[] - -You can configure custom metrics scraping for your applications. For that, you deploy the Prometheus Operator and a custom Prometheus instance and Alertmanager instance in the namespace where your application is. - -:FeatureName: Application monitoring -include::snippets/technology-preview.adoc[leveloffset=+0] - -include::modules/monitoring-configuring-cluster-for-application-monitoring.adoc[leveloffset=+1] -include::modules/monitoring-configuring-monitoring-for-an-application.adoc[leveloffset=+1] -include::modules/monitoring-exposing-custom-application-metrics-for-horizontal-pod-autoscaling.adoc[leveloffset=+1] diff --git a/observability/monitoring/common-monitoring-configuration-scenarios.adoc b/observability/monitoring/common-monitoring-configuration-scenarios.adoc deleted file mode 100644 index 03cbdb91b4b5..000000000000 --- a/observability/monitoring/common-monitoring-configuration-scenarios.adoc +++ /dev/null @@ -1,86 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="common-monitoring-configuration-scenarios"] -= Common monitoring configuration scenarios -include::_attributes/common-attributes.adoc[] -:context: common-monitoring-configuration-scenarios - -toc::[] - -After {product-title} is installed, core platform monitoring components immediately begin collecting metrics, which you can query and view. -The default in-cluster monitoring stack includes the core platform Prometheus instance that collects metrics from your cluster and the core Alertmanager instance that routes alerts, among other components. -Depending on who will use the monitoring stack and for what purposes, as a cluster administrator, you can further configure these monitoring components to suit the needs of different users in various scenarios. - -In addition to core platform monitoring, you can also optionally xref:../monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[enable monitoring for user-defined projects] for user workload monitoring. -Users can then monitor their own services and workloads without the need for an additional monitoring solution. - -[id="configuring-core-platform-monitoring-postinstallation-steps_{context}"] -== Configuring core platform monitoring: Postinstallation steps - -After {product-title} is installed, cluster administrators typically configure core platform monitoring to suit their needs. -These activities include setting up storage and configuring options for Prometheus, Alertmanager, and other monitoring components. - -[NOTE] -==== -By default, in a newly installed {product-title} system, users can query and view collected metrics. -You need only configure an alert receiver if you want users to receive alert notifications. -Any other configuration options listed here are optional. -==== - -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#creating-cluster-monitoring-configmap_configuring-the-monitoring-stack[Create the `cluster-monitoring-config` `ConfigMap` object] if it does not exist. -* xref:../../observability/monitoring/managing-alerts.adoc#sending-notifications-to-external-systems_managing-alerts[Configure alert receivers] so that Alertmanager can send alerts to an external notification system such as email, Slack, or PagerDuty. -* xref:../../observability/monitoring/managing-alerts.adoc#configuring-alert-routing-default-platform-alerts_managing-alerts[Configure notifications for default platform alerts]. -* For shorter term data retention, xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#configuring-persistent-storage_configuring-the-monitoring-stack[configure persistent storage] for Prometheus and Alertmanager to store metrics and alert data. -Specify the metrics data retention parameters for Prometheus and Thanos Ruler. -+ -[IMPORTANT] -==== -* In multi-node clusters, you must configure persistent storage for Prometheus, Alertmanager, and Thanos Ruler to ensure high availability. - -* By default, in a newly installed {product-title} system, the monitoring `ClusterOperator` resource reports a `PrometheusDataPersistenceNotConfigured` status message to remind you that storage is not configured. -==== -+ -* For longer term data retention, xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#configuring-remote-write-storage_configuring-the-monitoring-stack[configure the remote write feature] to enable Prometheus to send ingested metrics to remote systems for storage. -+ -[IMPORTANT] -==== -Be sure to xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#adding-cluster-id-labels-to-metrics_configuring-the-monitoring-stack[add cluster ID labels to metrics] for use with your remote write storage configuration. -==== -+ -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#granting-users-permission-to-monitor-user-defined-projects_enabling-monitoring-for-user-defined-projects[Assign monitoring cluster roles] to any non-administrator users that need to access certain monitoring features. -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#assigning-tolerations-to-monitoring-components_configuring-the-monitoring-stack[Assign tolerations] to monitoring stack components so that administrators can move them to tainted nodes. -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#setting-the-body-size-limit-for-metrics-scraping_configuring-the-monitoring-stack[Set the body size limit] for metrics collection to help avoid situations in which Prometheus consumes excessive amounts of memory when scraped targets return a response that contains a large amount of data. -* xref:../../observability/monitoring/managing-alerts.adoc#managing-core-platform-alerting-rules_managing-alerts[Modify or create alerting rules] for your cluster. -These rules specify the conditions that trigger alerts, such as high CPU or memory usage, network latency, and so forth. -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#managing-cpu-and-memory-resources-for-monitoring-components[Specify resource limits and requests for monitoring components] to ensure that the containers that run monitoring components have enough CPU and memory resources. - -With the monitoring stack configured to suit your needs, Prometheus collects metrics from the specified services and stores these metrics according to your settings. -You can go to the *Observe* pages in the {product-title} web console to view and query collected metrics, manage alerts, identify performance bottlenecks, and scale resources as needed: - -* xref:../../observability/monitoring/reviewing-monitoring-dashboards.adoc#reviewing-monitoring-dashboards[View dashboards] to visualize collected metrics, troubleshoot alerts, and monitor other information about your cluster. -* xref:../../observability/monitoring/managing-metrics.adoc#querying-metrics-for-all-projects-with-mon-dashboard_managing-metrics[Query collected metrics] by creating PromQL queries or using predefined queries. - -[id="configuring-monitoring-for-user-defined-projects-getting-started_{context}"] -== Configuring monitoring for user-defined projects: Getting started - -As a cluster administrator, you can optionally enable monitoring for user-defined projects in addition to core platform monitoring. -Non-administrator users such as developers can then monitor their own projects outside of core platform monitoring. - -Cluster administrators typically complete the following activities to configure user-defined projects so that users can view collected metrics, query these metrics, and receive alerts for their own projects: - -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects-uwm_enabling-monitoring-for-user-defined-projects[Enable user-defined projects]. -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#granting-users-permission-to-monitor-user-defined-projects_enabling-monitoring-for-user-defined-projects[Assign the `monitoring-rules-view`, `monitoring-rules-edit`, or `monitoring-edit` cluster roles] to grant non-administrator users permissions to monitor user-defined projects. -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#granting-users-permission-to-configure-monitoring-for-user-defined-projects_enabling-monitoring-for-user-defined-projects[Grant non-administrator users permission to configure user-defined projects] by assigning the `user-workload-monitoring-config-edit` role. -* xref:../../observability/monitoring/enabling-alert-routing-for-user-defined-projects.adoc#enabling-alert-routing-for-user-defined-projects[Enable alert routing for user-defined projects] so that developers and other users can configure custom alerts and alert routing for their projects. -* If needed, configure alert routing for user-defined projects to xref:../../observability/monitoring/enabling-alert-routing-for-user-defined-projects.adoc#enabling-a-separate-alertmanager-instance-for-user-defined-alert-routing_enabling-alert-routing-for-user-defined-projects[use an optional Alertmanager instance dedicated for use only by user-defined projects]. -* xref:../../observability/monitoring/managing-alerts.adoc#configuring-different-alert-receivers-for-default-platform-alerts-and-user-defined-alerts_managing-alerts[Configure alert receivers] for user-defined projects. -* xref:../../observability/monitoring/managing-alerts.adoc#configuring-alert-routing-user-defined-alerts-secret_managing-alerts[Configure notifications for user-defined alerts]. - -After monitoring for user-defined projects is enabled and configured, developers and other non-administrator users can then perform the following activities to set up and use monitoring for their own projects: - -* xref:../../observability/monitoring/managing-metrics.adoc#setting-up-metrics-collection-for-user-defined-projects_managing-metrics[Deploy and monitor services]. -* xref:../../observability/monitoring/managing-alerts.adoc#creating-alerting-rules-for-user-defined-projects_managing-alerts[Create and manage alerting rules]. -* xref:../../observability/monitoring/managing-alerts.adoc#managing-alerts[Receive and manage alerts] for their projects. -* If granted the `user-workload-monitoring-config-edit` role, xref:../../observability/monitoring/managing-alerts.adoc#configuring-alert-routing-for-user-defined-projects_managing-alerts[configure alert routing]. -* Use the {product-title} web console to xref:../../observability/monitoring/reviewing-monitoring-dashboards.adoc#reviewing-monitoring-dashboards-developer_reviewing-monitoring-dashboards[view dashboards]. -* xref:../../observability/monitoring/managing-metrics.adoc#querying-metrics-for-user-defined-projects-with-mon-dashboard_managing-metrics[Query the collected metrics] by creating PromQL queries or using predefined queries. - diff --git a/observability/monitoring/configuring-hpa-for-an-application.adoc b/observability/monitoring/configuring-hpa-for-an-application.adoc deleted file mode 100644 index a1b48f9a756f..000000000000 --- a/observability/monitoring/configuring-hpa-for-an-application.adoc +++ /dev/null @@ -1,27 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="configuring-hpa-for-an-application"] -= Configuring HPA for an application -include::_attributes/common-attributes.adoc[] -:context: configuring-hpa-for-an-application - -toc::[] - -You can configure Horizontal Pod Autoscaling (HPA) for an application that exports metrics. - -:FeatureName: Horizontal Pod Autoscaling for an application -include::snippets/technology-preview.adoc[leveloffset=+0] - -== Prerequisites - -* Install the OpenShift CLI (`oc`). -* You must log in to the cluster with a user that has the `cluster-admin` role. -* Make sure you configured the cluster for application monitoring. In the following example, it is presumed that Prometheus and Alertmanager instances were installed in the `default` project. See xref:../../observability/monitoring/application-monitoring.adoc#configuring-cluster-for-application-monitoring_application-monitoring[Application monitoring]. -* Make sure you configured monitoring for your application. In the following example, it is presumed that the application and the service monitor for it were installed in the `default` project. See xref:../../observability/monitoring/application-monitoring.adoc#configuring-monitoring-for-an-application_application-monitoring[Application monitoring]. -* Make sure your application exposes metrics using the `prometheus-adapter`. In the following example, it is presumed that `prometheus-adapter` was installed in the `default` project. See xref:../../observability/monitoring/application-monitoring.adoc#exposing-custom-application-metrics-for-horizontal-pod-autoscaling_application-monitoring[Application monitoring]. - -include::modules/configuring-hpa-based-on-application-metrics.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -* xref:../nodes/pods/nodes-pods-autoscaling.adoc#nodes-pods-autoscaling[Horizontal pod autoscaling documentation]. diff --git a/observability/monitoring/configuring-the-monitoring-stack.adoc b/observability/monitoring/configuring-the-monitoring-stack.adoc deleted file mode 100644 index e371520cc755..000000000000 --- a/observability/monitoring/configuring-the-monitoring-stack.adoc +++ /dev/null @@ -1,370 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="configuring-the-monitoring-stack"] -= Configuring the monitoring stack -include::_attributes/common-attributes.adoc[] -:context: configuring-the-monitoring-stack - -toc::[] - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -The {product-title} installation program provides only a low number of configuration options before installation. Configuring most {product-title} framework components, including the cluster monitoring stack, happens after the installation. -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -This section explains what configuration is supported, -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -shows how to configure the monitoring stack, -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -ifdef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -shows how to configure the monitoring stack for user-defined projects, -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -and demonstrates several common configuration scenarios. - -[IMPORTANT] -==== -Not all configuration parameters for the monitoring stack are exposed. -Only the parameters and fields listed in the xref:../../observability/monitoring/config-map-reference-for-the-cluster-monitoring-operator.adoc#cluster-monitoring-operator-configuration-reference[Config map reference for the {cmo-full}] are supported for configuration. -==== - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -== Prerequisites - -* The monitoring stack imposes additional resource requirements. Consult the computing resources recommendations in xref:../../scalability_and_performance/recommended-performance-scale-practices/recommended-infrastructure-practices.adoc#scaling-cluster-monitoring-operator[Scaling the {cmo-full}] and verify that you have sufficient resources. -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Maintenance and support for monitoring -// include::modules/monitoring-maintenance-and-support.adoc[leveloffset=+1] - -// .Additional resources -// xref:../../observability/monitoring/config-map-reference-for-the-cluster-monitoring-operator.adoc#cluster-monitoring-operator-configuration-reference[Config map reference for the {cmo-full}] - -[id="maintenance-and-support_{context}"] -== Maintenance and support for monitoring - -Not all configuration options for the monitoring stack are exposed. The only supported way of configuring {product-title} monitoring is by configuring the {cmo-first} using the options described in the xref:../../observability/monitoring/config-map-reference-for-the-cluster-monitoring-operator.adoc#cluster-monitoring-operator-configuration-reference[Config map reference for the {cmo-full}]. *Do not use other configurations, as they are unsupported.* - -Configuration paradigms might change across Prometheus releases, and such cases can only be handled gracefully if all configuration possibilities are controlled. If you use configurations other than those described in the xref:../../observability/monitoring/config-map-reference-for-the-cluster-monitoring-operator.adoc#cluster-monitoring-operator-configuration-reference[Config map reference for the {cmo-full}], your changes will disappear because the {cmo-short} automatically reconciles any differences and resets any unsupported changes back to the originally defined state by default and by design. - -ifdef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -[IMPORTANT] -==== -Installing another Prometheus instance is not supported by the Red Hat Site Reliability Engineers (SRE). -==== -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -include::modules/monitoring-support-considerations.adoc[leveloffset=+2] -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -include::modules/monitoring-support-policy-for-monitoring-operators.adoc[leveloffset=+2] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -include::modules/monitoring-support-version-matrix-for-monitoring-components.adoc[leveloffset=+2] - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -// Preparing to configure the monitoring stack -[id="preparing-to-configure-the-monitoring-stack"] -== Preparing to configure the monitoring stack - -You can configure the monitoring stack by creating and updating monitoring config maps. These config maps configure the {cmo-first}, which in turn configures the components of the monitoring stack. - -include::modules/monitoring-creating-cluster-monitoring-configmap.adoc[leveloffset=+2] -include::modules/monitoring-creating-user-defined-workload-monitoring-configmap.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources - -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -// Granting users permissions for core platform monitoring -include::modules/monitoring-granting-users-permissions-for-core-platform-monitoring.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#granting-user-permissions-using-the-web-console_enabling-monitoring-for-user-defined-projects[Granting user permissions by using the web console] -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#granting-user-permissions-using-the-cli_enabling-monitoring-for-user-defined-projects[Granting user permissions by using the CLI] -* xref:../../observability/monitoring/accessing-third-party-monitoring-apis.adoc#resources-reference-for-the-cluster-monitoring-operator_accessing-third-party-monitoring-apis[Resources reference for the {cmo-full}] -* xref:../../observability/monitoring/accessing-third-party-monitoring-apis.adoc#cmo-services-resources_accessing-third-party-monitoring-apis[CMO services resources] - -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Configuring the monitoring stack -include::modules/monitoring-configuring-the-monitoring-stack.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* Configuration reference for the xref:../../observability/monitoring/config-map-reference-for-the-cluster-monitoring-operator.adoc#clustermonitoringconfiguration[`cluster-monitoring-config`] config map -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* Configuration reference for the xref:../../observability/monitoring/config-map-reference-for-the-cluster-monitoring-operator.adoc#userworkloadconfiguration[`user-workload-monitoring-config`] config map -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* See xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#preparing-to-configure-the-monitoring-stack[Preparing to configure the monitoring stack] for steps to create monitoring config maps -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Configurable monitoring components -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-configurable-monitoring-components.adoc[leveloffset=+1,tags=**;!CPM;UWM] - -// Moving monitoring components to different nodes -include::modules/monitoring-using-node-selectors-to-move-monitoring-components.adoc[leveloffset=+1] -[role="_additional-resources"] -.Additional resources -// The nodes topics may apply to OSD/ROSA when that content is ported from OCP. -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../nodes/nodes/nodes-nodes-working.adoc#nodes-nodes-working-updating_nodes-nodes-working[Understanding how to update labels on nodes] -* xref:../../nodes/scheduling/nodes-scheduler-node-selectors.adoc#nodes-scheduler-node-selectors[Placing pods on specific nodes using node selectors] -* xref:../../nodes/scheduling/nodes-scheduler-pod-affinity.adoc[Placing pods relative to other pods using affinity and anti-affinity rules] -* xref:../../nodes/scheduling/nodes-scheduler-pod-topology-spread-constraints.adoc[Controlling pod placement by using pod topology spread constraints] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#using-pod-topology-spread-constraints-for-monitoring_configuring-the-monitoring-stack[Using pod topology spread constraints for monitoring] -* link:https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector[Kubernetes documentation about node selectors] - -// The module should only include monitoring for user-defined projects -include::modules/monitoring-moving-monitoring-components-to-different-nodes.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -[role="_additional-resources"] -.Additional resources - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* See xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#preparing-to-configure-the-monitoring-stack[Preparing to configure the monitoring stack] for steps to create monitoring config maps -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] -// This xref might be relevant for ROSA/OSD if the Node content is reused: -* xref:../../nodes/nodes/nodes-nodes-working.adoc#nodes-nodes-working-updating_nodes-nodes-working[Understanding how to update labels on nodes] -// This xref might be relevant for ROSA/OSD if the Node content is reused: -* xref:../../nodes/scheduling/nodes-scheduler-node-selectors.adoc#nodes-scheduler-node-selectors[Placing pods on specific nodes using node selectors] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* See the link:https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector[Kubernetes documentation] for details on the `nodeSelector` constraint - -// Assigning tolerations to monitoring components -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-assigning-tolerations-to-monitoring-components.adoc[leveloffset=+1,tags=**;!CPM;UWM] - -[role="_additional-resources"] -.Additional resources -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* See xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#preparing-to-configure-the-monitoring-stack[Preparing to configure the monitoring stack] for steps to create monitoring config maps -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] -// This xref might be relevant for ROSA/OSD if the Node content is reused: -* See the xref:../../nodes/scheduling/nodes-scheduler-taints-tolerations.adoc#nodes-scheduler-taints-tolerations[{product-title} documentation] on taints and tolerations -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* See the link:https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/[Kubernetes documentation] on taints and tolerations - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -// Setting the body size limit for metrics scraping -include::modules/monitoring-setting-the-body-size-limit-for-metrics-scraping.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -* link:https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config[Prometheus scrape configuration documentation] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Configuring limits and resource requests for monitoring components - -[id="managing-cpu-and-memory-resources-for-monitoring-components"] -== Managing CPU and memory resources for monitoring components - -You can ensure that the containers that run monitoring components have enough CPU and memory resources by specifying values for resource limits and requests for those components. - -You can configure these limits and requests for core platform monitoring components in the `openshift-monitoring` namespace and for the components that monitor user-defined projects in the `openshift-user-workload-monitoring` namespace. - -include::modules/monitoring-about-specifying-limits-and-requests-for-monitoring-components.adoc[leveloffset=+2] - -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-specifying-limits-and-requests-for-monitoring-components.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -// Configuring persistent storage -include::modules/monitoring-configuring-persistent-storage.adoc[leveloffset=+1] - -// Configuring a persistent volume claim -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-configuring-a-persistent-volume-claim.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -[role="_additional-resources"] -.Additional resources -* link:https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims[PersistentVolumeClaims](Kubernetes documentation about how to specify `volumeClaimTemplate`) - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -// Resizing a persistent volume -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-resizing-a-persistent-volume.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -[role="_additional-resources"] -.Additional resources -* xref:../../scalability_and_performance/recommended-performance-scale-practices/recommended-infrastructure-practices.adoc#prometheus-database-storage-requirements_recommended-infrastructure-practices[Prometheus database storage requirements] -* xref:../../storage/expanding-persistent-volumes.adoc#expanding-pvc-filesystem_expanding-persistent-volumes[Expanding persistent volume claims (PVCs) with a file system] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// The retention time and size for Prometheus metrics data -// This section will be moved in the future PR. Therefore, some of the repetition in the introduction for the following procedure modules does not matter for the time being -include::modules/monitoring-retention-time-and-size-for-prometheus-metrics-data.adoc[leveloffset=+2] - -// Modifying the retention time and size for Prometheus metrics data -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-modifying-retention-time-and-size-for-prometheus-metrics-data.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -include::modules/monitoring-modifying-the-retention-time-for-thanos-ruler-metrics-data.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#creating-cluster-monitoring-configmap_configuring-the-monitoring-stack[Creating a cluster monitoring config map] -* xref:../../scalability_and_performance/recommended-performance-scale-practices/recommended-infrastructure-practices.adoc#prometheus-database-storage-requirements_cluster-monitoring-operator[Prometheus database storage requirements] -* xref:../../scalability_and_performance/optimization/optimizing-storage.adoc#optimizing-storage[Recommended configurable storage technology] -* xref:../../storage/understanding-persistent-storage.adoc#understanding-persistent-storage[Understanding persistent storage] -* xref:../../scalability_and_performance/optimization/optimizing-storage.adoc#optimizing-storage[Optimizing storage] -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -ifdef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../storage/understanding-persistent-storage.adoc#understanding-persistent-storage[Understanding persistent storage] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Configuring remote write storage for Prometheus - -// Configuring remote write storage -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-configuring-remote-write-storage.adoc[leveloffset=+1,tags=**;!CPM;UWM] - -include::modules/monitoring-supported-remote-write-authentication-settings.adoc[leveloffset=+2] - -// Example remote write authentication settings -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-example-remote-write-authentication-settings.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -// Example remote write queue configuration -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-example-remote-write-queue-configuration.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -[role="_additional-resources"] -.Additional resources -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../rest_api/monitoring_apis/prometheus-monitoring-coreos-com-v1.adoc#spec-remotewrite-2[Prometheus REST API reference for remote write] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* link:https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage[Setting up remote write compatible endpoints] (Prometheus documentation) -* link:https://prometheus.io/docs/practices/remote_write/#remote-write-tuning[Tuning remote write settings] (Prometheus documentation) -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -// This xref might be relevant for ROSA/OSD if this content is reused: -* xref:../../nodes/pods/nodes-pods-secrets.adoc#nodes-pods-secrets-about_nodes-pods-secrets[Understanding secrets] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Configuring labels for outgoing metrics -include::modules/monitoring-adding-cluster-id-labels-to-metrics.adoc[leveloffset=+1] - -// Creating cluster ID labels for metrics -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-creating-cluster-id-labels-for-metrics.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -[role="_additional-resources"] -.Additional resources - -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#configuring-remote-write-storage_configuring-the-monitoring-stack[Configuring remote write storage] -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../support/gathering-cluster-data.adoc#support-get-cluster-id_gathering-cluster-data[Obtaining your cluster ID] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -// Configuring audit logs for Metrics Server -include::modules/monitoring-configuring-audit-logs-for-metrics-server.adoc[leveloffset=+1] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Configuring metrics collection profiles -// TP features are excluded from OSD and ROSA. When this feature is GA, it can be included in the OSD/ROSA docs. -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -include::modules/monitoring-configuring-metrics-collection-profiles.adoc[leveloffset=+1] -include::modules/monitoring-choosing-a-metrics-collection-profile.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources - -* See xref:../../observability/monitoring/managing-metrics.adoc#viewing-a-list-of-available-metrics_managing-metrics[Viewing a list of available metrics] for steps to view a list of metrics being collected for a cluster. -* See xref:../../nodes/clusters/nodes-cluster-enabling-features.adoc[Enabling features using feature gates] for steps to enable Technology Preview features. -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Controlling the impact of unbound metrics attributes in user-defined projects -include::modules/monitoring-controlling-the-impact-of-unbound-attributes-in-user-defined-projects.adoc[leveloffset=+1] -include::modules/monitoring-setting-scrape-and-evaluation-intervals-limits-for-user-defined-projects.adoc[leveloffset=+2] -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -include::modules/monitoring-creating-scrape-sample-alerts.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources - -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#creating-user-defined-workload-monitoring-configmap_configuring-the-monitoring-stack[Creating a user-defined workload monitoring config map] -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] -* See xref:../../observability/monitoring/troubleshooting-monitoring-issues.adoc#determining-why-prometheus-is-consuming-disk-space_troubleshooting-monitoring-issues[Determining why Prometheus is consuming a lot of disk space] for steps to query which metrics have the highest number of scrape samples. -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -//Configuring external Alertmanager instances -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-configuring-external-alertmanagers.adoc[leveloffset=+1,tags=**;!CPM;UWM] - -//Configuring secrets for Alertmanager -include::modules/monitoring-configuring-secrets-for-alertmanager.adoc[leveloffset=+1] - -// Adding a secret to the Alertmanager configuration -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-adding-a-secret-to-the-alertmanager-configuration.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -//Attaching additional labels to your time series and alerts -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-attaching-additional-labels-to-your-time-series-and-alerts.adoc[leveloffset=+1,tags=**;!CPM;UWM] - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -[role="_additional-resources"] -.Additional resources - -* See xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#preparing-to-configure-the-monitoring-stack[Preparing to configure the monitoring stack] for steps to create monitoring config maps. -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Using topology spread constraints for monitoring components -include::modules/monitoring-using-pod-topology-spread-constraints-for-monitoring.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -// This xref might be relevant to ROSA/OSD if the Node content is reused: -* xref:../../nodes/scheduling/nodes-scheduler-pod-topology-spread-constraints.adoc#nodes-scheduler-pod-topology-spread-constraints-about[Controlling pod placement by using pod topology spread constraints] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* link:https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/[Kubernetes Pod Topology Spread Constraints documentation] - -// Configuring pod topology spread constraints -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-configuring-pod-topology-spread-constraints.adoc[leveloffset=+2,tags=**;!CPM;UWM] - -// Setting log levels for monitoring components -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-setting-log-levels-for-monitoring-components.adoc[leveloffset=+1,tags=**;!CPM;UWM] - -// Enabling the query log file for Prometheus -// The following module should only include monitoring for user-defined projects (UWM tags) -include::modules/monitoring-setting-query-log-file-for-prometheus.adoc[leveloffset=+1,tags=**;!CPM;UWM] - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -[role="_additional-resources"] -.Additional resources -* See xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#preparing-to-configure-the-monitoring-stack[Preparing to configure the monitoring stack] for steps to create monitoring config maps -* See xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] for steps to enable user-defined monitoring. -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Enabling query logging for Thanos Querier -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -include::modules/monitoring-enabling-query-logging-for-thanos-querier.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#preparing-to-configure-the-monitoring-stack[Preparing to configure the monitoring stack] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Disabling the local Alertmanager -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -include::modules/monitoring-disabling-the-local-alertmanager.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources -* link:https://prometheus.io/docs/alerting/latest/alertmanager/[Prometheus Alertmanager documentation] -* xref:../../observability/monitoring/managing-alerts.adoc#managing-alerts[Managing alerts] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] diff --git a/observability/monitoring/enabling-alert-routing-for-user-defined-projects.adoc b/observability/monitoring/enabling-alert-routing-for-user-defined-projects.adoc deleted file mode 100644 index c593260ba41b..000000000000 --- a/observability/monitoring/enabling-alert-routing-for-user-defined-projects.adoc +++ /dev/null @@ -1,42 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="enabling-alert-routing-for-user-defined-projects"] -= Enabling alert routing for user-defined projects -include::_attributes/common-attributes.adoc[] -:context: enabling-alert-routing-for-user-defined-projects - -toc::[] - -In {product-title}, an administrator can enable alert routing for user-defined projects. -This process consists of the following steps: - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* Enable alert routing for user-defined projects to use the default platform Alertmanager instance or, optionally, a separate Alertmanager instance only for user-defined projects. -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -ifdef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* Enable alert routing for user-defined projects to use a separate Alertmanager instance. -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* Grant users permission to configure alert routing for user-defined projects. - -After you complete these steps, developers and other users can configure custom alerts and alert routing for their user-defined projects. - -// Overview of setting up alert routing for user-defined projects -include::modules/monitoring-understanding-alert-routing-for-user-defined-projects.adoc[leveloffset=+1] - -// Enabling user-defined alerts using the default Alertmanager instance -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -include::modules/monitoring-enabling-the-platform-alertmanager-instance-for-user-defined-alert-routing.adoc[leveloffset=+1] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Enabling a dedicated Alertmanager instance for use in user-defined projects -include::modules/monitoring-enabling-a-separate-alertmanager-instance-for-user-defined-alert-routing.adoc[leveloffset=+1] - -// Granting users permission to configure alert routing for user-defined projects -include::modules/monitoring-granting-users-permission-to-configure-alert-routing-for-user-defined-projects.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user defined projects] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../observability/monitoring/managing-alerts.adoc#configuring-alert-routing-for-user-defined-projects_managing-alerts[Configuring alert routing for user-defined projects] diff --git a/observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc b/observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc deleted file mode 100644 index 0c3e7a8b31de..000000000000 --- a/observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc +++ /dev/null @@ -1,44 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="enabling-monitoring-for-user-defined-projects"] -= Enabling the user workload monitoring -include::_attributes/common-attributes.adoc[] -:context: enabling-monitoring-for-user-defined-projects - -toc::[] - -// Preparing the following short assembly introduction into a module, because this assembly will be deleted and divided into just modules -// Introduction enabling monitoring for user-defined projects -//include::modules/monitoring-intro-enabling-monitoring-for-user-defined-projects.adoc[leveloffset=+1] - -In {product-title}, you can enable monitoring for user-defined projects in addition to the default platform monitoring. You can monitor your own projects in {product-title} without the need for an additional monitoring solution. Using this feature centralizes monitoring for core platform components and user-defined projects. - -include::snippets/monitoring-custom-prometheus-note.adoc[] - -// Enabling monitoring for user-defined projects -include::modules/monitoring-enabling-monitoring-for-user-defined-projects.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#creating-user-defined-workload-monitoring-configmap_configuring-the-monitoring-stack[Creating a user-defined workload monitoring config map] -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#configuring-the-monitoring-stack[Configuring the monitoring stack] -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#granting-users-permission-to-configure-monitoring-for-user-defined-projects_enabling-monitoring-for-user-defined-projects[Granting users permission to configure monitoring for user-defined projects] - -// Granting users permission to monitor user-defined projects -include::modules/monitoring-granting-users-permission-to-monitor-user-defined-projects.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources -* xref:../../observability/monitoring/accessing-third-party-monitoring-apis.adoc#cmo-services-resources_accessing-third-party-monitoring-apis[CMO services resources] - -include::modules/monitoring-granting-user-permissions-using-the-web-console.adoc[leveloffset=+2] -include::modules/monitoring-granting-user-permissions-using-the-cli.adoc[leveloffset=+2,tags=**;CPM;!UWM] - -// Granting users permission to configure monitoring for user-defined projects -include::modules/monitoring-granting-users-permission-to-configure-monitoring-for-user-defined-projects.adoc[leveloffset=+1] - -// Excluding a user-defined project from monitoring -include::modules/monitoring-excluding-a-user-defined-project-from-monitoring.adoc[leveloffset=+1] - -// Disabling monitoring for user-defined projects -include::modules/monitoring-disabling-monitoring-for-user-defined-projects.adoc[leveloffset=+1] diff --git a/observability/monitoring/managing-alerts.adoc b/observability/monitoring/managing-alerts.adoc deleted file mode 100644 index 36911335d9f0..000000000000 --- a/observability/monitoring/managing-alerts.adoc +++ /dev/null @@ -1,126 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="managing-alerts"] -= Managing alerts -include::_attributes/common-attributes.adoc[] -:context: managing-alerts - -toc::[] - -In {product-title} {product-version}, the Alerting UI enables you to manage alerts, silences, and alerting rules. - -* *Alerting rules*. Alerting rules contain a set of conditions that outline a particular state within a cluster. Alerts are triggered when those conditions are true. An alerting rule can be assigned a severity that defines how the alerts are routed. -* *Alerts*. An alert is fired when the conditions defined in an alerting rule are true. Alerts provide a notification that a set of circumstances are apparent within an {product-title} cluster. -* *Silences*. A silence can be applied to an alert to prevent notifications from being sent when the conditions for an alert are true. You can mute an alert after the initial notification, while you work on resolving the issue. - -[NOTE] -==== -The alerts, silences, and alerting rules that are available in the Alerting UI relate to the projects that you have access to. For example, if you are logged in as a user with the `cluster-admin` role, you can access all alerts, silences, and alerting rules. -==== - -// Accessing the Alerting UI -include::modules/monitoring-accessing-the-alerting-ui.adoc[leveloffset=+1] - -// Searching and filtering alerts, silences, and alerting rules -include::modules/monitoring-searching-alerts-silences-and-alerting-rules.adoc[leveloffset=+1] - -// Getting information about alerts, silences and alerting rules -include::modules/monitoring-getting-information-about-alerts-silences-and-alerting-rules.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources -* See the link:https://github.com/openshift/runbooks/tree/master/alerts/cluster-monitoring-operator[{cmo-full} runbooks] to help diagnose and resolve issues that trigger specific {product-title} monitoring alerts. - -// Managing silences -include::modules/monitoring-managing-silences.adoc[leveloffset=+1] -[role="_additional-resources"] -.Additional resources -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#configuring-persistent-storage_configuring-the-monitoring-stack[Configuring persistent storage] - -include::modules/monitoring-silencing-alerts.adoc[leveloffset=+2] - -include::modules/monitoring-editing-silences.adoc[leveloffset=+2] - -include::modules/monitoring-expiring-silences.adoc[leveloffset=+2] - -// Managing core platform alerting rules -ifndef::openshift-dedicated,openshift-rosa[] -// Tech Preview features are not documented in the ROSA/OSD docs. However, even when GA, ROSA/OSD generally doesn't include information about core platform monitoring. -include::modules/monitoring-managing-core-platform-alerting-rules.adoc[leveloffset=+1] -include::modules/monitoring-tips-for-optimizing-alerting-rules-for-core-platform-monitoring.adoc[leveloffset=+2] -include::modules/monitoring-creating-new-alerting-rules.adoc[leveloffset=+2] -include::modules/monitoring-modifying-core-platform-alerting-rules.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources -* See xref:../../observability/monitoring/monitoring-overview.adoc#monitoring-overview[Monitoring overview] for details about {product-title} {product-version} monitoring architecture. -* See the link:https://prometheus.io/docs/alerting/alertmanager/[Alertmanager documentation] for information about alerting rules. -* See the link:https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config[Prometheus relabeling documentation] for information about how relabeling works. -* See the link:https://prometheus.io/docs/practices/alerting/[Prometheus alerting documentation] for further guidelines on optimizing alerts. -endif::openshift-dedicated,openshift-rosa[] - -// Creating alerting rules for user workload monitoring -include::modules/monitoring-about-creating-alerting-rules-for-user-defined-projects.adoc[leveloffset=+1] -include::modules/monitoring-optimizing-alerting-for-user-defined-projects.adoc[leveloffset=+2] -include::modules/monitoring-creating-alerting-rules-for-user-defined-projects.adoc[leveloffset=+2] -include::modules/monitoring-creating-cross-project-alerting-rules-for-user-defined-projects.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources -* link:https://prometheus.io/docs/practices/alerting/[Prometheus alerting documentation] -* xref:../../observability/monitoring/monitoring-overview.adoc#monitoring-overview[Monitoring overview] - -// Managing alerting rules for user workload monitoring -include::modules/monitoring-managing-alerting-rules-for-user-defined-projects.adoc[leveloffset=+1] -include::modules/monitoring-accessing-alerting-rules-for-your-project.adoc[leveloffset=+2] -include::modules/monitoring-listing-alerting-rules-for-all-projects-in-a-single-view.adoc[leveloffset=+2] -include::modules/monitoring-removing-alerting-rules-for-user-defined-projects.adoc[leveloffset=+2] -include::modules/monitoring-disabling-cross-project-alerting-rules-for-user-defined-projects.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources - -* link:https://prometheus.io/docs/alerting/alertmanager/[Alertmanager documentation] - -// Sending notifications to external systems -include::modules/monitoring-sending-notifications-to-external-systems.adoc[leveloffset=+1] -// Configuring alert receivers -ifndef::openshift-dedicated,openshift-rosa[] -include::modules/monitoring-configuring-alert-routing-console.adoc[leveloffset=+2] -endif::openshift-dedicated,openshift-rosa[] -// Configuring different alert receivers for default platform alerts and user-defined alerts -include::modules/monitoring-configuring-different-alert-receivers-for-default-platform-alerts-and-user-defined-alerts.adoc[leveloffset=+2] -// Creating alert routing for user-defined projects -include::modules/monitoring-configuring-alert-routing-for-user-defined-projects.adoc[leveloffset=+2] - -[id="configuring-alertmanager-to-send-notifications"] -== Configuring Alertmanager to send notifications - -You can configure Alertmanager to send notifications by editing the -ifndef::openshift-dedicated,openshift-rosa[] -`alertmanager-main` secret for default platform alerts or -endif::openshift-dedicated,openshift-rosa[] -`alertmanager-user-workload` secret for user-defined alerts. - -[NOTE] -==== -All features of a supported version of upstream Alertmanager are also supported in an OpenShift Alertmanager configuration. To check all the configuration options of a supported version of upstream Alertmanager, see link:https://prometheus.io/docs/alerting/0.26/configuration/[Alertmanager configuration]. -==== - -// Configuring notifications for default platform alerts -ifndef::openshift-dedicated,openshift-rosa[] -include::modules/monitoring-configuring-alert-routing-default-platform-alerts.adoc[leveloffset=+2] -endif::openshift-dedicated,openshift-rosa[] - -// Configuring notifications for user-defined alerts -include::modules/monitoring-configuring-alert-routing-user-defined-alerts-secret.adoc[leveloffset=+2] - -[role="_additional-resources"] -[id="additional-resources_{context}"] -== Additional resources - -* link:https://www.pagerduty.com/[PagerDuty official site] -* link:https://www.pagerduty.com/docs/guides/prometheus-integration-guide/[PagerDuty Prometheus Integration Guide] -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#support-version-matrix-for-monitoring-components_configuring-the-monitoring-stack[Support version matrix for monitoring components] -ifndef::openshift-rosa,openshift-dedicated[] -* xref:../../observability/monitoring/enabling-alert-routing-for-user-defined-projects.adoc#enabling-alert-routing-for-user-defined-projects[Enabling alert routing for user-defined projects] -endif::[] diff --git a/observability/monitoring/managing-metrics.adoc b/observability/monitoring/managing-metrics.adoc deleted file mode 100644 index 903da6f5ffe3..000000000000 --- a/observability/monitoring/managing-metrics.adoc +++ /dev/null @@ -1,60 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="managing-metrics"] -= Managing metrics -include::_attributes/common-attributes.adoc[] -:context: managing-metrics - -toc::[] - -[role="_abstract"] -You can collect metrics to monitor how cluster components and your own workloads are performing. - -// Understanding metrics -include::modules/monitoring-understanding-metrics.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -* link:https://prometheus.io/docs/instrumenting/clientlibs/[Prometheus client library documentation] - -// Setting up metrics collection for user-defined projects -include::modules/monitoring-setting-up-metrics-collection-for-user-defined-projects.adoc[leveloffset=+1] -include::modules/monitoring-deploying-a-sample-service.adoc[leveloffset=+2] -include::modules/monitoring-specifying-how-a-service-is-monitored.adoc[leveloffset=+2] -include::modules/monitoring-example-service-endpoint-authentication-settings.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[Enabling monitoring for user-defined projects] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* link:https://access.redhat.com/articles/6675491[How to scrape metrics using TLS in a ServiceMonitor configuration in a user-defined project] -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -* xref:../../rest_api/monitoring_apis/podmonitor-monitoring-coreos-com-v1.adoc[PodMonitor API] -* xref:../../rest_api/monitoring_apis/servicemonitor-monitoring-coreos-com-v1.adoc[ServiceMonitor API] - -// Viewing a list of available metrics for a cluster -include::modules/monitoring-viewing-a-list-of-available-metrics.adoc[leveloffset=+1] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// include::modules/monitoring-contents-of-the-metrics-ui.adoc[leveloffset=+2] - -// Querying metrics for all projects with the {product-title} web console [adm] -include::modules/monitoring-querying-metrics-for-all-projects-with-mon-dashboard.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -* link:https://prometheus.io/docs/prometheus/latest/querying/basics/[Prometheus query documentation] - -// Querying metrics for user-defined projects with the {product-title} web console [dev] -include::modules/monitoring-querying-metrics-for-user-defined-projects-with-mon-dashboard.adoc[leveloffset=+1] - -[role="_additional-resources"] -.Additional resources - -* link:https://prometheus.io/docs/prometheus/latest/querying/basics/[Prometheus query documentation] - -// Getting detailed information about metrics targets -include::modules/monitoring-getting-detailed-information-about-a-target.adoc[leveloffset=+1] diff --git a/observability/monitoring/monitoring-overview.adoc b/observability/monitoring/monitoring-overview.adoc deleted file mode 100644 index 7e670d02ef86..000000000000 --- a/observability/monitoring/monitoring-overview.adoc +++ /dev/null @@ -1,72 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="monitoring-overview"] -= Monitoring overview -include::_attributes/common-attributes.adoc[] -:context: monitoring-overview - -toc::[] - -[id="about-openshift-monitoring"] -== About {product-title} monitoring - -[role="_abstract"] -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -{product-title} includes a preconfigured, preinstalled, and self-updating monitoring stack that provides monitoring for core platform components. You also have the option to xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#enabling-monitoring-for-user-defined-projects[enable monitoring for user-defined projects]. - -A cluster administrator can xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#configuring-the-monitoring-stack[configure the monitoring stack] with the supported configurations. {product-title} delivers monitoring best practices out of the box. - -A set of alerts are included by default that immediately notify administrators about issues with a cluster. Default dashboards in the {product-title} web console include visual representations of cluster metrics to help you to quickly understand the state of your cluster. With the {product-title} web console, you can xref:../../observability/monitoring/managing-metrics.adoc#managing-metrics[view and manage metrics], xref:../../observability/monitoring/managing-alerts.adoc#managing-alerts[alerts], and xref:../../observability/monitoring/reviewing-monitoring-dashboards.adoc#reviewing-monitoring-dashboards[review monitoring dashboards]. - -In the *Observe* section of {product-title} web console, you can access and manage monitoring features such as xref:../../observability/monitoring/managing-metrics.adoc#managing-metrics[metrics], xref:../../observability/monitoring/managing-alerts.adoc#managing-alerts[alerts], xref:../../observability/monitoring/reviewing-monitoring-dashboards.adoc#reviewing-monitoring-dashboards[monitoring dashboards], and xref:../../observability/monitoring/managing-metrics.adoc#getting-detailed-information-about-a-target_managing-metrics[metrics targets]. - -After installing {product-title}, cluster administrators can optionally enable monitoring for user-defined projects. By using this feature, cluster administrators, developers, and other users can specify how services and pods are monitored in their own projects. -As a cluster administrator, you can find answers to common problems such as user metrics unavailability and high consumption of disk space by Prometheus in xref:../../observability/monitoring/troubleshooting-monitoring-issues.adoc#troubleshooting-monitoring-issues[Troubleshooting monitoring issues]. -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -ifdef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -In {product-title}, you can monitor your own projects in isolation from Red Hat Site Reliability Engineering (SRE) platform metrics. You can monitor your own projects without the need for an additional monitoring solution. - -The {product-title} -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -ifdef::openshift-rosa,openshift-rosa-hcp[] -(ROSA) -endif::openshift-rosa,openshift-rosa-hcp[] -ifdef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -monitoring stack is based on the link:https://prometheus.io/[Prometheus] open source project and its wider ecosystem. -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] - -// Understanding the monitoring stack -include::modules/monitoring-understanding-the-monitoring-stack.adoc[leveloffset=+1] -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -include::modules/monitoring-default-monitoring-components.adoc[leveloffset=+2] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -include::modules/monitoring-default-monitoring-targets.adoc[leveloffset=+2] - -[role="_additional-resources"] -.Additional resources -ifdef::openshift-rosa-hcp[] -* link:https://docs.redhat.com/en/documentation/red_hat_openshift_service_on_aws/4/html/monitoring/managing-metrics#getting-detailed-information-about-a-target_managing-metrics[Getting detailed information about a metrics target] -endif::openshift-rosa-hcp[] -ifndef::openshift-rosa-hcp[] -* xref:../../observability/monitoring/managing-metrics.adoc#getting-detailed-information-about-a-target_managing-metrics[Getting detailed information about a metrics target] -endif::openshift-rosa-hcp[] - -include::modules/monitoring-components-for-monitoring-user-defined-projects.adoc[leveloffset=+2] -include::modules/monitoring-targets-for-user-defined-projects.adoc[leveloffset=+2] -include::modules/monitoring-monitoring-stack-in-ha-clusters.adoc[leveloffset=+2] -[role="_additional-resources"] -.Additional resources -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#configuring-persistent-storage_configuring-the-monitoring-stack[Configuring persistent storage] -* xref:../../observability/monitoring/configuring-the-monitoring-stack.adoc#configuring-the-monitoring-stack_configuring-the-monitoring-stack[Configuring the monitoring stack] - -include::modules/monitoring-common-terms.adoc[leveloffset=+1] - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -[role="_additional-resources"] -[id="additional-resources_{context}"] -== Additional resources - -* xref:../../support/remote_health_monitoring/about-remote-health-monitoring.adoc#about-remote-health-monitoring[About remote health monitoring] -* xref:../../observability/monitoring/enabling-monitoring-for-user-defined-projects.adoc#granting-users-permission-to-monitor-user-defined-projects_enabling-monitoring-for-user-defined-projects[Granting users permission to monitor user-defined projects] -* xref:../../security/tls-security-profiles.adoc#tls-security-profiles[Configuring TLS security profiles] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] diff --git a/observability/monitoring/reviewing-monitoring-dashboards.adoc b/observability/monitoring/reviewing-monitoring-dashboards.adoc deleted file mode 100644 index a9ac7b223808..000000000000 --- a/observability/monitoring/reviewing-monitoring-dashboards.adoc +++ /dev/null @@ -1,26 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY -[id="reviewing-monitoring-dashboards"] -= Reviewing monitoring dashboards -include::_attributes/common-attributes.adoc[] -:context: reviewing-monitoring-dashboards - -toc::[] - -{product-title} provides a set of monitoring dashboards that help you understand the state of cluster components and user-defined workloads. - -// About monitoring dashboards -include::modules/monitoring-about-monitoring-dashboards.adoc[leveloffset=+1] - -// Reviewing monitoring dashboards as a cluster administrator -include::modules/monitoring-reviewing-monitoring-dashboards-admin.adoc[leveloffset=+1] - -// Reviewing monitoring dashboards as a developer -include::modules/monitoring-reviewing-monitoring-dashboards-developer.adoc[leveloffset=+1] - -ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[] -// This additional resource might be valid for ROSA/OSD when the Building applications content is ported. -[role="_additional-resources"] -[id="additional-resources_{context}"] -== Additional resources -* xref:../../applications/odc-monitoring-project-and-application-metrics-using-developer-perspective.adoc#monitoring-project-and-application-metrics-using-developer-perspective[Monitoring project and application metrics using the Developer perspective] -endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]