Honeycomb is an observability platform built around a high-cardinality, high-dimensionality column store.


  • Teams model organisations.
  • Datasets partition stored data, and may model environments. Note that there's no privilege separation between datasets within a team at this time.
  • BubbleUp is the core experience: it surfaces anomalies in dimensions based on a selection made on a histogram.
  • Events are structured representations of actions taking place in a system, e.g. web transactions. Everything in Honeycomb is stored as an event.
    • Columns available will differ with the type of event.
    • Derived Columns allow computing additional values for each event based on that event's other column values.
  • Queries
    • Query results represent point-in-time executions of a query.
  • Triggers enable notification delivery when query results cross configured thresholds.
  • SLOs model expectations of service quality as Service Level Objectives.
    • Burn rate alerts behave similarly to triggers, but are based on the depletion rate of the error budget.

Event ingest

  • Beelines are proprietary SDKs for ingesting data, deprecated in favour of OpenTelemetry.
  • Honeytail ingests log files.


  • COUNT is the number of events
  • COUNT_DISTINCT(column) is the number of unique values - for the given field
  • CONCURRENCY yields the number of matching spans in-progress (as determined by start time and duration) in each time interval.
  • SUM(column)
  • AVG(column)
  • MAX(column)
  • MIN(column)
  • Pnn(column) computes a percentile.
  • RATE_MAX(column), RATE_AVG(column) and RATE_SUM(column) computes the rate of change between time buckets.


  • =, !=
  • starts-with, does-not-start-with
  • >, >=, <=, <
  • contains, does-not-contain
  • in, not-in comma-delimited, no parentheses

Special fields

  • trace.parent_id, trace.span_id, and trace.trace_id follow the Traces definitions.

API keys

API keys are stored at the team level, and can either be visible to all team members or just administrators.


  • Send Events
  • Create Datasets
  • Manage Queries and Columns
  • Manage Markers
  • Manage Boards
  • Manage Triggers


PagerDuty recipients on triggers don't show their integration names, only their IDs, in the API. To find the correct ID to use in an API request to update a trigger, create a temporary trigger via the UI and add the recipient, then look it up via the API.

  1. Schedule