// ############################### // #### Metrics Configuration #### // ############################### // Host Cadvisor on the Docker socket to expose container metrics. prometheus.exporter.cadvisor "example" { docker_only = true } discovery.relabel "example" { targets = prometheus.exporter.cadvisor.example.targets rule { target_label = "job" replacement = "integrations/docker" } rule { target_label = "instance" replacement = constants.hostname } } // Configure a prometheus.scrape component to collect cadvisor metrics. prometheus.scrape "scraper" { targets = discovery.relabel.example.output forward_to = [ prometheus.remote_write.demo.receiver ] scrape_interval = "10s" } // Configure a prometheus.remote_write component to send metrics to a Prometheus server. prometheus.remote_write "demo" { endpoint { url = "http://prometheus:9090/api/v1/write" } } // ############################### // #### Logging Configuration #### // ############################### // Discover Docker containers and extract metadata. discovery.docker "linux" { host = "unix:///var/run/docker.sock" } // Define a relabeling rule to create a service name from the container name. discovery.relabel "logs_integrations_docker" { targets = [] rule { source_labels = ["__meta_docker_container_name"] regex = "/(.*)" target_label = "container_name" } rule { target_label = "instance" replacement = constants.hostname } } // Configure a loki.source.docker component to collect logs from Docker containers. loki.source.docker "default" { host = "unix:///var/run/docker.sock" targets = discovery.docker.linux.targets relabel_rules = discovery.relabel.logs_integrations_docker.rules forward_to = [loki.write.local.receiver] } loki.write "local" { endpoint { url = "http://10.0.141.200:3100/loki/api/v1/push" } }