Files
smart-city-digital-twin-mar…/grafana_smart-city-overview.json

348 lines
7.6 KiB
JSON

{
"timezone": "Americas/Martinique",
"timepicker": {
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d"
],
"nowDelay": "5s"
},
"title": "Smart City Digital Twin - Overview",
"tags": [
"smart-city",
"digital-twin",
"overview"
],
"schemaVersion": 16,
"version": 1,
"refresh": "5s",
"panels": [
{
"id": 1,
"title": "Total Vehicles",
"type": "stat",
"gridPos": {
"x": 0,
"y": 0,
"w": 4,
"h": 4
},
"targets": [
{
"query": "from(bucket: \"iot_data\") |> range(start: -24h) |> filter(fn: (r) => r[\"_measurement\"] == \"traffic\") |> group(columns: [\"sensor_id\"]) |> sum()"
}
],
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "center",
"orientation": "auto"
},
"fieldConfig": {
"defaults": {
"unit": "short",
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 150
},
{
"color": "red",
"value": 300
}
]
}
}
}
},
{
"id": 2,
"title": "Average Air Quality Index",
"type": "gauge",
"gridPos": {
"x": 4,
"y": 0,
"w": 4,
"h": 4
},
"targets": [
{
"query": "from(bucket: \"iot_data\") |> range(start: -24h) |> filter(fn: (r) => r[\"_measurement\"] == \"airquality\") |> mean(column: \"air_quality_index\")"
}
],
"options": {
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"fieldConfig": {
"defaults": {
"min": 1,
"max": 5,
"unit": "short",
"color": {
"mode": "thresholds"
},
"thresholds": {
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 2
},
{
"color": "orange",
"value": 3
},
{
"color": "red",
"value": 4
}
]
}
}
}
},
{
"id": 3,
"title": "Available Parking Spots",
"type": "stat",
"gridPos": {
"x": 8,
"y": 0,
"w": 4,
"h": 4
},
"targets": [
{
"query": "from(bucket: \"iot_data\") |> range(start: -24h) |> filter(fn: (r) => r[\"_measurement\"] == \"parking\") |> sum(column: \"available_spots\")"
}
],
"fieldConfig": {
"defaults": {
"unit": "short",
"color": {
"mode": "thresholds"
},
"thresholds": {
"steps": [
{
"color": "red",
"value": null
},
{
"color": "yellow",
"value": 50
},
{
"color": "green",
"value": 100
}
]
}
}
}
},
{
"id": 4,
"title": "Average Noise Level",
"type": "gauge",
"gridPos": {
"x": 12,
"y": 0,
"w": 4,
"h": 4
},
"targets": [
{
"query": "from(bucket: \"iot_data\") |> range(start: -24h) |> filter(fn: (r) => r[\"_measurement\"] == \"noise\") |> mean(column: \"noise_level_db\")"
}
],
"options": {
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"fieldConfig": {
"defaults": {
"min": 30,
"max": 100,
"unit": "dB",
"color": {
"mode": "thresholds"
},
"thresholds": {
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 60
},
{
"color": "orange",
"value": 75
},
{
"color": "red",
"value": 85
}
]
}
}
}
},
{
"id": 5,
"title": "Traffic Over Time",
"type": "timeseries",
"gridPos": {
"x": 0,
"y": 4,
"w": 12,
"h": 6
},
"targets": [
{
"query": "from(bucket: \"iot_data\") |> range(start: -24h) |> filter(fn: (r) => r[\"_measurement\"] == \"traffic\") |> aggregateWindow(every: 1m, fn: mean)"
}
],
"options": {
"legend": {
"displayMode": "hidden"
},
"tooltip": {
"mode": "single"
}
},
"fieldConfig": {
"defaults": {
"unit": "short",
"color": {
"mode": "palette-classic"
},
"custom": {
"lineWidth": 2,
"fillOpacity": 10,
"gradientMode": "opacity"
}
}
}
},
{
"id": 6,
"title": "Air Quality - PM2.5",
"type": "timeseries",
"gridPos": {
"x": 12,
"y": 4,
"w": 12,
"h": 6
},
"targets": [
{
"query": "from(bucket: \"iot_data\") |> range(start: -24h) |> filter(fn: (r) => r[\"_measurement\"] == \"airquality\") |> aggregateWindow(every: 1m, fn: mean)"
}
],
"options": {
"legend": {
"displayMode": "hidden"
},
"tooltip": {
"mode": "single"
}
},
"fieldConfig": {
"defaults": {
"unit": "\u03bcg/m\u00b3",
"color": {
"mode": "palette-classic"
}
}
}
},
{
"id": 7,
"title": "Parking Availability",
"type": "piechart",
"gridPos": {
"x": 0,
"y": 10,
"w": 8,
"h": 6
},
"targets": [
{
"query": "from(bucket: \"iot_data\") |> range(start: -24h) |> filter(fn: (r) => r[\"_measurement\"] == \"parking\") |> group(columns: [\"sensor_name\"]) |> sum()"
}
],
"options": {
"pieType": "donut",
"displayLabels": "name",
"legend": {
"displayMode": "table",
"placement": "right",
"values": [
"value"
]
}
}
},
{
"id": 8,
"title": "Weather Conditions",
"type": "timeseries",
"gridPos": {
"x": 8,
"y": 10,
"w": 16,
"h": 6
},
"targets": [
{
"query": "from(bucket: \"iot_data\") |> range(start: -24h) |> filter(fn: (r) => r[\"_measurement\"] == \"weather\") |> aggregateWindow(every: 5m, fn: mean)"
}
],
"options": {
"legend": {
"displayMode": "hidden"
},
"tooltip": {
"mode": "single"
}
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"lineWidth": 2,
"fillOpacity": 5
}
}
}
}
],
"time": {
"from": "now-24h",
"to": "now"
}
}