feat: Added stfuff
All checks were successful
Flake checker / Build Nix targets (push) Successful in 9m28s
All checks were successful
Flake checker / Build Nix targets (push) Successful in 9m28s
This commit is contained in:
@@ -2,9 +2,23 @@
|
||||
|
||||
This directory contains Grafana dashboards configured to monitor multiple NixOS devices: `mirai`, `tsuba`, and `ryu`.
|
||||
|
||||
## Dashboard Overview
|
||||
## Homepage Dashboard
|
||||
|
||||
### 1. Multi-Device System Metrics (`multi-device-system-dashboard.json`)
|
||||
When you access Grafana at `grafana.darksailor.dev`, you'll be greeted with the **Monitoring Hub Homepage** that provides:
|
||||
|
||||
- **Device Status Overview**: Real-time status table showing CPU, memory, disk usage, and uptime for all devices
|
||||
- **Dashboard Navigation**: Color-coded tiles linking to all monitoring dashboards
|
||||
- **Quick Actions**: Direct links to Prometheus targets, dashboard management, and documentation
|
||||
- **Organized Layout**: Dashboards are grouped by category for easy navigation
|
||||
|
||||
## Dashboard Organization
|
||||
|
||||
Dashboards are organized into folders for better management:
|
||||
|
||||
### **📊 Multi-Device Monitoring**
|
||||
Located in `multi-device/` folder:
|
||||
|
||||
#### 1. Multi-Device System Metrics
|
||||
- **Purpose**: Compare system metrics across all devices on a single dashboard
|
||||
- **Features**:
|
||||
- Device filtering via template variable (can select one, multiple, or all devices)
|
||||
@@ -16,17 +30,7 @@ This directory contains Grafana dashboards configured to monitor multiple NixOS
|
||||
- System uptime tracking
|
||||
- Load average trends
|
||||
|
||||
### 2. Device-Specific System Dashboard (`device-specific-system-dashboard.json`)
|
||||
- **Purpose**: Detailed system monitoring for a single selected device
|
||||
- **Features**:
|
||||
- Device selection via template variable
|
||||
- Detailed CPU, memory, and disk metrics
|
||||
- Network and disk I/O operations
|
||||
- System status indicators
|
||||
- Load average trends (1m, 5m, 15m)
|
||||
- Enhanced visualizations with thresholds and color coding
|
||||
|
||||
### 3. Multi-Device Process Monitoring (`multi-device-processes-dashboard.json`)
|
||||
#### 2. Multi-Device Process Monitoring
|
||||
- **Purpose**: Monitor processes across all devices
|
||||
- **Features**:
|
||||
- Device filtering for process metrics
|
||||
@@ -36,7 +40,21 @@ This directory contains Grafana dashboards configured to monitor multiple NixOS
|
||||
- Process I/O throughput monitoring
|
||||
- Process count tracking per device
|
||||
|
||||
### 4. Legacy Dashboards
|
||||
### **🔍 Device-Specific**
|
||||
Located in `device-specific/` folder:
|
||||
|
||||
#### Device-Specific System Dashboard
|
||||
- **Purpose**: Detailed system monitoring for a single selected device
|
||||
- **Features**:
|
||||
- Device selection via template variable
|
||||
- Detailed CPU, memory, and disk metrics
|
||||
- Network and disk I/O operations
|
||||
- System status indicators
|
||||
- Load average trends (1m, 5m, 15m)
|
||||
- Enhanced visualizations with thresholds and color coding
|
||||
|
||||
### **📚 Legacy Dashboards**
|
||||
Located in `legacy/` folder:
|
||||
- `system-dashboard.json`: Original single-device system dashboard
|
||||
- `processes-dashboard.json`: Original single-device process dashboard
|
||||
|
||||
@@ -76,13 +94,20 @@ All multi-device dashboards include a `$device` template variable that allows:
|
||||
|
||||
The variable automatically populates with available devices based on Prometheus metrics.
|
||||
|
||||
## Usage Tips
|
||||
## Usage Guide
|
||||
|
||||
1. **Quick Overview**: Start with the multi-device system dashboard to get an overview of all devices
|
||||
2. **Detailed Analysis**: Use device-specific dashboards for in-depth analysis of a particular device
|
||||
3. **Process Monitoring**: Use the multi-device process dashboard to track resource-intensive processes across devices
|
||||
4. **Filtering**: Use the device template variable to focus on specific devices of interest
|
||||
### Getting Started
|
||||
1. **Homepage First**: Visit `grafana.darksailor.dev` to see the homepage with device overview
|
||||
2. **Dashboard Navigation**: Click on the colored tiles to access different dashboard categories
|
||||
3. **Quick Status Check**: Use the device status table on the homepage for immediate health overview
|
||||
|
||||
### Dashboard Navigation Tips
|
||||
1. **Multi-Device Comparison**: Start with multi-device dashboards to compare all systems
|
||||
2. **Deep Dive Analysis**: Use device-specific dashboards for detailed single-device monitoring
|
||||
3. **Process Troubleshooting**: Use multi-device process dashboard to identify resource issues
|
||||
4. **Template Variables**: Use the device dropdown to filter by specific devices
|
||||
5. **Time Ranges**: Adjust time ranges based on your monitoring needs (default: last 1 hour)
|
||||
6. **Folder Organization**: Browse dashboards by category using the folder structure
|
||||
|
||||
## Customization
|
||||
|
||||
@@ -114,4 +139,25 @@ All dashboard queries use the `device=~"$device"` filter to support multi-device
|
||||
### Performance
|
||||
- Limit the number of devices selected simultaneously for better performance
|
||||
- Adjust refresh rates if dashboards become slow
|
||||
- Consider shorter time ranges for detailed analysis
|
||||
- Consider shorter time ranges for detailed analysis
|
||||
|
||||
## Homepage Features
|
||||
|
||||
### Device Status Table
|
||||
- Real-time overview of all monitored devices
|
||||
- Color-coded status indicators (UP/DOWN)
|
||||
- CPU, memory, and disk usage percentages
|
||||
- System uptime tracking
|
||||
- Automatically updates every 30 seconds
|
||||
|
||||
### Dashboard Categories
|
||||
- **Blue**: Multi-Device System monitoring
|
||||
- **Green**: Device-Specific detailed monitoring
|
||||
- **Purple**: Multi-Device Process monitoring
|
||||
- **Orange**: Legacy single-device dashboards
|
||||
|
||||
### Quick Actions
|
||||
- **Prometheus Targets**: Direct link to check scrape target health
|
||||
- **Dashboard Management**: Access to Grafana's dashboard browser
|
||||
- **Data Sources**: Manage Prometheus and other data sources
|
||||
- **Documentation**: Link to setup and usage documentation
|
||||
161
nixos/mirai/services/grafana/STRUCTURE.md
Normal file
161
nixos/mirai/services/grafana/STRUCTURE.md
Normal file
@@ -0,0 +1,161 @@
|
||||
# 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
|
||||
956
nixos/mirai/services/grafana/homepage/homepage-dashboard.json
Normal file
956
nixos/mirai/services/grafana/homepage/homepage-dashboard.json
Normal file
@@ -0,0 +1,956 @@
|
||||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": {
|
||||
"type": "grafana",
|
||||
"uid": "-- Grafana --"
|
||||
},
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": true,
|
||||
"fiscalYearStartMonth": 0,
|
||||
"graphTooltip": 0,
|
||||
"id": null,
|
||||
"links": [],
|
||||
"liveNow": false,
|
||||
"panels": [
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": {
|
||||
"h": 1,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"id": 1000,
|
||||
"panels": [],
|
||||
"title": "Infrastructure Monitoring Overview",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "palette-classic"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"options": {
|
||||
"0": {
|
||||
"color": "red",
|
||||
"index": 1,
|
||||
"text": "DOWN"
|
||||
},
|
||||
"1": {
|
||||
"color": "green",
|
||||
"index": 0,
|
||||
"text": "UP"
|
||||
}
|
||||
},
|
||||
"type": "value"
|
||||
}
|
||||
],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "red",
|
||||
"value": null
|
||||
},
|
||||
{
|
||||
"color": "green",
|
||||
"value": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byName",
|
||||
"options": "CPU %"
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "unit",
|
||||
"value": "percent"
|
||||
},
|
||||
{
|
||||
"id": "max",
|
||||
"value": 100
|
||||
},
|
||||
{
|
||||
"id": "min",
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byName",
|
||||
"options": "Memory %"
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "unit",
|
||||
"value": "percent"
|
||||
},
|
||||
{
|
||||
"id": "max",
|
||||
"value": 100
|
||||
},
|
||||
{
|
||||
"id": "min",
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byName",
|
||||
"options": "Disk %"
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "unit",
|
||||
"value": "percent"
|
||||
},
|
||||
{
|
||||
"id": "max",
|
||||
"value": 100
|
||||
},
|
||||
{
|
||||
"id": "min",
|
||||
"value": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": {
|
||||
"id": "byName",
|
||||
"options": "Uptime"
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"id": "unit",
|
||||
"value": "s"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 8,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"id": 1,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": true
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus"
|
||||
},
|
||||
"expr": "up{job=\"node\"}",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "",
|
||||
"refId": "A"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus"
|
||||
},
|
||||
"expr": "100 - (avg by (device) (irate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "",
|
||||
"refId": "B"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus"
|
||||
},
|
||||
"expr": "((node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes) * 100",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "",
|
||||
"refId": "C"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus"
|
||||
},
|
||||
"expr": "100 - ((node_filesystem_avail_bytes{mountpoint=\"/\",fstype!=\"tmpfs\"} * 100) / node_filesystem_size_bytes{mountpoint=\"/\",fstype!=\"tmpfs\"})",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "",
|
||||
"refId": "D"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "prometheus",
|
||||
"uid": "prometheus"
|
||||
},
|
||||
"expr": "time() - node_boot_time_seconds",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 1,
|
||||
"legendFormat": "",
|
||||
"refId": "E"
|
||||
}
|
||||
],
|
||||
"title": "Device Status Overview",
|
||||
"transformations": [
|
||||
{
|
||||
"id": "merge",
|
||||
"options": {}
|
||||
},
|
||||
{
|
||||
"id": "organize",
|
||||
"options": {
|
||||
"excludeByName": {
|
||||
"Time": true,
|
||||
"__name__": true,
|
||||
"instance": true,
|
||||
"job": true,
|
||||
"fstype": true,
|
||||
"mountpoint": true,
|
||||
"mode": true
|
||||
},
|
||||
"indexByName": {},
|
||||
"renameByName": {
|
||||
"Value #A": "Status",
|
||||
"Value #B": "CPU %",
|
||||
"Value #C": "Memory %",
|
||||
"Value #D": "Disk %",
|
||||
"Value #E": "Uptime",
|
||||
"device": "Device"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "table"
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": {
|
||||
"h": 1,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 9
|
||||
},
|
||||
"id": 1001,
|
||||
"panels": [],
|
||||
"title": "System Monitoring Dashboards",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "blue",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"w": 8,
|
||||
"x": 0,
|
||||
"y": 10
|
||||
},
|
||||
"id": 2,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": false
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"refId": "A",
|
||||
"scenarioId": "csv_content",
|
||||
"stringInput": "Dashboard,Description\nMulti-Device System,\"Compare CPU, memory, disk & network across all devices\""
|
||||
}
|
||||
],
|
||||
"title": "",
|
||||
"transformations": [],
|
||||
"type": "table",
|
||||
"links": [
|
||||
{
|
||||
"title": "Open Multi-Device System Dashboard",
|
||||
"url": "d/multi-device-system"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "green",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"w": 8,
|
||||
"x": 8,
|
||||
"y": 10
|
||||
},
|
||||
"id": 3,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": false
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"refId": "A",
|
||||
"scenarioId": "csv_content",
|
||||
"stringInput": "Dashboard,Description\nDevice-Specific System,\"Detailed monitoring for individual devices with enhanced visualizations\""
|
||||
}
|
||||
],
|
||||
"title": "",
|
||||
"transformations": [],
|
||||
"type": "table",
|
||||
"links": [
|
||||
{
|
||||
"title": "Open Device-Specific Dashboard",
|
||||
"url": "d/device-system-${device}"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "purple",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"w": 8,
|
||||
"x": 16,
|
||||
"y": 10
|
||||
},
|
||||
"id": 4,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": false
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"refId": "A",
|
||||
"scenarioId": "csv_content",
|
||||
"stringInput": "Dashboard,Description\nMulti-Device Processes,\"Monitor processes across all devices with resource usage tracking\""
|
||||
}
|
||||
],
|
||||
"title": "",
|
||||
"transformations": [],
|
||||
"type": "table",
|
||||
"links": [
|
||||
{
|
||||
"title": "Open Multi-Device Process Dashboard",
|
||||
"url": "d/multi-device-processes"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": {
|
||||
"h": 1,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 14
|
||||
},
|
||||
"id": 1002,
|
||||
"panels": [],
|
||||
"title": "Legacy Dashboards",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "orange",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"w": 12,
|
||||
"x": 0,
|
||||
"y": 15
|
||||
},
|
||||
"id": 5,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": false
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"refId": "A",
|
||||
"scenarioId": "csv_content",
|
||||
"stringInput": "Dashboard,Description\nLegacy System,\"Original single-device system monitoring dashboard\""
|
||||
}
|
||||
],
|
||||
"title": "",
|
||||
"transformations": [],
|
||||
"type": "table",
|
||||
"links": [
|
||||
{
|
||||
"title": "Open Legacy System Dashboard",
|
||||
"url": "d/system-metrics"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "orange",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 4,
|
||||
"w": 12,
|
||||
"x": 12,
|
||||
"y": 15
|
||||
},
|
||||
"id": 6,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": false
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"refId": "A",
|
||||
"scenarioId": "csv_content",
|
||||
"stringInput": "Dashboard,Description\nLegacy Processes,\"Original single-device process monitoring dashboard\""
|
||||
}
|
||||
],
|
||||
"title": "",
|
||||
"transformations": [],
|
||||
"type": "table",
|
||||
"links": [
|
||||
{
|
||||
"title": "Open Legacy Process Dashboard",
|
||||
"url": "d/process-metrics"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
"gridPos": {
|
||||
"h": 1,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 19
|
||||
},
|
||||
"id": 1003,
|
||||
"panels": [],
|
||||
"title": "Quick Actions",
|
||||
"type": "row"
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "red",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 3,
|
||||
"w": 6,
|
||||
"x": 0,
|
||||
"y": 20
|
||||
},
|
||||
"id": 7,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": false
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"refId": "A",
|
||||
"scenarioId": "csv_content",
|
||||
"stringInput": "Action\nView Prometheus Targets"
|
||||
}
|
||||
],
|
||||
"title": "",
|
||||
"transformations": [],
|
||||
"type": "table",
|
||||
"links": [
|
||||
{
|
||||
"title": "Open Prometheus Targets",
|
||||
"url": "https://prometheus.darksailor.dev/targets",
|
||||
"targetBlank": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "yellow",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 3,
|
||||
"w": 6,
|
||||
"x": 6,
|
||||
"y": 20
|
||||
},
|
||||
"id": 8,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": false
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"refId": "A",
|
||||
"scenarioId": "csv_content",
|
||||
"stringInput": "Action\nManage Dashboards"
|
||||
}
|
||||
],
|
||||
"title": "",
|
||||
"transformations": [],
|
||||
"type": "table",
|
||||
"links": [
|
||||
{
|
||||
"title": "Browse All Dashboards",
|
||||
"url": "dashboards"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "light-blue",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 3,
|
||||
"w": 6,
|
||||
"x": 12,
|
||||
"y": 20
|
||||
},
|
||||
"id": 9,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": false
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"refId": "A",
|
||||
"scenarioId": "csv_content",
|
||||
"stringInput": "Action\nData Sources"
|
||||
}
|
||||
],
|
||||
"title": "",
|
||||
"transformations": [],
|
||||
"type": "table",
|
||||
"links": [
|
||||
{
|
||||
"title": "Manage Data Sources",
|
||||
"url": "datasources"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {
|
||||
"mode": "thresholds"
|
||||
},
|
||||
"custom": {
|
||||
"align": "center",
|
||||
"cellOptions": {
|
||||
"type": "color-background"
|
||||
},
|
||||
"inspect": false
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {
|
||||
"mode": "absolute",
|
||||
"steps": [
|
||||
{
|
||||
"color": "dark-green",
|
||||
"value": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"overrides": []
|
||||
},
|
||||
"gridPos": {
|
||||
"h": 3,
|
||||
"w": 6,
|
||||
"x": 18,
|
||||
"y": 20
|
||||
},
|
||||
"id": 10,
|
||||
"options": {
|
||||
"cellHeight": "lg",
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": false
|
||||
},
|
||||
"pluginVersion": "8.0.0",
|
||||
"targets": [
|
||||
{
|
||||
"datasource": {
|
||||
"type": "testdata",
|
||||
"uid": "PD8C576611E62080A"
|
||||
},
|
||||
"refId": "A",
|
||||
"scenarioId": "csv_content",
|
||||
"stringInput": "Action\nDocumentation"
|
||||
}
|
||||
],
|
||||
"title": "",
|
||||
"transformations": [],
|
||||
"type": "table",
|
||||
"links": [
|
||||
{
|
||||
"title": "View Setup Documentation",
|
||||
"url": "https://github.com/uttarayan21/dotfiles/tree/main/nixos/mirai/services/grafana",
|
||||
"targetBlank": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"refresh": "30s",
|
||||
"schemaVersion": 30,
|
||||
"style": "dark",
|
||||
"tags": [
|
||||
"homepage",
|
||||
"overview",
|
||||
"monitoring"
|
||||
],
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"time": {
|
||||
"from": "now-5m",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Monitoring Hub - Homepage",
|
||||
"uid": "monitoring-homepage",
|
||||
"version": 1
|
||||
}
|
||||
Reference in New Issue
Block a user