The Transform processor allows for configuring advanced conditional transformation rules on incoming telemetry.
| Metrics | Logs | Traces |
|---|---|---|
| ✓ | ✓ | ✓ |
| Parameter | Type | Default | Description |
|---|---|---|---|
| telemetry_type* | enum | Logs | Specifies the type of telemetry to which transformation statements are applied. One of Logs , Metrics , or Traces |
| statements | strings | The OTTL statements to execute on matching telemetry. The statements are executed in order from top to bottom. | |
| conditions | strings | OTTL 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* | enum | ignore | One 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_context | enum | datapoint | Either datapoint or metric .This determines the context at which the transform statements are executed on metrics. Read about OTTL contexts here. |
| traces_context | enum | span | Either span or spanevent .This determines the context at which the transform statements are executed on traces. Read about OTTL contexts here. |
*required field
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