Log record mutations are visible in next registered processors #4065
Description
What are you trying to achieve?
Define if log record mutations done in record processor are visible in next registered processors.
From #4010 (comment):
I believe the spec is not clear enough and can be interpreted in different ways leading to very different implementations (e.g. chained processors that can mutate data and see mutations of previous processor or parallel processors that don't see mutations of other processors).
We likely need to fix the spec. It is in a stable doc but is vague enough that I think it is a bug and should be fixed.
Since the spec is vague I am also worried that existing implementations in different language SDKs may have interpreted it differently and have made different choices. IMO, we need to start with auditing existing implementations and see where we stand currently and then decide how exactly we want to fix the spec (one of the options is that both "chained-allow-mutation" and "fanout-copy-to-parallel" should be possible like they are in the Collector pipelines).
Additional context.
- Issue originates from Logs: Allow the registered processor to be an independent pipeline #4010
- Add isolating log record processor #4062 (comment)
The undocumented assumption was the log processor will follow the pattern that mutations will be visible to the next processor to be consistent with span processors. However, the C++ Logs SDK is not designed this way (log records are passed as a copy to subsequent registered processors). Other Logs SDKs follow the pattern or are not stable.
Metadata
Assignees
Labels
Type
Projects
Status
Spec - Closed