feat: Add Redpanda Console, Pulsar Distribution Service, and Grafana Dashboards

- Add Redpanda Console service (port 28080, Traefik integration)
- Add Pulsar Distribution Service (Pulsar -> Brokers)
- Create Grafana dashboards for Redpanda, Pulsar, and Smart City Ingestion
- Configure Prometheus targets for Pulsar and Redpanda metrics
- Fix FROST URL in distribution service
- Create session resume for 2026-05-05
This commit is contained in:
Eric FELIXINE
2026-05-05 13:49:00 -04:00
parent ca1e037347
commit 8642ed7001
13 changed files with 710 additions and 53 deletions

View File

@@ -1,8 +1,11 @@
# Apache Pulsar Standalone - Smart City Digital Twin Martinique
# HTTP Admin UI: https://pulsar.digitribe.fr (via Traefik)
# HTTP API: http://smart-city-pulsar:8080/admin/v2
# Binary: pulsar://smart-city-pulsar:6650
# Apache Pulsar Stack - Smart City Digital Twin Martinique
# Includes: Pulsar Standalone + Pulsar Manager
# Pulsar Admin: https://pulsar.digitribe.fr/admin
# Pulsar Manager: https://pulsar.digitribe.fr
version: '3.8'
services:
# Pulsar Standalone
pulsar:
image: apachepulsar/pulsar:3.2.0
container_name: smart-city-pulsar
@@ -28,10 +31,66 @@ services:
start_period: 60s
labels:
- "traefik.enable=true"
- "traefik.http.routers.pulsar.rule=Host(`pulsar.digitribe.fr`)"
- "traefik.http.routers.pulsar.entrypoints=websecure"
- "traefik.http.routers.pulsar.tls=true"
- "traefik.http.services.pulsar.loadbalancer.server.port=8080"
- "traefik.http.routers.pulsar-admin.rule=Host(`pulsar.digitribe.fr`) && PathPrefix(`/admin`, `/ws`, `/lookup`)"
- "traefik.http.routers.pulsar-admin.entrypoints=websecure"
- "traefik.http.routers.pulsar-admin.tls=true"
- "traefik.http.services.pulsar-admin.loadbalancer.server.port=8080"
# Pulsar Manager - Web UI
pulsar-manager:
image: apachepulsar/pulsar-manager:v0.4.0
container_name: smart-city-pulsar-manager
restart: unless-stopped
depends_on:
pulsar:
condition: service_healthy
environment:
- URL=jdbc:postgresql://127.0.0.1:5432/pulsar_manager
- POSTGRES_PASSWORD=Digitribe972
networks:
- traefik-public
- smartcity-shared
ports:
- "7750:7750"
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:7750 || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 120s
labels:
- "traefik.enable=true"
- "traefik.http.routers.pulsar-manager.rule=Host(`pulsar.digitribe.fr`)"
- "traefik.http.routers.pulsar-manager.entrypoints=web"
- "traefik.http.services.pulsar-manager.loadbalancer.server.port=7750"
# Pulsar Distribution Service - Consumer → Republish to Brokers
pulsar-distribution:
build:
context: .
dockerfile: Dockerfile
container_name: smart-city-pulsar-distribution
restart: unless-stopped
depends_on:
- pulsar
environment:
- PULSAR_HOST=smart-city-pulsar
- PULSAR_PORT=6650
- EMQX_HOST=emqx_emqx_1
- EMQX_PORT=1883
- MOSQUITTO_HOST=mosquitto-traefik
- MOSQUITTO_PORT=1883
- ORION_URL=http://fiware-gis-quickstart-orion-1:1026
- STELLIO_URL=http://stellio-api-gateway:8080
- FROST_URL=http://frost-api-8090:8080/FROST-Server/v1.1
networks:
- smartcity-shared
healthcheck:
test: ["CMD-SHELL", "ps aux | grep -q distribution || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
networks:
traefik-public:
@@ -41,3 +100,4 @@ networks:
volumes:
pulsar-data:
pulsar-manager-data: