From ca1e037347c7a0fdc3dcaa7d118e4d0856cc65a7 Mon Sep 17 00:00:00 2001 From: Eric FELIXINE Date: Tue, 5 May 2026 11:33:32 -0400 Subject: [PATCH] docs: session resume 2026-05-05 afternoon - Grafana/FROST/Redpanda/Prometheus status --- session_resume_2026-05-05-afternoon.md | 115 +++++++++++-------------- 1 file changed, 48 insertions(+), 67 deletions(-) diff --git a/session_resume_2026-05-05-afternoon.md b/session_resume_2026-05-05-afternoon.md index 38dabe0b..f7e39194 100644 --- a/session_resume_2026-05-05-afternoon.md +++ b/session_resume_2026-05-05-afternoon.md @@ -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) \ No newline at end of file