Documentation
Observability and Docker logs
Configure Prometheus, Loki, Alloy, Grafana, and Docker log ingestion.
Use this pattern when a local workspace needs metrics, logs, dashboards, and Docker container log ingestion.
alloy implicitly enables loki. Add docker when you also want Docker daemon metrics support.
schema_version = 1
tld = "local.dev.test"
enabled = [
"docker",
"prometheus",
"loki",
"alloy",
"grafana",
]
[prometheus]
scrape_config_files = ["./monitoring/prometheus.yml"]
[alloy]
import_files = [
{ name = "app", path = "./monitoring/config.alloy" },
]
blocks = [
'app.logs "local_app_logs" { forward_to = loki.write.default.receiver }',
]
[alloy.docker_logs]
enabled = true
refresh_interval = "5s"
[alloy.docker_logs.labels]
environment = "local"
origin = "docker"
[[alloy.docker_logs.relabel]]
source_labels = ["__meta_docker_container_label_service"]
target_label = "service"
[[alloy.docker_logs.relabel]]
source_labels = ["__meta_docker_container_name"]
target_label = "container"
[grafana]
[[grafana.dashboard_dirs]]
dir = "./grafana/dashboards"
folder = "Apps"What to customize
prometheus.scrape_config_files: point to YAML scrape configs in your repository.alloy.import_files: import Alloy modules that define reusable pipelines.alloy.blocks: append the raw Alloy blocks needed by your local stack.alloy.docker_logs.labels: add stable labels that make local logs searchable.alloy.docker_logs.relabel: map Docker metadata labels that actually exist on your containers.grafana.dashboard_dirs: point to directories containing*.jsondashboards.
For exact field defaults, see the [alloy], [prometheus], and [grafana] reference sections.