ceph-mirror/monitoring/ceph-mixin
Afreen Misbah 8321ca25d7 mgr/dashboard: fix stale metrics in hardware dashboards
Switch all stat panels in the hardware and hardware compression
dashboards from lastNotNull to last reduceFunction. When a host is
unreachable or node-proxy stops, metric silence is ambiguous — it
could mean host down, agent crash, or scrape failure. lastNotNull
freezes the last known value (e.g. 4 NVMe drives), causing
inconsistency with the global Overview which reflects live count
reductions.

Use last so panels show N/A when no current data arrives.

Fixes: https://tracker.ceph.com/issues/78360

Signed-off-by: Afreen Misbah <afreen@ibm.com>
2026-07-23 01:43:38 +05:30
..
dashboards mgr/dashboard: fix stale metrics in hardware dashboards 2026-07-23 01:43:38 +05:30
dashboards_out mgr/dashboard: fix stale metrics in hardware dashboards 2026-07-23 01:43:38 +05:30
tests_alerts mointoring: Add hardware alerts 2026-07-03 01:15:38 +05:30
tests_dashboards monitoring/ceph-mixin: scope test queries per dashboard 2026-07-04 09:40:07 +08:00
.gitignore monitoring: Fixes for development 2025-11-20 01:47:49 +05:30
.pylintrc
alerts.jsonnet mgr/dashboard: fix broken alert generator 2023-10-13 12:42:50 +05:30
alerts.libsonnet ceph-mixin: fix config inheritance 2022-08-18 16:21:36 +02:00
CMakeLists.txt ceph-mixin: fix PATH issues with jsonnet-bundler 2022-08-18 13:43:34 +02:00
config.libsonnet mointoring: Add hardware alerts 2026-07-03 01:15:38 +05:30
dashboards.jsonnet
dashboards.libsonnet monitoring: fix hardware Grafana dashboard and health metrics 2026-07-02 14:20:08 +05:30
jsonnet-bundler-build.sh monitoring/ceph-mixin: make jsonnet-bundler clone idempotent 2026-06-20 23:22:01 +08:00
jsonnetfile.json
jsonnetfile.lock.json mgr/dashboard: fix broken alert generator 2023-10-13 12:42:50 +05:30
lint-jsonnet.sh ceph-mixin: fix ceph-mixin setup 2023-08-09 12:19:04 +05:30
Makefile monitoring: Fixes for development 2025-11-20 01:47:49 +05:30
mixin.libsonnet ceph-mixin: refactor the structure of _config and utils 2022-05-16 15:26:56 +02:00
prometheus_alerts.libsonnet mointoring: Add hardware alerts 2026-07-03 01:15:38 +05:30
prometheus_alerts.yml mointoring: Add hardware alerts 2026-07-03 01:15:38 +05:30
README.md monitoring: Fixes for development 2025-11-20 01:47:49 +05:30
requirements-alerts.txt install-deps: Update Pyyaml version 2024-03-07 14:13:11 +10:00
requirements-grafonnet.txt
requirements-lint.txt install-deps: Update Pyyaml version 2024-03-07 14:13:11 +10:00
test-jsonnet.sh prometheus: add multicluster support to alerts 2022-08-17 12:08:56 +02:00
tox.ini monitoring: Fixes for development 2025-11-20 01:47:49 +05:30

Prometheus Monitoring Mixin for Ceph

A set of Grafana dashboards and Prometheus alerts for Ceph.

All the Grafana dashboards are already generated in the dashboards_out directory and alerts in the prometheus_alerts.yml file.

You can use the Grafana dashboards and alerts with Jsonnet like any other prometheus mixin. You can find more resources about mixins in general on monitoring.mixins.dev.


Grafana dashboards for Ceph

In dashboards_out you can find a collection of Grafana dashboards for Ceph Monitoring.

These dashboards are based on metrics collected from prometheus scraping the prometheus mgr plugin and the node_exporter (0.17.0).

Prometheus alerts

In prometheus_alerts.libsonnet you'll find a set of Prometheus alert rules that should provide a decent set of default alerts for a Ceph cluster. After building them with jsonnet put this file in place according to your Prometheus configuration (wherever the rules configuration stanza points).

SNMP

Ceph provides a MIB (CEPH-PROMETHEUS-ALERT-MIB.txt) to support sending Prometheus alerts to an SNMP management platform. The translation from Prometheus alert to SNMP trap requires the Prometheus alert to contain an OID that maps to a definition within the MIB. When making changes to the Prometheus alert rules file, developers should include any necessary changes to the MIB.

Multi-cluster support

Ceph-mixin supports dashboards and alerts across multiple clusters. To enable this feature you need to configure the following in config.libsonnnet:

showMultiCluster: true,
clusterLabel: '<your cluster label>',

Building from Jsonnet

sudo dnf install jsonnet jsonnet-bundler  # RHEL/Fedora
sudo apt-get install jsonnet jsonnet-bundler  # Ubuntu/Debian

# Install dependencies
jb install

# Generate all dashboards and alerts
make generate

# Run tests
make test

Method 2: Local Build (For CI/CD or no root access)

./jsonnet-bundler-build.sh

# Install dependencies using local jb
./jb install

# Generate all dashboards and alerts  
make generate

# Run tests
make test

Ceph Mixin Development Commands

make all        # Format, generate, lint, and test
make fmt        # Format Jsonnet files
make generate   # Regenerate JSON dashboards and alerts from templates
make lint       # Run linters
make test       # Run all tests
make vendor     # Install dependencies
make help       # List all available commands

Supported Versions

  • jsonnet: v0.18.0+
  • jsonnet-builder: 0.4.0+
  • grafonnet-lib: always uses latest master branch
  • alertmanager: 0.16.2+
  • prometheus: v2.33.4+