Metrics

View as Markdown

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.

Metrics - Sources

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, and Paused 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.

Metrics export

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:

  1. Go to the project integrations page
  2. Select Connect on the Datadog integration.
  3. Follow the instructions to generate a new API key and provide your key.
  4. 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:

  1. Download datadog/template.json and upload it to Datadog
  2. Go to the dashboards list in your Datadog account
  3. Select New Dashboard and create the dashboard
  4. Select Configure, Import dashboard JSON , and import the Hookdeck dashboard template

Metric tags

Each metric is tagged with the following tags:

  • name: The name of the metric
  • source: The source of the metric. This is always hookdeck
  • project: The name of the project
  • organization: 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:

  1. Go to the project integrations page
  2. Select Connect on the Prometheus integration
  3. Enable the integration to activate the metrics endpoint
  4. 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:

  1. Download the /prometheus/template.json file
  2. Open your Grafana instance and navigate to Dashboards
  3. Click NewImport
  4. Upload the JSON file or paste its contents
  5. Select your Prometheus data source
  6. Click Import

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 destination
  • hookdeck_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 team
  • team_name - The name of the team
  • organization - The name of the organization

Additionally, metrics include resource-specific labels:

  • source_id and source_name - For request metrics
  • webhook_id and connection_name - For event metrics
  • destination_id and destination_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:

  1. Verify the Prometheus integration is enabled in your Hookdeck project settings
  2. Check that your API key is valid and has the necessary permissions
  3. Ensure your Prometheus server can reach api.hookdeck.com
  4. Verify the bearer token is correctly configured in your Prometheus configuration
  5. 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