feat: Added stfuff
All checks were successful
Flake checker / Build Nix targets (push) Successful in 9m28s

This commit is contained in:
uttarayan21
2025-08-14 16:25:39 +05:30
parent 7dbe692816
commit f8b96a5c84
11 changed files with 1258 additions and 43 deletions

View File

@@ -17,7 +17,7 @@
./resolved.nix ./resolved.nix
./searxng.nix ./searxng.nix
./tailscale.nix ./tailscale.nix
./grafana.nix # ./grafana.nix
./excalidraw.nix ./excalidraw.nix
# ./desmos.nix # ./desmos.nix

View File

@@ -8,8 +8,26 @@
http_port = 3011; http_port = 3011;
}; };
"auth.proxy" = { "auth.proxy" = {
enabled = true; enabled = false;
header_name = "Remote-User"; header_name = "Remote-User";
header_property = "username";
auto_sign_up = true;
sync_ttl = 60;
whitelist = "127.0.0.1";
headers = "Name:Remote-Name Email:Remote-Email";
enable_login_token = false;
};
users = {
default_theme = "dark";
home_page = "d/monitoring-homepage";
auto_assign_org = true;
auto_assign_org_id = 1;
auto_assign_org_role = "Admin";
};
security = {
allow_embedding = true;
cookie_secure = false;
disable_gravatar = true;
}; };
}; };
provision = { provision = {
@@ -26,14 +44,44 @@
]; ];
dashboards.settings.providers = [ dashboards.settings.providers = [
{ {
name = "system"; name = "homepage";
orgId = 1; orgId = 1;
folder = "System"; folder = "";
type = "file"; type = "file";
disableDeletion = false; disableDeletion = false;
updateIntervalSeconds = 10; updateIntervalSeconds = 10;
allowUiUpdates = true; allowUiUpdates = true;
options.path = "/etc/grafana/dashboards"; options.path = "/etc/grafana/dashboards/homepage";
}
{
name = "multi-device";
orgId = 1;
folder = "Multi-Device Monitoring";
type = "file";
disableDeletion = false;
updateIntervalSeconds = 10;
allowUiUpdates = true;
options.path = "/etc/grafana/dashboards/multi-device";
}
{
name = "device-specific";
orgId = 1;
folder = "Device-Specific";
type = "file";
disableDeletion = false;
updateIntervalSeconds = 10;
allowUiUpdates = true;
options.path = "/etc/grafana/dashboards/device-specific";
}
{
name = "legacy";
orgId = 1;
folder = "Legacy Dashboards";
type = "file";
disableDeletion = false;
updateIntervalSeconds = 10;
allowUiUpdates = true;
options.path = "/etc/grafana/dashboards/legacy";
} }
]; ];
}; };
@@ -155,13 +203,6 @@
settings = { settings = {
access_control = { access_control = {
rules = [ rules = [
{
domain = "grafana.darksailor.dev";
policy = "bypass";
resources = [
"^/api([/?].*)?$"
];
}
{ {
domain = "grafana.darksailor.dev"; domain = "grafana.darksailor.dev";
policy = "one_factor"; policy = "one_factor";
@@ -184,15 +225,25 @@
}; };
}; };
# Provision dashboards directly # Provision dashboards in organized folders
environment.etc = { environment.etc = {
"grafana/dashboards/system-dashboard.json".source = ./grafana/system-dashboard.json; # Homepage dashboard (root level)
"grafana/dashboards/processes-dashboard.json".source = ./grafana/processes-dashboard.json; "grafana/dashboards/homepage/homepage-dashboard.json".source =
"grafana/dashboards/multi-device-system-dashboard.json".source = ./grafana/homepage/homepage-dashboard.json;
./grafana/multi-device-system-dashboard.json;
"grafana/dashboards/multi-device-processes-dashboard.json".source = # Multi-device dashboards
./grafana/multi-device-processes-dashboard.json; "grafana/dashboards/multi-device/multi-device-system-dashboard.json".source =
"grafana/dashboards/device-specific-system-dashboard.json".source = ./grafana/multi-device/multi-device-system-dashboard.json;
./grafana/device-specific-system-dashboard.json; "grafana/dashboards/multi-device/multi-device-processes-dashboard.json".source =
./grafana/multi-device/multi-device-processes-dashboard.json;
# Device-specific dashboards
"grafana/dashboards/device-specific/device-specific-system-dashboard.json".source =
./grafana/device-specific/device-specific-system-dashboard.json;
# Legacy dashboards
"grafana/dashboards/legacy/system-dashboard.json".source = ./grafana/legacy/system-dashboard.json;
"grafana/dashboards/legacy/processes-dashboard.json".source =
./grafana/legacy/processes-dashboard.json;
}; };
} }

View File

@@ -2,9 +2,23 @@
This directory contains Grafana dashboards configured to monitor multiple NixOS devices: `mirai`, `tsuba`, and `ryu`. 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 - **Purpose**: Compare system metrics across all devices on a single dashboard
- **Features**: - **Features**:
- Device filtering via template variable (can select one, multiple, or all devices) - 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 - System uptime tracking
- Load average trends - Load average trends
### 2. Device-Specific System Dashboard (`device-specific-system-dashboard.json`) #### 2. Multi-Device Process Monitoring
- **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`)
- **Purpose**: Monitor processes across all devices - **Purpose**: Monitor processes across all devices
- **Features**: - **Features**:
- Device filtering for process metrics - 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 I/O throughput monitoring
- Process count tracking per device - 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 - `system-dashboard.json`: Original single-device system dashboard
- `processes-dashboard.json`: Original single-device process 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. 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 ### Getting Started
2. **Detailed Analysis**: Use device-specific dashboards for in-depth analysis of a particular device 1. **Homepage First**: Visit `grafana.darksailor.dev` to see the homepage with device overview
3. **Process Monitoring**: Use the multi-device process dashboard to track resource-intensive processes across devices 2. **Dashboard Navigation**: Click on the colored tiles to access different dashboard categories
4. **Filtering**: Use the device template variable to focus on specific devices of interest 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) 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 ## Customization
@@ -114,4 +139,25 @@ All dashboard queries use the `device=~"$device"` filter to support multi-device
### Performance ### Performance
- Limit the number of devices selected simultaneously for better performance - Limit the number of devices selected simultaneously for better performance
- Adjust refresh rates if dashboards become slow - 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

View 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

View 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
}

View File

@@ -1,5 +1,6 @@
{...}: { { ... }:
{
services = { services = {
hardware.openrgb.enable = false; hardware.openrgb.enable = true;
}; };
} }