The Add Fields processor can be used to add attributes, resources, and log record body keys from telemetry in the pipeline.
The Add Fields processor is utilized for enriching telemetry data by appending or modifying attributes, resources, and log record body keys in metrics, logs, and traces based on specified conditions.
Metrics | Logs | Traces |
---|---|---|
✓ | ✓ | ✓ |
Field | Description |
---|---|
Telemetry Types | The types of telemetry to apply the processor to. |
Log Condition | An OTTL condition that must evaluate to true to apply this processor. By default, the processor applies to all logs. |
Datapoint Condition | An OTTL condition that must evaluate to true to apply this processor to metrics. By default, the processor applies to all datapoints. |
Span Condition | An OTTL condition that must evaluate to true to apply this processor. By default, the processor applies to all spans. |
Resource Keys | One or more resource attribute names to add to logs. |
Resource Action | insert : Add resource if it does not exist. update : Update existing value. upsert : Insert or update. |
Attribute Keys | One or more attribute names to add to logs. |
Attribute Action | insert : Add attribute(s) if it does not exist. update : Update existing value. upsert : Insert or update. |
Body Keys | One or more body key names to add to log records. |
Body Action | insert : Add body key(s) if it does not exist. update : Update existing value. upsert : Insert or update. |
In this configuration, additional resource data is appended to the metrics to categorize and identify them based on their source. This is particularly useful for differentiating and filtering metrics that are generated from various environments or locations.
This configuration will add custom resource (application_name) to logs that have a log level of ‘ERROR’. This can help in quickly identifying and tracing critical issues within a specific or part of the application.
our example log body:
{
"error": "incorrect username or password",
"level": "error",
"message": "failed to authenticate user: test",
"timestamp": "2023-07-05T13:40:17.549-0400"
}
The log condition we use to determine what logs to append the resource to:
body["level"] == error