Skip to content

rs-infra-monitoring

Monitoring and observability stack of RS-Python: metrics, logs and traces of the Kubernetes cluster and of the RS-Python components, with their dashboards.

Overview

This repository is a package of applications deployed on the cluster created by rs-infra-core, with its apps.yaml playbook. Each folder of apps is an application, made of a Kustomize file that references a Helm chart and Kubernetes manifests, templated with the variables of the inventory:

Application Namespace Description
01-grafana-operator monitoring The Grafana Operator, that manages the data sources and dashboards of Grafana as Kubernetes resources (GrafanaDatasource, GrafanaDashboard...).
01-listenerset monitoring The HTTPS listener of the monitoring.<domain> host name on the Envoy Gateway, see Gateway API.
grafana monitoring Grafana, the web interface of the monitoring, with the Keycloak authentication (OpenID Connect).
prometheus monitoring The kube-prometheus-stack: Prometheus, its operator and the exporters of the cluster metrics, exposed under /prometheus with the Keycloak authentication.
prometheus-datasource monitoring The Prometheus data source of Grafana.
loki logging Loki, the storage of the logs of all the pods, in the object storage, with its Grafana data source.
tempo-distributed logging Tempo, the storage of the OpenTelemetry traces, in the object storage, with its Grafana data source.
alloy monitoring Grafana Alloy, the collector that sends the logs of the pods to Loki and the OpenTelemetry traces to Tempo.

The data sources of the other components (e.g. the Prefect and performance indicators databases) are deployed with these components, as GrafanaDatasource resources.

Getting started

Deploy the applications from the bastion, after the infrastructure installation:

cd ~
git clone https://github.com/RS-PYTHON/rs-infra-monitoring.git
cd ~/rs-infra-core
ansible-playbook apps.yaml -i inventory/mycluster/hosts.yaml -e '{"package_paths": ["~/rs-infra-monitoring/apps/"]}'

The parameters of the applications (grafana, loki, grafanatempo... sections: credentials, retention, buckets, additional Grafana plugins, SMTP server) are in the host_vars/setup/apps.yml file of the inventory.

Documentation