C
APM & Infrastructure

Service Catalog

Auto-registered service inventory with owner, repo, on-call, SLO.

How it works

Every span and metric carries a `service_name`. The catalog watches for new values and creates a service row automatically on first telemetry. From the UI, attach metadata: owner team, source-code link, on-call rotation URL, SLO target (e.g. p95 latency < 300ms). Funnel then evaluates the SLO continuously against incoming spans and surfaces burn-rate alerts.

What this lets you do

  • Zero-effort service inventory — list grows as your stack grows
  • Per-service SLO scoreboard tied to real traffic
  • One-click jump from any incident to the on-call rotation URL
  • Service ownership becomes discoverable, not tribal knowledge

Get it running

  1. 1 Send any telemetry with `service_name` in attributes
  2. 2 Open `Catalog`, fill in owner / repo / on-call / SLO for each service
  3. 3 The SLO scoreboard updates every minute via Oban

Code examples

# The "checkout" service auto-registers on first metric
curl -X POST https://funnel.example.com/v1/metrics \
  -H "Authorization: Bearer st_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "metrics": [{
      "name":  "http.server.duration_ms",
      "kind":  "gauge",
      "value": 152.0,
      "attributes": { "service": "checkout" }
    }]
  }'

# Open /app/p/:org/:project/catalog — "checkout" is listed.
Where to find it
/app/p/:org/:project/catalog
Open in app →