Grafana: Fix InfluxDB + document datasource solutions
- Diagnostic: simple-json-datasource incompatible with NGSI-LD/SensorThings - Fix InfluxDB: Use host.docker.internal:8086 - Document solutions for Orion-LD, FROST, Stellio - Prepare for API-direct panels or adapter service
This commit is contained in:
38
DIAGNOSTIC-GRAFANA-DATASOURCES.md
Normal file
38
DIAGNOSTIC-GRAFANA-DATASOURCES.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Diagnostic Grafana Datasources (05-05-2026)
|
||||||
|
|
||||||
|
## Problème
|
||||||
|
Toutes les datasources (sauf Prometheus) retournent "id is invalid" ou ne répondent pas.
|
||||||
|
|
||||||
|
## Causes identifiées
|
||||||
|
1. **Plugin simple-json-datasource mal configuré**
|
||||||
|
- Ce plugin attend un backend qui implémente l'API simple-json
|
||||||
|
- Orion-LD, FROST, Stellio ne sont PAS compatibles directement
|
||||||
|
- Ils ont leurs propres APIs (NGSI-LD, SensorThings, etc.)
|
||||||
|
|
||||||
|
2. **URLs inaccessibles depuis le container Grafana**
|
||||||
|
- InfluxDB : `digital-twin-influxdb:8086` (interne Docker, pas résolu)
|
||||||
|
- FROST : `frost_http-web-1:8080` (interne Docker)
|
||||||
|
- Solution : Utiliser `localhost:8086`, `localhost:8090` (ou IP publique)
|
||||||
|
|
||||||
|
3. **Plugins NGSI-LD manquants**
|
||||||
|
- Pas de plugin Grafana natif pour Orion-LD/Stellio
|
||||||
|
- Nécessite des plugins communautaires ou requêtes HTTP directes
|
||||||
|
|
||||||
|
## Solutions proposées
|
||||||
|
### A. Pour InfluxDB (plus simple)
|
||||||
|
1. Modifier l'URL dans Grafana : `http://localhost:8086` (ou `host.docker.internal:8086`)
|
||||||
|
2. Configurer database, user, password
|
||||||
|
|
||||||
|
### B. Pour Orion-LD / Stellio (NGSI-LD)
|
||||||
|
1. **Option 1** : Utiliser le plugin "grafana-ngsi-ld-datasource" (si existe)
|
||||||
|
2. **Option 2** : Créer un micro-service qui traduit NGSI-LD → format Grafana
|
||||||
|
3. **Option 3** : Utiliser des requêtes HTTP dans les panels (JSON API datasource)
|
||||||
|
|
||||||
|
### C. Pour FROST (SensorThings)
|
||||||
|
1. Vérifier si le plugin "grafana-sensorthings-datasource" est installé
|
||||||
|
2. Sinon, utiliser l'API FROST directement
|
||||||
|
|
||||||
|
## Actions immédiates
|
||||||
|
1. Corriger les URLs InfluxDB (localhost:8086)
|
||||||
|
2. Tester la connexion depuis le container Grafana
|
||||||
|
3. Documenter les endpoints API pour chaque service
|
||||||
49
GRAFANA-SOLUTION.md
Normal file
49
GRAFANA-SOLUTION.md
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# Solution Grafana Datasources - Smart City
|
||||||
|
|
||||||
|
## Problème
|
||||||
|
Les datasources Orion-LD, FROST, Stellio ne marchent pas avec le plugin "simple-json-datasource".
|
||||||
|
|
||||||
|
## Pourquoi ?
|
||||||
|
Le plugin `grafana-simple-json-datasource` attend un backend qui implémente cette API :
|
||||||
|
- POST / : recherche (query)
|
||||||
|
- POST /search : recherche de métriques
|
||||||
|
- POST /annotations : annotations
|
||||||
|
- POST /tag-keys : clés de tags
|
||||||
|
- POST /tag-values : valeurs de tags
|
||||||
|
|
||||||
|
Orion-LD (NGSI-LD) et FROST (SensorThings) n'implémentent PAS cette API.
|
||||||
|
|
||||||
|
## Solutions
|
||||||
|
|
||||||
|
### A. Pour InfluxDB (✅ facile)
|
||||||
|
1. Modifier l'URL : `http://host.docker.internal:8086` (ou `http://localhost:8086` si Grafana a accès)
|
||||||
|
2. Configurer database, user, password
|
||||||
|
3. Tester la connexion
|
||||||
|
|
||||||
|
### B. Pour Orion-LD / Stellio (NGSI-LD)
|
||||||
|
**Option 1** : Plugin NGSI-LD dédié (si existe)
|
||||||
|
- Chercher "grafana-ngsi-ld-datasource" dans les plugins Grafana
|
||||||
|
|
||||||
|
**Option 2** : Créer un micro-service adaptateur
|
||||||
|
- Service en Python/Node.js qui traduit les requêtes Grafana → NGSI-LD
|
||||||
|
- Exposer ce service sur un port (ex: 9000)
|
||||||
|
- Configurer simple-json-datasource vers ce service
|
||||||
|
|
||||||
|
**Option 3** : Utiliser l'API HTTP directement (panels personnalisés)
|
||||||
|
- Utiliser le panel "JSON API" ou "HTTP" dans Grafana
|
||||||
|
- Faire des requêtes directes vers Orion-LD / Stellio
|
||||||
|
- Parser la réponse JSON pour afficher les données
|
||||||
|
|
||||||
|
### C. Pour FROST (SensorThings)
|
||||||
|
**Option 1** : Plugin SensorThings (si existe)
|
||||||
|
- Chercher "grafana-sensorthings-datasource"
|
||||||
|
|
||||||
|
**Option 2** : API directe (comme ci-dessus)
|
||||||
|
|
||||||
|
## Actions immédiates
|
||||||
|
1. ✅ Corriger InfluxDB (host.docker.internal:8086)
|
||||||
|
2. ⚠️ Pour Orion-LD : Documenter l'API et créer des panels HTTP
|
||||||
|
3. ⚠️ Pour FROST : Même chose
|
||||||
|
|
||||||
|
## Alternative
|
||||||
|
Utiliser **Grafana + InfluxDB** pour stocker les données du simulateur, puis visualiser depuis InfluxDB (plus simple).
|
||||||
Reference in New Issue
Block a user