From 2f18137c82168c0d12980d040eb18570c160b755 Mon Sep 17 00:00:00 2001 From: Eric FELIXINE Date: Mon, 4 May 2026 23:47:47 -0400 Subject: [PATCH] Grafana: Final dashboard with source + mqttTopic variables - Add mqttTopic variable for topic filtering - Add Traceability Demo panel - Dashboard ready for traceability visualization --- references/grafana-dashboard-sc-dt-final.json | 220 ++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 references/grafana-dashboard-sc-dt-final.json diff --git a/references/grafana-dashboard-sc-dt-final.json b/references/grafana-dashboard-sc-dt-final.json new file mode 100644 index 00000000..810481cf --- /dev/null +++ b/references/grafana-dashboard-sc-dt-final.json @@ -0,0 +1,220 @@ +{ + "meta": { + "type": "db", + "canSave": true, + "canEdit": true, + "canAdmin": true, + "canStar": true, + "canDelete": true, + "slug": "smart-city-digital-twin-martinique", + "url": "/d/smartcity-martinique-2026/smart-city-digital-twin-martinique", + "expires": "0001-01-01T00:00:00Z", + "created": "2026-05-04T21:28:58Z", + "updated": "2026-05-05T02:14:44Z", + "updatedBy": "admin", + "createdBy": "admin", + "version": 3, + "hasAcl": false, + "isFolder": false, + "folderId": 0, + "folderUid": "", + "folderTitle": "General", + "folderUrl": "", + "provisioned": false, + "provisionedExternalId": "", + "annotationsPermissions": { + "dashboard": { + "canAdd": true, + "canEdit": true, + "canDelete": true + }, + "organization": { + "canAdd": true, + "canEdit": true, + "canDelete": true + } + } + }, + "dashboard": { + "annotations": { + "list": [] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 9, + "links": [], + "panels": [ + { + "datasource": "FIWARE Orion", + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 0 + }, + "targets": [ + { + "query": "/ngsi-ld/v1/entities?type=TrafficFlowObserved&limit=1000", + "refId": "A" + } + ], + "title": "Traffic Flow (Orion-LD)", + "type": "timeseries" + }, + { + "datasource": "FROST-Server SensorThings", + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 0 + }, + "targets": [ + { + "query": "/Datastreams?$expand=Observations", + "refId": "B" + } + ], + "title": "Air Quality (FROST-Server)", + "type": "timeseries" + }, + { + "datasource": "InfluxDB-Local", + "gridPos": { + "h": 8, + "w": 8, + "x": 0, + "y": 8 + }, + "targets": [ + { + "query": "SHOW TAG VALUES FROM \"sensor_data\" WITH KEY = \"type\"", + "refId": "C" + } + ], + "title": "Capteurs par Type (InfluxDB)", + "type": "stat" + }, + { + "datasource": "FROST-Server SensorThings", + "gridPos": { + "h": 8, + "w": 16, + "x": 8, + "y": 8 + }, + "targets": [ + { + "query": "/Observations?$orderby=phenomenonTime desc&$top=10", + "refId": "D" + } + ], + "title": "Derni\u00e8res Observations (FROST)", + "type": "table" + }, + { + "id": 1, + "title": "Traceability Demo (source/mqttTopic)", + "type": "table", + "targets": [ + { + "datasource": { + "type": "grafana-simple-json-datasource", + "uid": "" + }, + "query": "AirQualityObserved", + "refId": "A" + } + ], + "columns": [ + { + "text": "ID", + "value": "id" + }, + { + "text": "Source", + "value": "source" + }, + { + "text": "MQTT Topic", + "value": "mqttTopic" + }, + { + "text": "Date", + "value": "date" + } + ], + "transformations": [] + } + ], + "schemaVersion": 36, + "style": "dark", + "tags": [ + "smartcity", + "martinique", + "simulator" + ], + "templating": { + "list": [ + { + "name": "source", + "type": "custom", + "label": "Source (Broker)", + "options": [ + { + "text": "simulator", + "value": "simulator", + "selected": true + }, + { + "text": "emqx", + "value": "emqx" + }, + { + "text": "mosquitto", + "value": "mosquitto" + }, + { + "text": "bunkerm", + "value": "bunkerm" + } + ], + "query": "simulator,emqx,mosquitto,bunkerm", + "allFormat": "regex" + }, + { + "name": "mqttTopic", + "type": "custom", + "label": "MQTT Topic", + "options": [ + { + "text": "city/sensors/AirQualityObserved/*", + "value": "city/sensors/AirQualityObserved/", + "selected": false + }, + { + "text": "city/sensors/TrafficFlowObserved/*", + "value": "city/sensors/TrafficFlowObserved/", + "selected": false + }, + { + "text": "city/sensors/WeatherObserved/*", + "value": "city/sensors/WeatherObserved/", + "selected": false + } + ], + "query": "city/sensors/AirQualityObserved/,city/sensors/TrafficFlowObserved/,city/sensors/WeatherObserved/", + "allFormat": "regex" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "title": "Smart City Digital Twin - Martinique", + "uid": "smartcity-martinique-2026", + "version": 3 + } +} \ No newline at end of file