Skip to content

Observality

CCX delivers the observability stack as a separate deployment available as a Helm chart here - https://github.com/severalnines/observability/.

This page describes how to set up observability. The observability solution for CCX relies heavily on VictoriaMetrics/VM-alerts (or Prometheus/AlertManager) with Grafana for visualisation. We recommend using VictoriaMetrics and hence Prometheus is not covered in any more detail in this document.

Moreover, the datastores are also visualized in the ClusterControl UI.

Overview

This stack uses:

  • Victoria metrics - Prometheus compatibile observability for metrics and alerting (vmsingle/vmalert) - https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html
  • Alertmanager - https://prometheus.io/docs/alerting/latest/alertmanager/
  • Grafana - https://grafana.com/docs/
  • kube-state-metrics - https://github.com/kubernetes/kube-state-metrics

Deployment

Requirements

  • Kubernetes cluster
  • helm - https://helm.sh/docs/intro/install/
  • ccx-monitoring helm chart - https://github.com/severalnines/observability/

Namespace

It's preferred to have a dedicated namespace for this stack. Create namespace:

kubectl create ns monitoring
kubectl config set-context --current --namespace=monitoring

Add chart repo

helm repo add s9s https://severalnines.github.io/helm-charts/
helm repo update

Pull the chart

helm pull s9s/ccx-monitoring --untar

Helm dependencies

Update your helm dependencies by running:

helm dependencies update

Values

It is very important to edit values file and set variables like cluster name, ingress host, etc. Please make sure to go through values file and modify it as necessary.

helm show values ccx-monitoring > YOUR_VALUES.yaml

Installation & upgrade

helm upgrade --install ccx-monitoring ccx-monitoring --values YOUR_VALUES.yaml --debug

Please note that this guide as some other documents and URLs assumes that you use ccx-monitoring release name.

Grafana dashboards

Grafana dashboards and datasources are kept as a code in the repo.

kubectl delete -k ccx-monitoring/dashboards
kubectl create -k ccx-monitoring/dashboards

Additional dashboards can be placed as .json files in folders inside dashboards directory.

Grafana datasources

Grafana dashboards and datasources are kept as a code in the repo. Navigate to datasources directory, edit grafana_datasource.yaml and apply using:

kubectl apply -k ccx-monitoring/datasources

To get Grafana admin password

To retrieve the admin password (with username admin):

kubectl get secret ccx-monitoring-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

Removal

To uninstall the monitoring, run:

helm uninstall ccx-monitoring

Integratation with Slack

To integrate with slack, please see example in values.yaml file. See https://prometheus.io/docs/alerting/latest/configuration/ - for various integration and configuration options.

Back to top