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 both directions of the webhook pipeline. One export config covers both, so inbound and outbound traces land in the same backend.
Inbound (receiving webhooks)
- 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 follow the full journey in your observability tool, from webhook received to delivery completed.
Outbound (sending webhooks)
- Send: each
POST /v1/events(or/api/send-event) call creates ahookbase.outbound.sendspan. If the request has a W3Ctraceparentheader, the span is a child of your span. - Delivery attempt: each attempt to each endpoint, retries included, creates a
hookbase.outbound.deliveryspan under the send span. Its context goes to the endpoint in atraceparentheader.
See Tracing Outbound Webhooks for the outbound attributes, metrics and header passthrough.
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
Inbound spans include these attributes (outbound spans are listed in Tracing Outbound Webhooks):
| 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 traces sends telemetry. The decision is made by trace ID, so a trace is exported whole or not at all: you won't see a delivery span without its ingest span, or an outbound attempt without its send span. 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 resources export telemetry. Add source or route IDs (inbound) or application or endpoint IDs (outbound) to the resource filter. Only telemetry for 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