Skip to content

sighupio/module-monitoring

Repository files navigation

Shows a black logo in light color mode and a white one in dark color mode.
Monitoring Module

Release License Slack

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.

Overview

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.

Packages

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.

Compatibility

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.

Usage

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.

Configuration

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/XXXXXX

To 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: minio

See 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.

Contributing

Before contributing, please read first the Contributing Guidelines.

Reporting Issues

In case you experience any problem with the module, please open a new issue.

License

This module is open-source and it's released under the following LICENSE.

About

Monitoring module: Monitor the status of your Kubernetes Cluster and its applications

Resources

License

Contributing

Stars

45 stars

Watchers

10 watching

Forks

Packages

 
 
 

Contributors