Observability Export

Observability Export lets you send webhook delivery traces and metrics to your existing observability stack via OpenTelemetry (OTLP/HTTP). See your webhook pipeline health alongside the rest of your infrastructure in Grafana, New Relic, Honeycomb, Axiom, or any OTLP-compatible tool.

Plan Availability: Observability Export is available on Pro and Business plans.

  • Pro: 2 export configs, traces + metrics
  • Business: 10 export configs, traces + metrics + logs, resource filtering

How It Works

Hookbase instruments two key stages of the webhook pipeline:

  1. Ingest — when a webhook arrives, Hookbase creates a hookbase.ingest trace span and records payload size, duration, and event count metrics.
  2. Delivery — when the webhook is delivered to your destination, Hookbase creates a hookbase.delivery span and records latency, success/failure, and retry metrics.

Both spans share a traceId so you can see the full journey in your observability tool: webhook received to delivery completed.

Telemetry is exported via fire-and-forget HTTP calls that never block your webhook processing. If your observability endpoint is down, Hookbase tracks consecutive errors and auto-disables the export after 10 failures.

Supported Providers

ProviderEndpointAuth Header
Grafana Cloudhttps://otlp-gateway-prod-{region}.grafana.net/otlp/Authorization: Basic <base64(instanceId:token)>
New Relichttps://otlp.nr-data.net/ (US) or https://otlp.eu01.nr-data.net/ (EU)Api-Key: <INGEST-LICENSE key>
Honeycombhttps://api.honeycomb.io/x-honeycomb-team: <api-key>
Axiomhttps://api.axiom.co/v1/traces/Authorization: Bearer <api-token>
Custom OTLPAny endpoint supporting OTLP/HTTP JSONCustom headers

Setup

Via Dashboard

  1. Go to Settings then Observability
  2. Click Add Export
  3. Select your provider — the endpoint auto-fills
  4. Enter your auth credentials
  5. Choose export types (traces, metrics, logs)
  6. Set sampling rate (1-100%)
  7. Click Create
  8. Click the Test button to verify connectivity

Via API

curl -X POST "https://api.hookbase.app/api/observability" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Grafana Cloud",
    "provider": "grafana",
    "endpoint": "https://otlp-gateway-prod-us-west-0.grafana.net/otlp/",
    "authHeaders": {
      "Authorization": "Basic base64encodedcredentials"
    },
    "exportTypes": {
      "traces": true,
      "metrics": true,
      "logs": false
    },
    "samplingRate": 1.0
  }'

Provider Setup Guides

Grafana Cloud

  1. Sign in at grafana.com and select your stack
  2. Go to Connections then Add new connection and search OpenTelemetry (OTLP)
  3. Copy the OTLP endpoint (includes your region)
  4. Generate an API token under My Account then Security then API Keys
  5. Build the Basic auth value: echo -n "instanceId:apiToken" | base64
  6. In Hookbase, use Authorization as the header key and Basic <base64value> as the value

To view data: Explore then data source Tempo then Search then Service Name = hookbase

New Relic

  1. Go to your profile then API Keys
  2. Click Create a key and select type INGEST - LICENSE
  3. Copy the key
  4. In Hookbase, use Api-Key as the header key

To view data: Query Your Data then run SELECT * FROM Span WHERE service.name = 'hookbase' SINCE 1 hour ago

Honeycomb

  1. Go to Account then Team Settings then API Keys
  2. Create or copy an API key
  3. In Hookbase, use x-honeycomb-team as the header key

To view data: Home then look for the hookbase dataset then Query tab

Axiom

  1. Go to Settings then API Tokens
  2. Create a token with ingest permissions
  3. In Hookbase, use Authorization as the header key and Bearer <token> as the value

Span Attributes

All spans include these attributes:

AttributeDescription
hookbase.org.idOrganization ID
hookbase.source.idSource ID
hookbase.event.idEvent ID
hookbase.delivery.idDelivery ID (delivery spans only)
hookbase.route.idRoute ID (delivery spans only)
hookbase.destination.idDestination ID (delivery spans only)
hookbase.delivery.attemptAttempt number (delivery spans only)
http.status_codeHTTP response status (delivery spans only)

Metrics

MetricTypeDescription
hookbase.events.receivedCounterWebhooks received
hookbase.ingest.duration_msGaugeIngest processing time
hookbase.ingest.payload_bytesGaugePayload size in bytes
hookbase.delivery.latency_msGaugeDelivery round-trip time
hookbase.delivery.successCounterSuccessful deliveries
hookbase.delivery.failureCounterFailed deliveries
hookbase.delivery.retryCounterRetried deliveries

Sampling

Set a sampling rate between 1% and 100% to control data volume. At 100% (default), every event is exported. At 10%, roughly 1 in 10 events sends telemetry. Sampling is applied per-export-config, so you can have a high-fidelity config for critical routes and a sampled config for high-volume sources.

Resource Filtering (Business)

On the Business plan, you can filter which sources and routes export telemetry. Add source or route IDs to the resource filter — only events matching those resources will be exported. This is useful for focusing observability on critical pipelines without paying for telemetry on every webhook.

Auto-Disable

If an export endpoint returns errors on 10 consecutive attempts, Hookbase automatically disables the config to avoid wasting resources. The config shows an "Auto-disabled" status in the dashboard. Fix the endpoint issue and re-enable it from Settings.

Security

  • Auth headers are encrypted at rest using AES-256-GCM
  • No webhook payload data is included in telemetry — only metadata (IDs, status codes, timing)
  • Telemetry export never blocks webhook processing
  • Each export has a 5-second timeout