Transform


Note
This feature is available as an add-on for the Honeycomb Enterprise plan. Please contact your Honeycomb account team for details.

Description 

The Transform processor allows for configuring advanced conditional transformation rules on incoming telemetry.

Supported Types 

Metrics Logs Traces

Configuration Table 

ParameterTypeDefaultDescription
telemetry_type*enumLogsSpecifies the type of telemetry to which transformation statements are applied. One of Logs , Metrics , or Traces
statementsstringsThe OTTL statements to execute on matching telemetry. The statements are executed in order from top to bottom.
conditionsstringsOTTL conditions to determine if statements should run. If any condition evaluates to true on a given log, metric, or trace, the OTTL statements will be executed on that telemetry. Individual statements may still add their own where clauses.
error_mode*enumignoreOne of ignore , silent , or propagate .
Determines how error handling will be performed during processing. Ignore will ignore errors, log the error, and continue processing. Silent will ignore errors without logging them, and continue processing. Propagate will halt processing when an error occurs and return errors up the pipeline.
metrics_contextenumdatapointEither datapoint or metric .
This determines the context at which the transform statements are executed on metrics.
Read about OTTL contexts here.
traces_contextenumspanEither span or spanevent .
This determines the context at which the transform statements are executed on traces.
Read about OTTL contexts here.

*required field

Basic Example Configuration 

Below is an example of a basic Transform processor configuration using multiple statements and one condition.

Standalone Processor:

apiVersion: bindplane.observiq.com/v1
kind: Processor
spec:
    parameters:
        - name: telemetry_type
          value: Logs
        - name: statements
          value:
            - set(attributes["myNewFieldKey"], "myNewFieldValue")
            - delete_key(attributes, "myUnwantedKey")
        - name: conditions
          value:
            - attributes["service.name"] = "my-service-name"
        - name: error_mode
          value: ignore