Skip to main content

Honeycombmarker Exporter

Status Available in: contrib Maintainers: @VinozzZ, @codeboten Source: opentelemetry-collector-contrib

Supported Telemetry

Logs

Overview

Note: The exporter type has been renamed from honeycombmarker to honeycomb_marker to follow the snake_case naming convention. The old name honeycombmarker is preserved as a deprecated alias and will continue to work, but a deprecation warning will be logged at startup. Please update your configuration to use honeycomb_marker:.
This exporter allows creating markers, via the Honeycomb Markers API, based on the look of incoming telemetry. The following configuration options are supported:
  • api_key (Required): This is the API key for your Honeycomb account.
  • api_url (Optional): This sets the hostname to send marker data to. If not set, will default to https://api.honeycomb.io/
  • markers (Required): This is a list of configurations to create an event marker.
    • type (Required): Specifies the marker type.
    • rules (Required): This is a list of OTTL rules that determine when to create an event marker.
      • log_conditions (Required): A list of OTTL log conditions that determine a match. The marker will be created if ANY condition matches.
    • dataset_slug (Optional): The dataset in which to create the marker. If not set, will default to __all__.
    • message_key (Optional): The key of the attribute whose value will be used as the marker’s message. If necessary the value will be converted to a string.
    • url_key (Optional): The key of the attribute whose value will be used as the marker’s url. If necessary the value will be converted to a string.
log_conditions accept both the legacy un-prefixed form (body == "x") and the new OTTL path-context form (log.body == "x"). Resource and scope paths are also reachable via resource.attributes["..."], scope.name, etc. Un-prefixed paths continue to work for now; the parser logs the rewritten statements on startup. It is recommended to switch to the new syntax to avoid breaking changes in the future. Example:
exporters:
  honeycomb_marker:
    api_key: {{env:HONEYCOMB_API_KEY}}
    markers:
      # Creates a new marker anytime the exporter sees a k8s event with a reason of Backoff
      - type: k8s-backoff-events
        rules:
          log_conditions:
            - IsMap(log.body) and IsMap(log.body["object"]) and log.body["object"]["reason"] == "Backoff"
      # Path-context syntax allows referencing resource and scope fields directly
      - type: deployment-events
        rules:
          log_conditions:
            - log.body["event"] == "deploy" and resource.attributes["service.name"] == "checkout"

Configuration

Example Configuration

honeycomb_marker:
  api_key: "test-apikey"
  markers:
    - type: "fooType"
      rules:
        log_conditions:
          - body == "test"
honeycomb_marker/all_fields:
  api_key: "test-apikey"
  api_url: "https://api.testhost.io"
  sending_queue:
    enabled: true
    num_consumers: 10
    queue_size: 1000
    sizer: requests
  retry_on_failure:
    enabled: true
    initial_interval: 5000000000
    randomization_factor: 0.5
    multiplier: 1.5
    max_interval: 30000000000
    max_elapsed_time: 300000000000
  markers:
    - type: "fooType"
      message_key: "test message"
      url_key: "https://api.testhost.io"
      dataset_slug: "testing"
      rules:
        log_conditions:
          - body == "test"

honeycomb_marker/bad_syntax_log:
  api_key: "test-apikey"
  api_url: "https://api.testhost.io"
  markers:
    - type: "fooType"
      message_key: "test message"
      url_key: "https://api.testhost.io"
      dataset_slug: "__all__"
      rules:
        log_conditions:
          - body == "test"
          - set(attributes["body"], body)

honeycomb_marker/no_conditions:
  api_key: "test-apikey"
  api_url: "https://api.testhost.io"
  markers:
    - type: "test-apikey"
      message_key: "test message"
      url_key: "https://api.testhost.io"
      dataset_slug: "__all__"
      rules:

honeycomb_marker/no_api_key:
  api_key: ""
  api_url: "https://api.testhost.io"
  markers:
    - type: "fooType"
      message_key: "test message"
      url_key: "https://api.testhost.io"
      dataset_slug: "__all__"
      rules:
        log_conditions:
          - body == "test"

honeycomb_marker/no_markers_supplied:
  api_key: "test-apikey"
  api_url: "https://api.testhost.io"
  markers:

honeycomb_marker/no_dataset_slug:
  api_key: "test-apikey"
  api_url: "https://api.testhost.io"
  markers:
    - type: "fooType"
      message_key: "test message"
      url_key: "https://api.testhost.io"
      rules:
        log_conditions:
          - body == "test"

honeycomb_marker/path_context_log:
  api_key: "test-apikey"
  markers:
    - type: "fooType"
      rules:
        log_conditions:
          - log.body == "test"
          - log.attributes["level"] == "ERROR"

honeycomb_marker/path_context_mixed:
  api_key: "test-apikey"
  markers:
    - type: "fooType"
      rules:
        log_conditions:
          - body == "test"
          - resource.attributes["service.name"] == "checkout"

honeycomb_marker/path_context_invalid:
  api_key: "test-apikey"
  markers:
    - type: "fooType"
      rules:
        log_conditions:
          - metric.name == "foo"

Last generated: 2026-06-01