# Example Prometheus scrape snippets for Descrybe v2. # Merge under scrape_configs (or use as a separate file included by your Prometheus). # Replace placeholder hosts with private / loopback / mesh DNS only. # Do NOT scrape the public VIP. No scrape secrets belong in this file. # # Docs: docs/production-readiness.md#ops-prometheus-scrape # Checklist: docs/production-checklist.md#1d-metrics-scrape--alerts-cutover scrape_configs: # API HTTP RED — same process as HTTP_ADDR (local default :28471). - job_name: descrybe-api metrics_path: /metrics scrape_interval: 15s static_configs: - targets: - "127.0.0.1:28471" # TODO(ops): private mesh DNS, e.g. api.internal:8080 labels: service: descrybe-api # Worker sync series — only when METRICS_ADDR is set on cmd/worker. - job_name: descrybe-worker metrics_path: /metrics scrape_interval: 15s static_configs: - targets: - "127.0.0.1:9091" # TODO(ops): matches METRICS_ADDR (loopback / private only) labels: service: descrybe-worker # Worker freshness via /readyz (not a /metrics series). # /readyz returns 503 when worker heartbeat is missing or stale (>60s). # Requires blackbox_exporter; adjust blackbox address + module to your install. - job_name: descrybe-readyz metrics_path: /probe params: module: [http_2xx] scrape_interval: 15s static_configs: - targets: - "http://127.0.0.1:28471/readyz" # TODO(ops): private API base + /readyz labels: service: descrybe-api probe: readyz relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: "127.0.0.1:9115" # TODO(ops): blackbox_exporter listen address