diff --git a/docker/alloy/prometheus.alloy b/docker/alloy/prometheus.alloy index dd9ebf09..f57f1429 100644 --- a/docker/alloy/prometheus.alloy +++ b/docker/alloy/prometheus.alloy @@ -60,9 +60,40 @@ discovery.relabel "prometheus" { replacement = "/metrics" } } - prometheus.scrape "docker" { targets = discovery.relabel.prometheus.output forward_to = [prometheus.remote_write.default.receiver] scrape_interval = "30s" } + +prometheus.exporter.redis "docker" { + redis_addr = "redis:6379" +} +discovery.relabel "redis" { + targets = prometheus.exporter.redis.docker.targets + rule { + target_label = "job" + replacement = "redis" + } +} +prometheus.scrape "redis" { + targets = discovery.relabel.redis.output + forward_to = [prometheus.remote_write.default.receiver] + scrape_interval = "30s" +} + +prometheus.exporter.kafka "docker" { + kafka_uris = ["kafka:9092"] +} +discovery.relabel "kafka" { + targets = prometheus.exporter.kafka.docker.targets + rule { + target_label = "job" + replacement = "kafka" + } +} +prometheus.scrape "kafka" { + targets = discovery.relabel.kafka.output + forward_to = [prometheus.remote_write.default.receiver] + scrape_interval = "30s" +} diff --git a/docker/docker-compose-prometheus.yml b/docker/docker-compose-prometheus.yml index 3260eef4..3f858e92 100644 --- a/docker/docker-compose-prometheus.yml +++ b/docker/docker-compose-prometheus.yml @@ -1,7 +1,6 @@ --- volumes: akvorado-prometheus: - akvorado-jmx-agent: services: # Store metrics @@ -20,6 +19,10 @@ services: # Those are not the defaults - --web.enable-remote-write-receiver - --web.external-url=/prometheus + healthcheck: + interval: 20s + test: ["CMD", + "promtool", "check", "healthy", "--url=http://127.0.0.1:9090/prometheus"] expose: - 9090/tcp labels: @@ -37,7 +40,10 @@ services: volumes: - ./alloy/prometheus.alloy:/etc/alloy/prometheus.alloy depends_on: - - prometheus + prometheus: + condition: service_healthy + kafka: + condition: service_healthy # Node exporter for host metrics node-exporter: @@ -81,21 +87,3 @@ services: - 8080/tcp labels: - metrics.port=8080 - - # Kafka monitoring - jmx-exporter-downloader: - image: alpine:latest - command: /usr/local/bin/jmx-exporter-download.sh - volumes: - - akvorado-jmx-agent:/opt/jmx-exporter - - ./jmx-exporter-download.sh:/usr/local/bin/jmx-exporter-download.sh - kafka: - depends_on: - jmx-exporter-downloader: - condition: service_completed_successfully - environment: - KAFKA_OPTS: >- - -javaagent:/opt/jmx-exporter/jmx_prometheus_javaagent.jar=9100:/etc/kafka/jmx-exporter.yaml - volumes: - - akvorado-jmx-agent:/opt/jmx-exporter - - ./kafka-jmx-exporter-config.yaml:/etc/kafka/jmx-exporter.yaml diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index cb42d0cc..7487ffc3 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -47,10 +47,7 @@ services: healthcheck: interval: 20s test: ["CMD", - "env", "-u", "KAFKA_OPTS", "/opt/kafka/bin/kafka-topics.sh", "--list", "--bootstrap-server", "kafka:9092"] - labels: - - metrics.port=9100 kafka-ui: extends: