Files
Thomas Gräfenstein 926766346c add cAdvisor and document detailed alert queries in README
Add cAdvisor container to the monitoring stack for container-level
metrics. Configure Alloy to scrape cAdvisor. Expand the README
Recommended Alerts section with exact PromQL/LogQL queries, thresholds,
and Grafana alert rule configuration for all five alerts.
2026-03-22 22:51:22 +01:00

79 lines
2.0 KiB
Plaintext

// ============================================================
// Docker log collection -> Grafana Cloud Loki
// ============================================================
discovery.docker "containers" {
host = "http://docker-socket-proxy:2375"
}
discovery.relabel "containers" {
targets = discovery.docker.containers.targets
rule {
source_labels = ["__meta_docker_container_name"]
target_label = "container"
}
rule {
source_labels = ["__meta_docker_container_name"]
target_label = "job"
}
}
loki.source.docker "containers" {
host = "http://docker-socket-proxy:2375"
targets = discovery.relabel.containers.output
forward_to = [loki.write.grafana_cloud.receiver]
}
loki.write "grafana_cloud" {
endpoint {
url = env("GRAFANA_CLOUD_LOKI_URL")
basic_auth {
username = env("GRAFANA_CLOUD_LOKI_USER")
password = env("GRAFANA_CLOUD_API_KEY")
}
}
}
// ============================================================
// Node exporter metrics -> Grafana Cloud Prometheus
// ============================================================
prometheus.exporter.unix "node" {
procfs_path = "/host/proc"
sysfs_path = "/host/sys"
rootfs_path = "/host/root"
}
prometheus.scrape "node" {
targets = prometheus.exporter.unix.node.targets
forward_to = [prometheus.remote_write.grafana_cloud.receiver]
scrape_interval = "60s"
}
// ============================================================
// cAdvisor container metrics -> Grafana Cloud Prometheus
// ============================================================
prometheus.scrape "cadvisor" {
targets = [{"__address__" = "cadvisor:8080"}]
forward_to = [prometheus.remote_write.grafana_cloud.receiver]
scrape_interval = "60s"
metrics_path = "/metrics"
}
prometheus.remote_write "grafana_cloud" {
endpoint {
url = env("GRAFANA_CLOUD_PROMETHEUS_URL")
basic_auth {
username = env("GRAFANA_CLOUD_PROMETHEUS_USER")
password = env("GRAFANA_CLOUD_API_KEY")
}
}
}