🛰️ Homelab-Wide Metrics Architecture

The homelab uses a unified observability stack built around Prometheus and Grafana. This architecture collects metrics from compute, storage, networking, and application services, providing a consistent, scalable foundation for monitoring, alerting, and long‑term analysis.

This page documents the full metrics architecture, including the data flow, exporters, and the role of each layer in the system.


🗺️ Architecture Overview

At a high level, the monitoring pipeline follows this flow:

Services → Exporters → Prometheus → Grafana → Alerts

📊 Homelab‑Wide Metrics Architecture Diagram

                                      +-----------------------+
                                      |       Grafana         |
                                      | Dashboards & Queries  |
                                      +-----------+-----------+
                                                  |
                                                  |
                                          +-------v--------+
                                          |   Prometheus   |
                                          |  Scrape Engine |
                                          +-------+--------+
                                                  |
     ---------------------------------------------------------------------------------------------------------
     |                 |                 |                 |                 |                 |             |
     |                 |                 |                 |                 |                 |             |
+----v-----+     +-----v------+    +-----v------+    +-----v------+    +-----v------+    +-----v------+  +--v-----+
| nginx    |     | node_export|    | docker_exp |    | plex_exp   |    | ceph_exp   |    | snmp_export |  | black- |
| exporter |     |  Proxmox   |    |  Media Apps|    | Plex Media |    | Ceph Mons  |    | switches/AP |  | box_exp|
+----+-----+     +-----+------+    +-----+------+    +-----+------+    +-----+------+    +-----+------+  +--+-----+
     |                 |                 |                 |                 |                 |             |
     |                 |                 |                 |                 |                 |             |
+----v-----+     +-----v------+    +-----v------+    +-----v------+    +-----v------+    +-----v------+  +--v-----+
| Nginx RP |     | Proxmox VE |    | Docker Host|    | Plex Media |    | Ceph OSDs  |    | Network Gear|  | External|
| (OAuth2) |     | Cluster    |    | (Lidarr,   |    | Server     |    | Ceph Mgr   |    | (Switches)  |  | Services|
+----------+     +------------+    | Radarr,    |    +------------+    +------------+    +------------+  +---------+
                                   | Sonarr,    |
                                   | Sabnzbd,   |
                                   | Calibre,   |
                                   | CalibreWeb |
                                   | LazyLib)   |
                                   +------------+

     --------------------------------------------------------------------------------------------------------------------------------
     |                 |                 |                 |                 |                 |                 |                  |
     |                 |                 |                 |                 |                 |                 |                  |
+----v-----+     +-----v------+    +-----v------+    +-----v------+    +-----v------+    +-----v------+    +-----v------+    +----v-----+
| synology |     | truenas    |    | smb/nfs    |    | iscsi      |    | ceph rbd   |    | cephfs     |    | pbs_export |    | pihole_exp|
| exporter |     | exporter   |    | exporter   |    | exporter   |    | exporter   |    | exporter   |    | PBS Backup |    | Pi-hole   |
+----------+     +------------+    +------------+    +------------+    +------------+    +------------+    +------------+    +----------+
     |                 |                 |                 |                 |                 |                 |                  |
+----v-----+     +-----v------+    +-----v------+    +-----v------+    +-----v------+    +-----v------+    +-----v------+    +----v-----+
| Synology |     | TrueNAS    |    | NFS/SMB    |    | iSCSI LUNs |    | Ceph RBD   |    | CephFS     |    | PBS Server |    | Pi-hole  |
| NAS      |     | Core/Scale |    | Shares     |    |            |    | Pools      |    |            |    |            |    | DNS/Ad   |
+----------+     +------------+    +------------+    +------------+    +------------+    +------------+    +------------+    +----------+

🧱 Layer‑by‑Layer Breakdown

This section explains each layer of the architecture and the role it plays.


🧩 1. Reverse Proxy Layer (Nginx + OAuth2 Proxy)

Monitored components:

Exporters:

Services behind the proxy:


🐳 2. Docker Media Stack Layer

Applications:

Exporters:


🎬 3. Plex Media Server Layer

Metrics include:

Exporters:


🖥️ 4. Proxmox Cluster Layer

Metrics include:

Exporters:


🗄️ 5. Storage Layer

Ceph

Exporter: Ceph MGR Prometheus module

Synology

Exporter: synology_exporter

TrueNAS

Exporter: truenas_exporter or ZFS exporter


🌐 6. Network Layer

Devices:

Exporter: snmp_exporter


🧩 7. DNS & Network Services Layer

Pi‑hole

Exporter: pihole_exporter


📡 Prometheus Scrape Topology

Prometheus scrapes metrics from all exporters using jobs such as:

Each job defines targets, labels, and scrape intervals.