// Alloy on db-primary / db-replica (design 4.1 / 4.3): postgres exporter (built-in collectors: pg_replication_lag_seconds, // pg_up, pg_stat_*) + custom pg_is_wal_replay_paused -> Mimir; PostgreSQL logs -> Loki. instance = VM name. prometheus.exporter.postgres "db" { data_source_names = [sys.env("PG_DSN")] custom_queries_config_path = "/etc/alloy/queries.yaml" disable_settings_metrics = true } prometheus.scrape "db" { job_name = "postgres" scrape_interval = "15s" targets = prometheus.exporter.postgres.db.targets forward_to = [prometheus.relabel.instance.receiver] } prometheus.relabel "instance" { forward_to = [prometheus.remote_write.mimir.receiver] rule { target_label = "instance", replacement = sys.env("INSTANCE") } } prometheus.remote_write "mimir" { endpoint { url = "http://10.20.0.10:9009/api/v1/push" } } local.file_match "pglogs" { path_targets = [{ "__path__" = "/var/log/postgresql/*.log", "job" = "postgres", "instance" = sys.env("INSTANCE") }] } loki.source.file "pglogs" { targets = local.file_match.pglogs.targets forward_to = [loki.write.loki.receiver] } loki.write "loki" { endpoint { url = "http://10.20.0.10:3100/loki/api/v1/push" } }