Files
dotfiles/nixos/mirai/services/grafana/STRUCTURE.md
uttarayan21 f8b96a5c84
All checks were successful
Flake checker / Build Nix targets (push) Successful in 9m28s
feat: Added stfuff
2025-08-14 16:25:39 +05:30

161 lines
5.5 KiB
Markdown

# Grafana Dashboard Structure
## Directory Layout
```
dotfiles/nixos/mirai/services/grafana/
├── README.md # Main documentation
├── STRUCTURE.md # This file - structure overview
├── homepage/
│ └── homepage-dashboard.json # Main homepage dashboard
├── multi-device/
│ ├── multi-device-system-dashboard.json # System metrics across devices
│ └── multi-device-processes-dashboard.json # Process monitoring across devices
├── device-specific/
│ └── device-specific-system-dashboard.json # Single device detailed view
└── legacy/
├── system-dashboard.json # Original system dashboard
└── processes-dashboard.json # Original process dashboard
```
## Dashboard Hierarchy
```
🏠 Homepage (monitoring-homepage)
├── Device Status Overview Table
├── Quick Dashboard Links
└── Action Buttons
├── 📊 Multi-Device Monitoring/
│ ├── Multi-Device System (multi-device-system)
│ └── Multi-Device Processes (multi-device-processes)
├── 🔍 Device-Specific/
│ └── Device System Dashboard (device-system-${device})
└── 📚 Legacy Dashboards/
├── Legacy System (system-metrics)
└── Legacy Processes (process-metrics)
```
## Dashboard Features Matrix
| Dashboard | Device Filter | Comparison | Time Series | Status | Process Data |
|-----------|--------------|------------|-------------|---------|--------------|
| Homepage | ❌ | ✅ | ❌ | ✅ | ❌ |
| Multi-Device System | ✅ | ✅ | ✅ | ✅ | ❌ |
| Multi-Device Processes | ✅ | ✅ | ✅ | ❌ | ✅ |
| Device-Specific | ✅ | ❌ | ✅ | ✅ | ❌ |
| Legacy System | ❌ | ❌ | ✅ | ✅ | ❌ |
| Legacy Processes | ❌ | ❌ | ✅ | ❌ | ✅ |
## User Journey Flow
```
1. User visits grafana.darksailor.dev
2. Homepage loads automatically
3. User sees device status overview
4. User clicks dashboard tile based on need:
├── Multi-Device System → Compare all devices
├── Device-Specific → Deep dive single device
├── Multi-Device Processes → Process monitoring
└── Legacy → Original dashboards
5. User uses template variables to filter data
6. User navigates between dashboards using links
```
## Configuration Mapping
| Grafana Folder | File Path | Provision Path |
|----------------|-----------|----------------|
| Root | `homepage/` | `/etc/grafana/dashboards/homepage/` |
| Multi-Device Monitoring | `multi-device/` | `/etc/grafana/dashboards/multi-device/` |
| Device-Specific | `device-specific/` | `/etc/grafana/dashboards/device-specific/` |
| Legacy Dashboards | `legacy/` | `/etc/grafana/dashboards/legacy/` |
## Metrics Coverage
### System Metrics (Node Exporter - Port 9100)
- ✅ CPU usage and load average
- ✅ Memory utilization (used/total)
- ✅ Disk usage and I/O operations
- ✅ Network interface statistics
- ✅ SystemD service status
- ✅ System uptime and boot time
### Process Metrics (Process Exporter - Port 9256)
- ✅ CPU usage per process group
- ✅ Memory usage (resident/virtual)
- ✅ Process I/O operations (read/write)
- ✅ Process count and lifecycle
- ✅ Process resource trends
## Device Labels
| Device | Type | Architecture | Services |
|--------|------|--------------|----------|
| mirai | server | x86_64 | Grafana, Prometheus, Caddy |
| tsuba | server | aarch64 | Media services, NAS |
| ryu | desktop | x86_64 | Gaming, Development |
## Color Coding
### Dashboard Categories
- 🔵 **Blue**: Multi-Device System monitoring
- 🟢 **Green**: Device-Specific detailed monitoring
- 🟣 **Purple**: Multi-Device Process monitoring
- 🟠 **Orange**: Legacy single-device dashboards
### Status Indicators
- 🟢 **Green**: Service UP / Normal operation
- 🔴 **Red**: Service DOWN / Critical threshold
- 🟡 **Yellow**: Warning threshold
- 🔵 **Blue**: Information / Navigation
## Dashboard UIDs Reference
| Dashboard | UID | URL Path |
|-----------|-----|----------|
| Homepage | `monitoring-homepage` | `d/monitoring-homepage` |
| Multi-Device System | `multi-device-system` | `d/multi-device-system` |
| Multi-Device Processes | `multi-device-processes` | `d/multi-device-processes` |
| Device-Specific | `device-system-${device}` | `d/device-system-mirai` |
| Legacy System | `system-metrics` | `d/system-metrics` |
| Legacy Processes | `process-metrics` | `d/process-metrics` |
## Refresh Rates
- Homepage: 30 seconds
- Multi-Device dashboards: 30 seconds
- Device-Specific: 30 seconds
- Legacy dashboards: 30 seconds
## Template Variables
### Device Selection ($device)
- **Type**: Query variable
- **Query**: `label_values(up, device)`
- **Multi-select**: Yes (for multi-device dashboards)
- **Include All**: Yes
- **Current Values**: mirai, tsuba, ryu
## Quick Access URLs
- Homepage: `https://grafana.darksailor.dev/d/monitoring-homepage`
- Multi-Device System: `https://grafana.darksailor.dev/d/multi-device-system`
- Prometheus Targets: `https://prometheus.darksailor.dev/targets`
- Dashboard Browser: `https://grafana.darksailor.dev/dashboards`
## Maintenance Notes
- Dashboards auto-update from provisioned files
- New devices appear automatically when exporters are configured
- Template variables refresh every page load
- Dashboard folders are recreated on Grafana restart
- Homepage is set as default landing page for all users