global: scrape_interval: 15s evaluation_interval: 15s rule_files: - /etc/prometheus/rules/*.yml alerting: alertmanagers: - static_configs: - targets: ["alertmanager:9093"] scrape_configs: - job_name: prometheus static_configs: - targets: ["prometheus:9090"] - job_name: node-exporter static_configs: - targets: ["node-exporter:9100"] - job_name: loki static_configs: - targets: ["loki:3100"] - job_name: tempo static_configs: - targets: ["tempo:3200"] - job_name: alloy static_configs: - targets: ["alloy:12345"] - job_name: grafana static_configs: - targets: ["grafana:3000"] # Application scrape jobs -- the equivalent of the Ansible role's # `prometheus_extra_scrape_jobs`. Re-apply with `kubectl apply -k k8s/`. # # Ledgerline runs on czy with no service ports published. Each service # serves metrics on its own :9464, which czy's Traefik exposes as # https://ledgerline.vione.cloud/metrics/ behind basic auth # (docker-compose.traefik.yml). All seven targets share one address, so the # `service` label is what tells them apart; the relabels derive the path # and a readable instance from it. - job_name: ledgerline scheme: https basic_auth: username_file: /etc/prometheus/secrets/username password_file: /etc/prometheus/secrets/password static_configs: - targets: ["ledgerline.vione.cloud"] labels: { service: gateway } - targets: ["ledgerline.vione.cloud"] labels: { service: ledger } - targets: ["ledgerline.vione.cloud"] labels: { service: fraud } - targets: ["ledgerline.vione.cloud"] labels: { service: sanctions } - targets: ["ledgerline.vione.cloud"] labels: { service: insights } - targets: ["ledgerline.vione.cloud"] labels: { service: notifier } - targets: ["ledgerline.vione.cloud"] labels: { service: audit } relabel_configs: - source_labels: [service] target_label: __metrics_path__ replacement: /metrics/$1 - source_labels: [service] target_label: instance