k8s/ is now a faithful port of the mentor's Ansible Grafana stack (Prometheus, Alertmanager, Loki, Tempo, Alloy, Grafana, node-exporter) for the ledgerline-observability namespace on falken: same versions and configs, one *.vione.cloud ingress per tool behind Traefik basic auth, secrets generated by create-secrets.sh into gitignored files. Two fixes over the Ansible role, both verified live: Tempo's metrics-generator needs traces_storage or it runs no processors, and Prometheus needs exemplar-storage to keep exemplars. Ledgerline stays on czy; an Alloy agent in the Traefik override ships its container logs to Loki. Roadmap and CLAUDE.md now point at k8s/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
46 lines
1.2 KiB
Plaintext
46 lines
1.2 KiB
Plaintext
// Alloy log agent on czy, where Ledgerline's containers run.
|
|
//
|
|
// This is the Docker half of the platform's Alloy config
|
|
// (ansible/roles/observability/templates/grafana-stack/config/alloy/config.alloy.j2),
|
|
// moved here because the platform itself now runs on k3s (k8s/), where there is
|
|
// no Docker socket. Components are unchanged except loki.write, which pushes
|
|
// to the cluster's Loki over HTTPS with basic auth instead of http://loki:3100.
|
|
//
|
|
// OTLP is NOT received here: apps send spans to the platform's Alloy at
|
|
// https://otlp.vione.cloud (k8s/alloy/config.alloy).
|
|
|
|
logging {
|
|
level = "info"
|
|
}
|
|
|
|
discovery.docker "local" {
|
|
host = "unix:///var/run/docker.sock"
|
|
}
|
|
|
|
discovery.relabel "docker" {
|
|
targets = discovery.docker.local.targets
|
|
|
|
rule {
|
|
source_labels = ["__meta_docker_container_name"]
|
|
regex = "/(.*)"
|
|
target_label = "container"
|
|
}
|
|
}
|
|
|
|
loki.source.docker "local" {
|
|
host = "unix:///var/run/docker.sock"
|
|
targets = discovery.relabel.docker.output
|
|
forward_to = [loki.write.default.receiver]
|
|
}
|
|
|
|
loki.write "default" {
|
|
endpoint {
|
|
url = sys.env("LOKI_PUSH_URL")
|
|
|
|
basic_auth {
|
|
username = sys.env("LOKI_PUSH_USER")
|
|
password = sys.env("LOKI_PUSH_PASSWORD")
|
|
}
|
|
}
|
|
}
|