Skip to content

Commit df1e5f5

Browse files
authored
fix: update all of the monitoring docs (#1316)
All of the monitoring docs were out of date, this updates them. Signed-off-by: Kevin Carter <[email protected]>
1 parent 1681c39 commit df1e5f5

14 files changed

+178
-135
lines changed

docs/monitoring-getting-started.md

Lines changed: 67 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,91 @@
1-
# Getting started with genestack monitoring
1+
# Getting Started with Genestack Monitoring
22

3-
In order to begin monitoring your genestack deployment we first need to deploy the core prometheus components
3+
This guide walks you through setting up a complete monitoring stack for your Genestack deployment. The monitoring system consists of three main layers: metrics collection, visualization, and alerting.
44

5-
## Install the Prometheus stack
5+
## Overview
66

7-
Install [Prometheus](prometheus.md) which is part of the kube-prometheus-stack and includes:
7+
The Genestack monitoring stack includes:
88

9-
* Prometheus and the Prometheus operator to manage the Prometheus cluster deployment
10-
* AlertManager which allows for alerting configurations to be set in order to notify various services like email or PagerDuty for specified alerting thresholds
9+
- **Prometheus** - Time-series database and metrics collection engine
10+
- **Grafana** - Visualization and dashboards
11+
- **AlertManager** - Alert routing and notification management
12+
- **Metric Exporters** - Service-specific metrics collection for OpenStack components
1113

12-
The [Prometheus](prometheus.md) kube-prometheus-stack will also deploy a couple core metric exporters as part of the stack, those include:
14+
## Prerequisites
1315

14-
* Node Exporter(Hardware metrics)
15-
* Kube State Exporter(Kubernetes cluster metrics)
16+
Before proceeding, ensure you have:
1617

17-
## Install Grafana
18+
- A running Genestack deployment
19+
- Helm 3.x installed
20+
- Access to your Kubernetes cluster with appropriate permissions
1821

19-
We can then deploy our visualization dashboard Grafana
22+
## Step 1: Install the Prometheus Stack
2023

21-
* [Install Grafana](grafana.md)
24+
The kube-prometheus-stack is the foundation of your monitoring infrastructure. It deploys and manages the core monitoring components.
2225

23-
Grafana is used to visualize various metrics provided by the monitoring system as well as alerts and logs, take a look at the [Grafana](https://grafana.com/) documentation for more information
26+
Install Prometheus, which includes:
2427

25-
## Install the metric exporters and pushgateway
28+
- **Prometheus Operator** - Manages the Prometheus cluster deployment lifecycle
29+
- **Prometheus Server** - Collects and stores metrics from configured targets
30+
- **AlertManager** - Handles alerts sent by Prometheus and routes them to notification channels (email, PagerDuty, Slack, etc.)
31+
- **Node Exporter** - Collects hardware and OS-level metrics from cluster nodes
32+
- **Kube State Metrics** - Exposes Kubernetes cluster state metrics
2633

27-
Now let's deploy our exporters and pushgateway!
34+
See the [Prometheus installation guide](prometheus.md) for detailed setup instructions.
2835

29-
* [Mysql Exporter](prometheus-mysql-exporter.md)
30-
* [RabbitMQ Exporter](prometheus-rabbitmq-exporter.md)
31-
* [Postgres Exporter](prometheus-postgres-exporter.md)
32-
* [Memcached Exporter](prometheus-memcached-exporter.md)
33-
* [Openstack Exporter](prometheus-openstack-metrics-exporter.md)
34-
* [Pushgateway](prometheus-pushgateway.md)
36+
## Step 2: Install Grafana
3537

36-
## Next steps
38+
Grafana provides visualization dashboards for your metrics, alerts, and logs.
3739

38-
### Configure alert manager
40+
Install Grafana to:
3941

40-
Configure the alert manager to send the specified alerts to slack as an example, see: [Slack Alerts](alertmanager-slack.md)
42+
- Create custom dashboards for monitoring OpenStack services
43+
- Visualize metrics collected by Prometheus
44+
- Set up alert notifications and integrations
45+
- Analyze logs and trace data
4146

42-
... and more ...
47+
For more information about Grafana's capabilities, visit the [Grafana](grafana.md).
4348

44-
### Update alerting rules
49+
## Step 3: Deploy Service-Specific Metric Exporters
4550

46-
Within the genestack repo we can update our custom alerting rules via the alerting_rules.yaml to fit our needs
51+
With the core monitoring stack in place, deploy exporters to collect metrics from your OpenStack services and infrastructure components. All exporters are available for easy deployment.
4752

48-
View alerting_rules.yaml in:
53+
## Step 4: Configure AlertManager
4954

50-
``` shell
55+
Configure AlertManager to send notifications when alerts are triggered. Available integrations include:
56+
57+
- [Slack Alerts](alertmanager-slack.md) - Send alerts to Slack channels
58+
- Email notifications
59+
- PagerDuty integration
60+
- Webhook receivers
61+
62+
## Step 5: Customize Alerting Rules
63+
64+
### Custom Alerting Rules
65+
66+
Genestack includes default alerting rules that can be customized for your environment. To view or modify the custom rules:
67+
68+
```shell
5169
less /etc/genestack/helm-configs/prometheus/alerting_rules.yaml
5270
```
5371

54-
However, many opreators comes with ServiceMonitor and PodMonitor services. These services expose, scrape endpoints
55-
out of the box. These operators will also provide alerting rules curated for the specific service. See specific
56-
service install for any monitoring rules. Example: [RabbitMQ Operator Monitoring](infrastructure-rabbitmq.md#rabbitmq-operator-monitoring)
72+
Edit this file to add, modify, or remove alerting rules based on your operational requirements.
73+
74+
### Operator-Provided Alerting Rules
75+
76+
Many Genestack operators come with built-in ServiceMonitor and PodMonitor resources that automatically:
77+
78+
- Expose scrape endpoints for metrics collection
79+
- Provide pre-configured alerting rules tailored to the specific service
80+
81+
These operator-managed rules are curated for best practices and don't require manual configuration. For service-specific monitoring details, refer to the individual service documentation. For example: [RabbitMQ Operator Monitoring](infrastructure-rabbitmq.md#rabbitmq-operator-monitoring).
82+
83+
## Next Steps
84+
85+
Once your monitoring stack is deployed:
86+
87+
1. **Access Grafana** - Log in to Grafana and explore the pre-built dashboards
88+
2. **Verify Metrics Collection** - Check that Prometheus is successfully scraping all targets
89+
3. **Test Alerting** - Trigger a test alert to verify AlertManager configuration
90+
4. **Create Custom Dashboards** - Build dashboards specific to your operational needs
91+
5. **Tune Alert Thresholds** - Adjust alerting rules based on your environment's baseline behavior

docs/prometheus-blackbox-exporter.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
Using the blackbox exporter we can gather metrics around uptime, latency, cert expiry and more for our public endpoints.
44
The blackbox exporter ideally would be ran outside the cluster but can still provide useful information when deployed within it when combined with alerting and visualizations.
55

6+
## Installation
67

7-
#### Install Blackbox Exporter Helm Chart
8+
??? example "`/opt/genestack/bin/install-prometheus-blackbox-exporter.sh`"
89

10+
``` shell
11+
--8<-- "bin/install-prometheus-blackbox-exporter.sh"
12+
```
913

10-
``` shell
11-
bin/install-prometheus-blackbox-exporter.sh
12-
```
13-
14-
!!! success
15-
If the installation is successful, you should see the related blackbox exporter pods in the prometheus namespace.
14+
If the installation is successful, you should see the related Blackbox exporter pods in the prometheus namespace.

docs/prometheus-custom-node-metrics.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,25 @@ For more information visit: [Node Exporter Textfile Collectors](https://github.c
66

77
You can also view example scripts here: [Textfile Collector Scripts](https://github.com/prometheus-community/node-exporter-textfile-collector-scripts)
88

9-
10-
#### Example custom exporter playbook
9+
## Example custom exporter playbook
1110

1211
``` shell
1312
ansible-playbook custom_exporters.yml
1413
```
1514

16-
#### Example custom exporter playbook with overrides
15+
## Example custom exporter playbook with overrides
1716

18-
Confirm `inventory.yaml` matches what is in /etc/genestack/inventory. If it does not match update the command to match the file names.
17+
Confirm `inventory.yaml` matches what is in `/etc/genestack/inventory`. If it does not match update the command to match the file names.
1918

2019
``` shell
2120
# Example overriding things on the CLI
2221
source /opt/genestack/scripts/genestack.rc
23-
ansible-playbook custom_exporters.yml --private-key ${HOME}/.ssh/openstack-keypair.key
2422
```
2523

24+
!!! example "Run the playbook"
25+
26+
``` shell
27+
ansible-playbook custom_exporters.yml --private-key ${HOME}/.ssh/openstack-keypair.key
28+
```
29+
2630
Once the scripts run the node exporter will collect your metrics and supply them to prometheus for you to view.

docs/prometheus-envoy-gateway.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Envoy Gateway exposes metrics that can be used to monitor the behavior and health of the Envoy Gateway.
44

5-
Following the deployment of the [Envoy Gateway](infrastructure-envoy-gateway-api.md) the metrics will be served and the service monitor will be created.
5+
Following the deployment of the [Envoy Gateway](infrastructure-envoy-gateway-api.md) the metrics will be served and the service monitor will be created.
66

77
If you need to deploy the service monitor independently you may apply the file directly with the following directions.
88

@@ -11,4 +11,3 @@ If you need to deploy the service monitor independently you may apply the file d
1111
``` shell
1212
kubectl apply -f /etc/genestack/kustomize/envoyproxy-gateway/base/envoy-service-monitor.yaml
1313
```
14-
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
# Kubernetes Event Exporter
22

3-
Kubernetes Event Exporter is used to expose kubernetes events which provides useful information regarding the operation of
4-
the kubernetes system.
3+
Kubernetes Event Exporter is used to expose kubernetes events which provides useful information regarding the operation of
4+
the kubernetes system.
55

66
!!! note
77

88
To deploy metric exporters you will first need to deploy the Prometheus Operator, see: ([Deploy Prometheus](prometheus.md)).
99

10-
## Update the Kubernetes Event Exporter recievers
10+
## Installation
1111

12-
Edit the Helm overrides file for the event exporter at `/opt/genestack/base-helm-configs/prometheus-kube-event-exporter/values.yaml`
12+
Edit the Helm overrides file for the event exporter at `/etc/genestack/helm-configs/kubernetes-event-exporter/values.yaml`
1313
to add any event notification receivers you may wish to use. View the examples at [Kubernetes Event Exporter](https://github.com/resmoio/kubernetes-event-exporter).
1414

15-
Once the changes have been made, apply them by running the `/opt/genestack/bin/install-event-exporter.sh` script:
15+
Once the changes have been made, apply them by running the `/opt/genestack/bin/install-kubernetes-event-exporter.sh` script:
1616

17-
!!! example "`/opt/genestack/bin/install-event-exporter.sh`"
17+
??? example "`/opt/genestack/bin/install-kubernetes-event-exporter.sh`"
1818

1919
``` shell
20-
--8<-- "bin/install-event-exporter.sh"
20+
--8<-- "bin/install-kubernetes-event-exporter.sh"
2121
```

docs/prometheus-kube-ovn.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
Kube-OVN exposes a lot of important metrics about the controller, pinger and cni plugin. We simply
44
create a service monitor to pull these metrics into Prometheus.
55

6-
76
## Installation
87

98
``` shell

docs/prometheus-memcached-exporter.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ metrics:
1919
enabled: true
2020
```
2121
22-
Once the changes have been made, apply the changes to the memcached deployment with the `/opt/genestack/bin/install-memcached.sh` script:
22+
Once the changes have been made, apply the changes to the memcached deployment with the `/opt/genestack/bin/install-memcached.sh` script
2323

24-
!!! example "`/opt/genestack/bin/install-memcached.sh`"
24+
??? example "`/opt/genestack/bin/install-memcached.sh`"
2525

2626
``` shell
2727
--8<-- "bin/install-memcached.sh"

docs/prometheus-monitoring-overview.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Prometheus Monitoring Overview
22

3-
Genestack utilizes Prometheus for monitoring, alerting and metrics collection. To read more about Prometheus
4-
please take a look at the [upstream docs](https://prometheus.io).
3+
Genestack utilizes Prometheus for monitoring, alerting and metrics collection. To read more about Prometheus [Prometheus](prometheus.md)
54

65
Components used to monitor and provide alerting and visualization mechanisms for genestack include:
76

docs/prometheus-mysql-exporter.md

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,26 @@
33
Mysql Exporter is used to expose metrics from a running mysql/mariadb server. The type of metrics exposed is controlled
44
by the exporter and expressed in values.yaml file.
55

6-
!!! note
7-
8-
To deploy metric exporters you will first need to deploy the Prometheus Operator, see: ([Deploy Prometheus](prometheus.md)).
6+
To deploy metric exporters you will first need to deploy the Prometheus Operator, see: ([Deploy Prometheus](prometheus.md)).
97

108
## Installation
119

12-
First create secret containing password for monitoring user
10+
!!! note "Information about the secretes used"
1311

14-
``` shell
15-
kubectl --namespace openstack \
16-
create secret generic mariadb-monitoring \
17-
--type Opaque \
18-
--from-literal=username="monitoring" \
19-
--from-literal=password="$(< /dev/urandom tr -dc _A-Za-z0-9 | head -c${1:-64};echo;)"
20-
```
12+
Manual secret generation is only required if you haven't run the `create-secrets.sh` script located in `/opt/genestack/bin`.
13+
14+
??? example "Example secret generation"
15+
16+
``` shell
17+
kubectl --namespace openstack \
18+
create secret generic mariadb-monitoring \
19+
--type Opaque \
20+
--from-literal=username="monitoring" \
21+
--from-literal=password="$(< /dev/urandom tr -dc _A-Za-z0-9 | head -c${1:-64};echo;)"
22+
```
23+
24+
Add the config to a secret that'll be used within the container for our shared services
2125

22-
Then add the config to a secret that'll be used within the container for our shared services
2326
``` shell
2427
kubectl -n openstack create secret generic mariadb-monitor --type Opaque --from-literal=my.cnf="[client.mariadb-monitor]
2528
user=monitoring
@@ -28,11 +31,14 @@ password=$(kubectl --namespace openstack get secret mariadb-monitoring -o jsonpa
2831

2932
Next, install the exporter
3033

31-
``` shell
32-
bin/install-prometheus-mysql-exporter.sh
33-
```
34+
??? example "`/opt/genestack/bin/install-prometheus-mysql-exporter.sh`"
35+
36+
``` shell
37+
--8<-- "bin/install-prometheus-mysql-exporter.sh"
38+
```
39+
40+
!!! note
3441

35-
!!! note "Helm chart versions are defined in (opt)/genestack/helm-chart-versions.yaml and can be overridden in (etc)/genestack/helm-chart-versions.yaml"
42+
Helm chart versions are defined in `opt/genestack/helm-chart-versions.yaml` and can be overridden in `/etc/genestack/helm-chart-versions.yaml`.
3643

37-
!!! success
38-
If the installation is successful, you should see the exporter pod in the openstack namespace.
44+
If the installation is successful, you should see the exporter pod in the openstack namespace.

0 commit comments

Comments
 (0)