global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:

  # ── Simulator (host) ─────────────────────────────────────────────────────────
  - job_name: 'simulator'
    static_configs:
      - 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'
    static_configs:
      - targets: ['smart-city-influxdb:8086']
        labels:
          service: influxdb
          environment: martinique

  # ── 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']
        labels:
          service: redpanda
          environment: martinique

  # ── 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-grafana:3000']
        labels:
          service: grafana
          environment: martinique

  # ── Docker Exporter (Custom Python exporter) ──────────────────────
  - job_name: 'docker-exporter'
    static_configs:
      - targets: ['172.17.0.1:8005']
        labels:
          service: docker-exporter
          environment: martinique
