feat: distribution service + redpanda consumer + updated flow diagram

- Add Pulsar distribution service (consumes smartcity-* → MQTT + context brokers)
- Add Redpanda → InfluxDB consumer (redpanda/consumer.py)
- Update FIXED_LOCATIONS with exact OpenRemote asset coordinates
- Fix Pulsar topics (underscore: smartcity-traffic not smartcity-traffic)
- Fix prometheus.yml endpoints (Redpanda:9644, comment inactive stacks)
- Add docker-compose.redpanda-consumer.yml
This commit is contained in:
Eric FELIXINE
2026-05-05 22:12:38 -04:00
parent 742b437ed9
commit c06acf4fe8
9 changed files with 2242 additions and 434 deletions

View File

@@ -3,43 +3,93 @@ global:
evaluation_interval: 15s
scrape_configs:
# Mosquitto MQTT Broker
- job_name: 'mosquitto'
static_configs:
- targets: ['mosquitto-exporter:9234']
scrape_interval: 10s
# Orion-LD (FIWARE)
- job_name: 'orion-ld'
# ── Simulator (host) ─────────────────────────────────────────────────────────
- job_name: 'simulator'
static_configs:
- targets: ['fiware-gis-quickstart-orion-1:1026']
- targets: ['172.17.0.1:8001']
labels:
service: smart-city-simulator
environment: martinique
# ── EMQX ──────────────────────────────────────────────────────────────────
# EMQX v5 expose /api/v5/metrics (format Prometheus) — dispo via Traefik
# Activer dans EMQX: conf/api6 => metrics.enabled = true
# Note: endpoint non exposé publiquement par défaut → via smartcity-shared
# - job_name: 'emqx'
# metrics_path: '/api/v5/metrics'
# static_configs:
# - targets: ['emqx_emqx_1:8081']
# labels:
# service: emqx
# environment: martinique
# ── Mosquitto ─────────────────────────────────────────────────────────────
# Mosquitto n'a pas de /metrics natif → mosquitto_exporter (non déployé)
# ── BunkerM ──────────────────────────────────────────────────────────────
# BunkerM : vérifier si /metrics est exposé
# ── Stellio ───────────────────────────────────────────────────────────────
# Stellio actuator: vérifier activation dans docker-compose
# → actuator.prometheus.enabled=true dans application.yml
# - job_name: 'stellio'
# metrics_path: '/actuator/prometheus'
# static_configs:
# - targets: ['stellio-api-gateway:8080']
# labels:
# service: stellio
# environment: martinique
# ── Orion-LD ──────────────────────────────────────────────────────────────
# Orion-LD : compiler avec --with-metrics pour activer /metrics
# ── FROST-Server ──────────────────────────────────────────────────────────
# FROST : vérifier si /metrics est activé dans la config
# - job_name: 'frost'
# static_configs:
# - targets: ['frost_http-web-1:8080']
# labels:
# service: frost
# environment: martinique
# ── InfluxDB ──────────────────────────────────────────────────────────────
- job_name: 'influxdb'
metrics_path: '/metrics'
scrape_interval: 10s
# FROST-Server (SensorThings)
- job_name: 'frost-server'
static_configs:
- targets: ['frost_http-web-1:8080']
metrics_path: '/FROST-Server/metrics'
scrape_interval: 10s
- targets: ['smart-city-influxdb:8086']
labels:
service: influxdb
environment: martinique
# Stellio NGSI-LD
- job_name: 'stellio'
static_configs:
- targets: ['stellio:8080']
metrics_path: '/metrics'
scrape_interval: 10s
# Redpanda Metrics (Admin API)
# ── Redpanda ────────────────────────────────────────────────────────────────
# Redpanda broker expose /public_metrics sur le port admin 9644
- job_name: 'redpanda'
metrics_path: '/public_metrics'
static_configs:
- targets: ['smart-city-redpanda:9644']
metrics_path: '/metrics'
scrape_interval: 10s
labels:
service: redpanda
environment: martinique
# Pulsar Metrics (Admin API)
- job_name: 'pulsar'
# ── OpenRemote ────────────────────────────────────────────────────────────
# OpenRemote Manager : actuator.prometheus doit être configuré
# Dans OR 3.x, metrics disponibles via /actuator/prometheus si activé
# Note: endpoint non exposé via Traefik actuellement
# → Activer via la config Manager: management.endpoints.web.exposure.include=prometheus,health,info
# - job_name: 'openremote'
# metrics_path: '/actuator/prometheus'
# static_configs:
# - targets: ['openremote-manager-1:8080']
# labels:
# service: openremote
# environment: martinique
# ── Grafana ────────────────────────────────────────────────────────────────
# Grafana native /metrics (Plugin sidecar Prometheus)
- job_name: 'grafana'
static_configs:
- targets: ['smart-city-pulsar:8080']
metrics_path: '/metrics'
scrape_interval: 10s
- targets: ['smart-city-grafana:3000']
labels:
service: grafana
environment: martinique