Telemetry mutation
Some types of mutation include
- Remove a forbidden attribute such as
http.request.header.authorization - Reduce cardinality of an attribute such as translating
http.target value of /user/123451/profile to /user/{userId}/profile - Decrease the size of the telemetry payload by removing large resource attributes such as
process.command_line - Filtering out signals such as by removing all telemetry with a
http.target of /health - Attach information from resource into telemetry, for example adding certain resource fields as metric dimensions
The processors implementing this use case are attributesprocessor, filterprocessor, metricstransformprocessor, resourceprocessor, spanprocessor.
Metric generation
The collector may generate new metrics based on incoming telemetry.
- Create new metrics based on information in spans, for example to create a duration metric that is not implemented in the SDK yet
- Apply arithmetic between multiple incoming metrics to produce an output one, for example divide an
amount and a capacity to create a utilization metric
The processors implementing this use case are metricsgenerationprocessor, spanmetricsprocessor.
Grouping
Some processors are stateful, grouping telemetry over a window of time based on either a trace ID or an attribute value, or just general batching.
- Batch incoming telemetry before sending to exporters to reduce export requests
- Group spans by trace ID to allow doing tail sampling
- Group telemetry for the same path
The processors implementing this use case are batchprocessor, groupbyattrprocessor, groupbytraceprocessor.
Telemetry enrichment
commonly used to fill gaps in coverage of environment specific data.
- Add environment about a cloud provider to
Resource of all incoming telemetry
The processors implementing this use case are k8sattributesprocessor, resourcedetectionprocessor.