Monitoring Module provides a fully-fledged monitoring stack for SIGHUP Distribution (SD). This module extends and improves upon the Kube-Prometheus project.
If you are new to SD please refer to the official documentation on how to get started with SD.
This module gives you full control and visibility over your cluster operations: metrics from the cluster and your applications are collected by Prometheus and visualized through Grafana. The stack is built around the prometheus-operator, which manages Prometheus, Alertmanager and ServiceMonitor resources as Kubernetes-native controllers.
Provider-specific ServiceMonitors (EKS, AKS, GKE and on-premises/self-managed clusters) are selected and deployed automatically based on your cluster, so the right Kubernetes components metrics are collected without manual configuration. Most components run in the monitoring namespace, except those that require permissions that force them into kube-system.
The following packages are included in Monitoring Module:
| Package | Version | Description |
|---|---|---|
| prometheus-operator | 0.89.0 |
Operator to deploy and manage Prometheus and related resources |
| prometheus-operated | 3.10.0 |
Prometheus instance deployed with Prometheus Operator's CRD |
| alertmanager-operated | 0.31.1 |
Alertmanager instance deployed with Prometheus Operator's CRD |
| blackbox-exporter | 0.28.0 |
Prometheus exporter that allows blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP, ICMP and gRPC. |
| grafana | 12.4.1 |
Grafana deployment to query and visualize metrics collected by Prometheus |
| kube-proxy-metrics | 0.22.0 |
RBAC proxy to securely expose kube-proxy metrics |
| kube-state-metrics | 2.18.0 |
Service that generates metrics from Kubernetes API objects |
| node-exporter | 1.10.2 |
Prometheus exporter for hardware and OS metrics exposed by *NIX kernels |
| prometheus-adapter | 0.12.0 |
Kubernetes resource metrics, custom metrics, and external metrics APIs implementation. |
| x509-exporter | 4.1.0 |
Provides monitoring for certificates |
| mimir | 3.0.4 |
Mimir is an open source, horizontally scalable, highly available, multi-tenant TSDB for long-term storage for Prometheus. |
| haproxy | N.A. |
Grafana dashboards and Prometheus rules (alerts) for HAproxy. |
The module also ships the provider-specific ServiceMonitor packages (eks-sm, aks-sm, gke-sm, kubeadm-sm), which are selected and deployed automatically based on your cluster's provider.
Click on each package to see its full documentation.
| Kubernetes Version | Compatibility | Notes |
|---|---|---|
1.32.x |
✅ | No known issues |
1.33.x |
✅ | No known issues |
1.34.x |
✅ | No known issues |
1.35.x |
✅ | No known issues |
Check the compatibility matrix for additional information about previous releases of the modules.
Monitoring Module is part of SIGHUP Distribution (SD) and is deployed automatically by furyctl when you create or update a cluster. You don't need to download, vendor or install its packages manually.
You choose whether and how to deploy the monitoring stack under spec.distribution.modules.monitoring in your furyctl.yaml: the type field selects the flavor (prometheus, prometheusAgent or mimir), or disables the module entirely with none. The other fields let you customize the individual packages; the ones you leave out are deployed with sensible defaults.
apiVersion: kfd.sighup.io/v1alpha2
kind: KFDDistribution
spec:
distribution:
modules:
monitoring:
# Monitoring stack flavor: none, prometheus, prometheusAgent or mimir
type: prometheus
prometheus:
retentionTime: 30d
retentionSize: 120GB
storageSize: 150Gi
alertmanager:
installDefaultRules: true
slackWebhookUrl: https://hooks.slack.com/services/XXXXXXTo keep metrics for the long term, set type: mimir and configure the mimir block with its storage backend (minio for an in-cluster MinIO, or externalEndpoint for an external S3-compatible bucket):
apiVersion: kfd.sighup.io/v1alpha2
kind: KFDDistribution
spec:
distribution:
modules:
monitoring:
type: mimir
mimir:
retentionTime: 30d
backend: minioSee the configuration reference for your cluster kind for the full list of available options: EKSCluster, KFDDistribution or OnPremises.
To install SD from scratch, follow the Getting started guide.
Before contributing, please read first the Contributing Guidelines.
In case you experience any problem with the module, please open a new issue.
This module is open-source and it's released under the following LICENSE.