Metrics
Metrics are a core feature of Hookdeck, providing insights into your webhooks and event-driven systems. They are available for free to all users. Most metrics are updated in near real-time, and some "stateful" metrics, such as Pending Attempts, are sampled at a rate of 5 seconds.
Some metrics are essential to operating an event-driven system at scale. With metrics like Pending events
(queue depth), Oldest pending event
(backpressure), and Response latency
, you can monitor the health of your system and take action when needed.
Other metrics like total Requests by Source or total Events by Connection can help you understand the usage of your system and identify potential issues.
Metrics are found in the Metrics page and on the individual Source, Connection, and Destination pages.
Certain event metrics are only available in "point-in-time" instead of time-series data. We are working on moving those metrics to time-series. The "point-in-time" metrics are
Events with scheduled retries
,Delayed events
, andPaused events
.
You can also export them to your observability platform such as Datadog.
Viewing Metrics
Metrics are displayed directly on the pages for individual resources, providing a granular view of your data.
Sources
On a Source's page, you can find metrics related to the requests Hookdeck receives:
- Requests: The total number of requests received.
- Requests rate: The rate of requests received over time.
- Accepted requests: The total number of requests that were accepted.
- Rejected requests: The total number of requests that were rejected.
- Discarded requests: Requests that results in 0 events are considered discarded. This metric shows the number of discarded requests.
- Avg. events per second: Each request can create 0 or many events. This metric shows the average number of events per request.
- Avg. ignored events per request: The average number of requests that did not generate an event.
Connections
For each Connection, you can monitor the flow of events:
- Events: The total number (or rate) of events created.
- Events rate: The rate of events created over time.
- Successful events: The total number of successful events.
- Failed events: The total number of failed events.
- Events failure ratio: The ratio of total events to failed events.
- Avg. attempts per event: The average number of delivery attempts made per event.
- Events with scheduled retries: Events that have a future delivery attempt scheduled.
- Paused events: The total number of events that have been paused over time.
- Delayed events: The total number of events that are delayed over time.
Destinations
A Destination's page contains metrics for both events and attempts, grouped into subcategories. Metrics for destinations include:
Events
- Events: The total number of events sent to the destination.
- Events rate: The rate of events sent to the destination over time.
- Successful events: The total number of events that were successfully delivered.
- Failed events: The total number of events that failed to be delivered.
- Events failure ratio: The ratio of total events to failed events.
- Avg. attempts per event: The average number of delivery attempts made per event.
- Oldest pending attempt: The oldest attempt that is still pending delivery.
- Pending events: The total number of events that are still pending delivery to the destination.
Attempts
- Delivered attempts: Number of attempts that were attempted to be delivered to the destination.
- Attempts delivery rate: The rate of delivery attempts that were successful over time.
- Successful attempts: The total number of delivery attempts that were successful.
- Failed attempts: The total number of delivery attempts that failed.
- Attempts failure rate: The rate at which delivery attempt errors to this destination are occurring.
- Avg. response latency: The average response latency of the destination.
- 95th response latency: The 95th percentile of response latency for the destination.
- 99th response latency: The 99th percentile of response latency for the destination.
- Max. response latency: The maximum response latency recorded for the destination.
Exploring Metrics
Many charts in the dashboard now feature an "Explore" option under the
button. Clicking this option takes you to the relevant data page (like Requests or Events) with filters automatically applied to match the data in the chart. This allows you to quickly investigate spikes or anomalies in your metrics.Metrics export
Metrics export allows you to access your Hookdeck project metrics in your own observability platform. We currently support exporting to Datadog and are working on supporting more platforms as requested.
Exporting metrics is also an opportunity to support custom alerts and dashboards. For example, you can create an alert when the Pending Attempts metric is above a certain threshold.
Exporting to Datadog
The Datadog integrations support exporting to Datadog "Metrics" using your own Datadog API key. To configure the integration:
- Go to the project integrations page
- Select on the Datadog integration.
- Follow the instructions to generate a new API key and provide your key.
- Within a few minutes the Metrics data will start appearing in your Datadog account.
Dashboard template
We have created a dashboard template that you can use to get started with Datadog. The dashboard is pre-configured with the metrics that we think are most useful.
To use the dashboard template:
- Download
datadog/template.json
and upload it to Datadog - Go to the dashboards list in your Datadog account
- Select and create the dashboard
- Select , , and import the Hookdeck dashboard template
Metric tags
Each metric is tagged with the following tags:
name
: The name of the metricsource
: The source of the metric. This is alwayshookdeck
project
: The name of the projectorganization
: The name of the organization
Additionally, each metric is tagged with the name of the associated resource (e.g., source
, connection
, or destination
).
Renaming a source, connection or destination will cause the metric to be tagged with the new name. This will cause a "break" in the metric history as historical data will be tagged with the old name.
Metric names
Each metric name is prefixed with hookdeck.
. The complete list of metrics can be found in the metrics Datadog history page.
Exporting to Prometheus
The Prometheus integration allows you to expose Hookdeck metrics in Prometheus format via a dedicated API endpoint that Prometheus can scrape. This enables you to monitor your webhook infrastructure using your existing Prometheus and Grafana setup.
To configure the integration:
- Go to the project integrations page
- Select on the Prometheus integration
- Enable the integration to activate the metrics endpoint
- Configure your Prometheus server to scrape the metrics endpoint (see configuration below)
Prometheus Configuration
Add the following job to your prometheus.yml
configuration file:
scrape_configs:
- job_name: 'hookdeck'
scrape_interval: 30s
metrics_path: '/metrics/prometheus'
scheme: https
bearer_token: 'YOUR_HOOKDECK_API_KEY'
static_configs:
- targets: ['api.hookdeck.com']
Replace YOUR_HOOKDECK_API_KEY
with your Hookdeck API key, which you can find in your Hookdeck project secrets.
Grafana Dashboard Template
We have created a dashboard template to help you get started with visualizing your Hookdeck metrics.
To import the dashboard:
- Download the
/prometheus/template.json
file - Open your Grafana instance and navigate to
- Click →
- Upload the JSON file or paste its contents
- Select your Prometheus data source
- Click
The dashboard includes panels for:
- Request rates and totals (accepted, rejected, total)
- Event processing metrics (successful, failed, ignored)
- Delivery attempt statistics
- Queue depth (Pending Events) monitoring
- Response latency averages
- Source and destination breakdowns
Available Metrics
All metrics are exposed in Prometheus exposition format with the prefix hookdeck_. The following metrics are available:
Counter Metrics
hookdeck_requests_total
- Total number of requests received- Labels: status (total, accepted, rejected)
hookdeck_events_total
- Total number of events processed- Labels: status (total, successful, failed, ignored)
hookdeck_attempts_total
- Total number of delivery attempts- Labels: status (total, delivered, failed)
Gauge Metrics
hookdeck_queue_depth
- Current queue depth (pending events) per destinationhookdeck_avg_response_latency_ms
- Average response latency in milliseconds
Metric Labels
Each metric is labeled with the following standard labels:
team_id
- The unique identifier of the teamteam_name
- The name of the teamorganization
- The name of the organization
Additionally, metrics include resource-specific labels:
source_id
andsource_name
- For request metricswebhook_id
andconnection_name
- For event metricsdestination_id
anddestination_name
- For attempt and queue metrics
Update Frequency
Metrics are calculated and updated based on your Prometheus scrape interval. We recommend a scrape interval of 30 seconds for optimal balance between data freshness and performance.
Troubleshooting
If metrics are not appearing:
- Verify the Prometheus integration is enabled in your Hookdeck project settings
- Check that your API key is valid and has the necessary permissions
- Ensure your Prometheus server can reach api.hookdeck.com
- Verify the bearer token is correctly configured in your Prometheus configuration
- Check Prometheus targets page (/targets) to see if the scrape is successful
Requesting a new integration
We plan on supporting most popular observability platforms. If you would like to request a new integration, please contact us via the live chat, or by email at info@hookdeck.com