- Prometheus: Native plugin, works perfectly - InfluxDB: read-only datasource, need provisioning fix - Orion-LD/FROST: simple-json plugin INCOMPATIBLE - Solutions documented: modify provisioning, use HTTP direct, or create adapter - STOPPING task: 3+ attempts without progress (as per user rule) - Ready to resume later with proper config
78 lines
3.1 KiB
Markdown
78 lines
3.1 KiB
Markdown
# Grafana Datasources - STATUT FINAL (2026-05-05)
|
|
|
|
## ✅ Ce qui marche
|
|
- **Prometheus** : Fonctionne parfaitement (plugin natif Grafana + réseau partagé `smartcity-shared`)
|
|
|
|
## ❌ Ce qui ne marche pas (et pourquoi)
|
|
|
|
### 1. InfluxDB (read-only + config)
|
|
**Problèmes** :
|
|
- Datasources `read-only` (provisioning via `/etc/grafana/provisioning/datasources/datasources.yml`)
|
|
- Health check `/api/datasources/{uid}/health` renvoie `id is invalid`
|
|
- **Solution** :
|
|
```bash
|
|
# Modifier le fichier provisioning DANS le container ou sur l'hôte monté
|
|
# Configurer : URL, Token (v2), Organization, DefaultBucket
|
|
```
|
|
|
|
### 2. Orion-LD / FROST / Stellio (incompatibilité plugin)
|
|
**Problème critique** :
|
|
- Plugin `grafana-simple-json-datasource` **INCOMPATIBLE**
|
|
- Ces services n'implémentent PAS l'API simple-json (search, query, annotations)
|
|
- Ils ont leurs propres APIs : NGSI-LD, SensorThings
|
|
|
|
**Solutions** :
|
|
#### Option A : Plugin NGSI-LD dédié
|
|
```bash
|
|
docker exec digital-twin-grafana grafana-cli plugins install <ngsi-ld-plugin>
|
|
```
|
|
|
|
#### Option B : Micro-service adaptateur (Node.js/Python)
|
|
1. Créer un service qui implémente l'API simple-json
|
|
2. Traduit requêtes Grafana → NGSI-LD/SensorThings
|
|
3. Exposer sur port 9000, configurer simple-json vers ce service
|
|
|
|
#### Option C : API HTTP directe (panels)
|
|
1. Installer plugin "JSON API" ou "HTTP"
|
|
2. Requête GET vers :
|
|
- Orion-LD : `http://fiware-gis-quickstart-orionproxy-1:80/ngsi-ld/v1/entities`
|
|
- FROST : `http://frost-api-8090:8080/FROST-Server/v1.1/Things`
|
|
- Stellio : `http://stellio-api-gateway:8080/ngsi-ld/v1/entities`
|
|
3. Parser JSON dans le panel
|
|
|
|
## 🔧 Actions accomplies
|
|
1. ✅ Connexion Grafana aux réseaux : `smartcity-shared`, `frost_http_default`, `docker_default`, `fiware-gis-quickstart_fiware`
|
|
2. ✅ Testé accessibilité depuis container Grafana :
|
|
- InfluxDB : ✅ `http://digital-twin-influxdb:8086` (HTTP 204)
|
|
- Orion-LD : ✅ `http://fiware-gis-quickstart-orionproxy-1:80` (HTTP 200)
|
|
- FROST : ⚠️ `http://frost-api-8090:8080` (HTTP 400)
|
|
- Stellio : ✅ `http://stellio-api-gateway:8080` (HTTP 404)
|
|
3. ✅ Identifié : Plugin simple-json incompatible avec NGSI-LD/SensorThings
|
|
4. ✅ Documenté solutions (A/B/C ci-dessus)
|
|
|
|
## 📋 Prochaines étapes (pour reprendre plus tard)
|
|
1. **InfluxDB** : Modifier `/etc/grafana/provisioning/datasources/datasources.yml` :
|
|
```yaml
|
|
- name: InfluxDB-SmartCity
|
|
type: influxdb
|
|
url: http://digital-twin-influxdb:8086
|
|
jsonData:
|
|
version: Flux
|
|
organization: smartcity
|
|
defaultBucket: smartcity
|
|
secureJsonData:
|
|
token: "<votre-token>"
|
|
```
|
|
2. **Orion-LD/FROST/Stellio** : Choisir Option B ou C (adaptateur ou HTTP direct)
|
|
3. **Tester avec panels réels** (pas seulement health check API)
|
|
|
|
## 🎯 Pourquoi Prometheus marche ?
|
|
- Plugin **natif** Grafana (codé en Go)
|
|
- Communication directe protocole Prometheus
|
|
- Réseau partagé `smartcity-shared` avec Grafana
|
|
|
|
---
|
|
*Session du 05-05-2026 : 10+ tentatives de fix Grafana datasources*
|
|
*Problème identifié : simple-json plugin incompatible + InfluxDB read-only*
|
|
*Solution : Voir Options A/B/C ci-dessus*
|