Observability / April 21, 2026

Stream agent event lifecycle to your observability stack

Delivery analytics view

When an agent fails, your team already has a dashboard they look at. It's probably Datadog, Axiom, or a logs view in Grafana. Delivery history in the Hooksbase dashboard is useful for deep inspection, but on-call wants every signal in one place.

Event drains stream Hooksbase delivery lifecycle events to external sinks without coupling those sinks to the delivery path. If a drain fails, deliveries keep moving — the drain just pauses and surfaces an issue.

Lifecycle events that get streamed

Each drain receives these event types:

  • delivery.created — event accepted, about to be dispatched
  • attempt.completed — an attempt finished (success or failure)
  • delivery.succeeded — terminal success
  • delivery.failed — terminal failure (retries exhausted)
  • delivery.dlq_entered — delivery moved to DLQ

Each event carries the delivery ID, webhook ID, attempt count, response status, duration, and provider metadata where applicable.

Pick a sink

Hooksbase supports five drain targets:

  • HTTP webhook — your own ingest endpoint for full control, optionally HMAC-signed with the x-signature-sha256 header
  • Axiom — direct integration with Axiom's ingest API
  • Datadog — direct integration with Datadog logs
  • Object storage (S3-compatible) — one JSON object per drain event, useful for cold archival
  • OTLP HTTP — OTLP logs over HTTP with JSON payloads, for OpenTelemetry-native stacks

Tier limits

Event drains are available starting on Pro ($79/mo):

  • Free, Starter: 0 drains
  • Pro: 1 drain
  • Business: 3 drains
  • Enterprise: unlimited

A single Axiom or Datadog drain on Pro is usually enough to start. Business and Enterprise tiers add headroom if you stream to multiple sinks.

Configure a drain

In the dashboard:

  1. Navigate to Event drains under your project
  2. Click Create drain, pick the sink type
  3. Paste the sink config (Axiom API token, Datadog API key, S3 credentials, etc.)
  4. Optionally filter by webhook ID or event type (both-or-null applies globally)
  5. Save

The drain starts receiving events on the next delivery lifecycle transition.

Drain isolation

If a drain fails repeatedly (configurable: default 10 consecutive failures), Hooksbase auto-pauses it. A persisted drain_paused issue appears in your issue history. Resume it from the API once the sink is healthy again.

What next

Related guides