Files
selfheal-lab-gitops/vm/postgres-common/config.alloy
T
seon a500c3d40c fix: Alloy block syntax, dpkg lock wait, hitl local bind, ai-reader nodes RBAC, harness image f30af2a
- Alloy 설정 3종: rule 블록을 한 줄 쉼표 나열에서 줄바꿈 속성으로 수정(실측: k8s DaemonSet
  CrashLoopBackOff, db-replica alloy.service "expected TERMINATOR, got ,"). alloy fmt로 3종 파싱 확인.
- vm/postgres-common/alloy.sh: apt에 DPkg::Lock::Timeout=600(db-primary에서 unattended-upgrades 잠금으로 100 종료).
- vm/ai-env/compose.yaml: hitl 8081을 127.0.0.1에만 바인딩(agent는 compose 네트워크로 접근).
- workloads/rbac/ai-reader.yaml: nodes get/list/watch ClusterRole 추가(agent get_k8s(nodes) selfcheck 거부 해소).
- vm/harness/image.tag: f30af2a(POST /proposals/{token}/approve·reject 포함 러너).
2026-10-08 01:53:06 +09:00

40 lines
1.2 KiB
Plaintext

// 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" }
}