docker: monitor Redis and Kafka using Alloy internal exporter

This commit is contained in:
Vincent Bernat
2025-08-28 11:52:45 +02:00
parent 0ad0128fc6
commit 560113e3af
3 changed files with 40 additions and 24 deletions

View File

@@ -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"
}

View File

@@ -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

View File

@@ -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: