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.
79 lines
2.0 KiB
Plaintext
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")
|
|
}
|
|
}
|
|
}
|