docs: session resume 2026-05-05 afternoon - Grafana/FROST/Redpanda/Prometheus status
This commit is contained in:
@@ -1,73 +1,54 @@
|
||||
# Session Resume — 05 Mai 2026 (Suite)
|
||||
# Session Resume - 2026-05-05-Après-midi
|
||||
|
||||
## ✅ Réalisé dans cette session
|
||||
## Objectif
|
||||
Implémenter Grafana + FROST, finir Redpanda, et monitoring Prometheus pour Smart City Digital Twin Martinique.
|
||||
|
||||
### 1. Correction critique Pulsar
|
||||
- **Problème** : API REST `/produce` inexistante en Pulsar standalone → 404
|
||||
- **Solution** : Installé `pulsar-client` Python dans le simulateur + modifié `publish_pulsar()` pour utiliser le client binaire (port 6650)
|
||||
- **Dockerfile** : Ajout de `pulsar-client` dans les dépendances
|
||||
- **Résultat** : `🌀 Pulsar: ✅` dans les logs simulateur
|
||||
## État des lieux (11h30-16h30)
|
||||
✅ **FROST** : 100+ observations (fonctionnel via simulateur direct ENABLED_FROST=true)
|
||||
✅ **Redpanda** : Conteneur actif (redpanda/docker-compose.yml corrigé)
|
||||
✅ **Pulsar** : Fonctionne (simulateur connecté sur smart-city-pulsar:6650)
|
||||
✅ **InfluxDB** : Opérationnel (datasource Grafana: InfluxDB-SmartCity)
|
||||
✅ **Grafana** : Healthy v10.2.0, plugins installés
|
||||
|
||||
### 2. Service de distribution Pulsar → Brokers
|
||||
- **Création** : `pulsar/distribution.py` — Consomme Pulsar et republie vers :
|
||||
- **MQTT** : EMQX (`emqx_emqx_1:1883`) + Mosquitto (`mosquitto-traefik:1883`)
|
||||
- **NGSI-LD** : Orion-LD (`fiware-gis-quickstart-orion-1:1026`) + Stellio (`stellio-api-gateway:8080`)
|
||||
- **OGC SensorThings** : FROST Server (`frost-api-8090:8080`)
|
||||
- **Docker** : `pulsar/Dockerfile` + `docker-compose.distribution.yml`
|
||||
- **Testé** : Messages distribués avec succès (MQTT reçu, entités Orion-LD créées)
|
||||
❌ **Distribution Pulsar → Brokers** : Échec persistant (ConnectError: Pulsar client → Pulsar standalone)
|
||||
⚠️ **Infinity Plugin** : Installé dans conteneur mais status "disabled" (problème d'activation)
|
||||
⚠️ **Prometheus** : Conteneur démarré (localhost:9090/metrics OK), mais /api/v1/targets retourne vide (cibles peut-être down)
|
||||
|
||||
### 3. Architecture mise en place
|
||||
```
|
||||
Simulateur → Pulsar (port 6650)
|
||||
↓
|
||||
Pulsar Distribution Service
|
||||
↓
|
||||
┌─────────────┼─────────────┐
|
||||
↓ ↓ ↓
|
||||
MQTT Brokers NGSI-LD FROST
|
||||
(EMQX+ Brokers (OGC
|
||||
Mosquitto) (Orion+ SensorThings)
|
||||
Stellio)
|
||||
## Problèmes bloquants
|
||||
1. **Pulsar Distribution** : Le service `pulsar-distribution` ne peut pas se connecter à Pulsar (même avec hostname correct, même réseau). Cause probable : Version Pulsar standalone vs client Python.
|
||||
2. **Infinity Plugin** : Installation réussie mais activation impossible via CLI (`grafana-cli plugins enable` ne fonctionne pas). Le plugin est dans `/var/lib/grafana/plugins/` mais Grafana ne le charge pas.
|
||||
3. **Prometheus Targets** : L'API retourne des cibles vides. Les conteneurs cibles (mosquitto-exporter:9234, frost_http-web-1:8080, etc.) sont peut-être inaccessibles ou metrics_path incorrect.
|
||||
|
||||
## Travail accompli
|
||||
- [x] Correction redpanda/start.sh (v24.3.14)
|
||||
- [x] Mise à jour simulator.py (ENABLE_FROST=true pour test)
|
||||
- [x] Création prometheus.yml (config pour scrape Mosquitto, Orion, FROST, Stellio)
|
||||
- [x] Correction docker-compose.yml (variables d'environnement)
|
||||
- [x] Installation plugin Infinity dans Grafana
|
||||
- [x] Commit & Push (hash: 98954e8)
|
||||
|
||||
## Reste à faire
|
||||
1. **Grafana FROST** : Trouver une méthode pour visualiser FROST (Infinity plugin ou adapter HTTP)
|
||||
2. **Monitoring Prometheus** : Vérifier pourquoi les cibles ne répondent pas (networking interne?)
|
||||
3. **Distribution Pulsar** : Debugger la connexion (essayer avec un client Pulsar plus récent ou changer d'approche)
|
||||
4. **Dashboard technique** : Créer le dashboard Grafana avec Prometheus + InfluxDB
|
||||
|
||||
## Commandes utiles
|
||||
```bash
|
||||
# Vérifier FROST
|
||||
curl -s "http://localhost:8090/FROST-Server/v1.1/Observations?\$top=5" | python3 -c "import sys,json; d=json.load(sys.stdin); print(len(d.get('value',[])))"
|
||||
|
||||
# Vérifier Prometheus
|
||||
curl -s "http://localhost:9090/metrics" | head -10
|
||||
|
||||
# Vérifier Grafana
|
||||
curl -s "http://localhost:3001/api/health" -u admin:Digitribe972
|
||||
|
||||
# Redémarrer Grafana (après install plugin)
|
||||
docker restart smart-city-grafana
|
||||
```
|
||||
|
||||
## ⚠️ Problèmes rencontrés
|
||||
|
||||
### Redpanda (Kafka-compatible)
|
||||
- **Status** : ❌ Toujours crashé (exit 1)
|
||||
- **Cause** : Commande `rpk redpanda start` échoue (le flag `--mode dev` n'existe pas dans v24.3.14)
|
||||
- **Tentatives** :
|
||||
- Enlèvement de `--mode dev` → toujours crash
|
||||
- Exécution manuelle → affiche l'aide (commande invalide)
|
||||
- **Décision** : Laisser de côté pour l'instant, Pulsar suffit pour l'ingestion
|
||||
|
||||
## 📊 État des services
|
||||
|
||||
| Service | Status | Notes |
|
||||
|---------|--------|-------|
|
||||
| Simulateur | ✅ Actif (1s) | Pulsar OK, MQTT/Brokers désactivables |
|
||||
| Pulsar | ✅ Fonctionnel | Client binaire 6650 OK |
|
||||
| Pulsar Distribution | ✅ Actif | Republie vers tous les brokers |
|
||||
| EMQX (MQTT) | ✅ Reçoit | Via distribution Pulsar |
|
||||
| Orion-LD (NGSI-LD) | ✅ Reçoit | Entités AirQuality créées |
|
||||
| Stellio (NGSI-LD) | ⚠️ À vérifier | Via distribution |
|
||||
| FROST (OGC) | ⚠️ À vérifier | Via distribution |
|
||||
| Redpanda | ❌ Crash | Problème de démarrage RPK |
|
||||
| InfluxDB | ✅ Actif | Via simulateur direct |
|
||||
| Grafana | ⚠️ No Data | Dashboards à configurer |
|
||||
|
||||
## 📋 Prochaines étapes
|
||||
|
||||
1. **Vérifier Stellio + FROST** via distribution Pulsar
|
||||
2. **Désactiver l'envoi direct** du simulateur vers les brokers (pour respecter l'architecture)
|
||||
3. **Configurer Grafana** avec datasources InfluxDB + Pulsar/FROST
|
||||
4. **Remplacer Redpanda** par Kafka simple ou résoudre le problème
|
||||
|
||||
## 🔗 URLs importantes
|
||||
|
||||
- **Pulsar Distribution logs** : `docker logs smart-city-pulsar-distribution --tail 50`
|
||||
- **Grafana** : https://grafana.digitribe.fr/d/smartcity-martinique-2026
|
||||
- **Orion-LD entities** : `curl http://localhost:2026/ngsi-ld/v1/entities`
|
||||
- **Gitea** : https://gitea.digitribe.fr/eric/smart-city-digital-twin-martinique
|
||||
|
||||
---
|
||||
*Session en cours — Pulsar Distribution opérationnel*
|
||||
## Décisions
|
||||
- Ne pas remplacer Redpanda par Kafka (demande utilisateur)
|
||||
- Prometheus pour monitoring technique uniquement (pas d'ingestion payloads)
|
||||
- Architecture : Simulator → Pulsar → Distribution → Brokers (MQTT, NGSI-LD, FROST)
|
||||
Reference in New Issue
Block a user