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:
- Ingest — when a webhook arrives, Hookbase creates a
hookbase.ingesttrace span and records payload size, duration, and event count metrics. - Delivery — when the webhook is delivered to your destination, Hookbase creates a
hookbase.deliveryspan 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
| Provider | Endpoint | Auth Header |
|---|---|---|
| Grafana Cloud | https://otlp-gateway-prod-{region}.grafana.net/otlp/ | Authorization: Basic <base64(instanceId:token)> |
| New Relic | https://otlp.nr-data.net/ (US) or https://otlp.eu01.nr-data.net/ (EU) | Api-Key: <INGEST-LICENSE key> |
| Honeycomb | https://api.honeycomb.io/ | x-honeycomb-team: <api-key> |
| Axiom | https://api.axiom.co/v1/traces/ | Authorization: Bearer <api-token> |
| Custom OTLP | Any endpoint supporting OTLP/HTTP JSON | Custom headers |
Setup
Via Dashboard
- Go to Settings then Observability
- Click Add Export
- Select your provider — the endpoint auto-fills
- Enter your auth credentials
- Choose export types (traces, metrics, logs)
- Set sampling rate (1-100%)
- Click Create
- 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
- Sign in at grafana.com and select your stack
- Go to Connections then Add new connection and search OpenTelemetry (OTLP)
- Copy the OTLP endpoint (includes your region)
- Generate an API token under My Account then Security then API Keys
- Build the Basic auth value:
echo -n "instanceId:apiToken" | base64 - In Hookbase, use
Authorizationas the header key andBasic <base64value>as the value
To view data: Explore then data source Tempo then Search then Service Name = hookbase
New Relic
- Go to your profile then API Keys
- Click Create a key and select type INGEST - LICENSE
- Copy the key
- In Hookbase, use
Api-Keyas the header key
To view data: Query Your Data then run SELECT * FROM Span WHERE service.name = 'hookbase' SINCE 1 hour ago
Honeycomb
- Go to Account then Team Settings then API Keys
- Create or copy an API key
- In Hookbase, use
x-honeycomb-teamas the header key
To view data: Home then look for the hookbase dataset then Query tab
Axiom
- Go to Settings then API Tokens
- Create a token with ingest permissions
- In Hookbase, use
Authorizationas the header key andBearer <token>as the value
Span Attributes
All spans include these attributes:
| Attribute | Description |
|---|---|
hookbase.org.id | Organization ID |
hookbase.source.id | Source ID |
hookbase.event.id | Event ID |
hookbase.delivery.id | Delivery ID (delivery spans only) |
hookbase.route.id | Route ID (delivery spans only) |
hookbase.destination.id | Destination ID (delivery spans only) |
hookbase.delivery.attempt | Attempt number (delivery spans only) |
http.status_code | HTTP response status (delivery spans only) |
Metrics
| Metric | Type | Description |
|---|---|---|
hookbase.events.received | Counter | Webhooks received |
hookbase.ingest.duration_ms | Gauge | Ingest processing time |
hookbase.ingest.payload_bytes | Gauge | Payload size in bytes |
hookbase.delivery.latency_ms | Gauge | Delivery round-trip time |
hookbase.delivery.success | Counter | Successful deliveries |
hookbase.delivery.failure | Counter | Failed deliveries |
hookbase.delivery.retry | Counter | Retried 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