diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c1d32f9e72..2e71b526382 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,9 @@ release. ### Logs +- The SDK MAY provide an operation that makes a deep clone of a `ReadWriteLogRecord`. + ([#4090](https://github.com/open-telemetry/opentelemetry-specification/pull/4090)) + ### Events ### Resource diff --git a/specification/logs/sdk.md b/specification/logs/sdk.md index be06ddc56b6..eadd5a597d2 100644 --- a/specification/logs/sdk.md +++ b/specification/logs/sdk.md @@ -235,6 +235,12 @@ the following information added to the [LogRecord](data-model.md#log-and-event-r * [`SpanId`](./data-model.md#field-spanid) * [`TraceFlags`](./data-model.md#field-traceflags) +The SDK MAY provide an operation that makes a deep clone of a `ReadWriteLogRecord`. +The operation can be used to implement the [isolating processor](#isolating-processor) +or by asynchronous processors (e.g. [Batching processor](#batching-processor)) +to avoid race conditions on the log record that is not required to be +concurrent safe. + ## LogRecord Limits `LogRecord` attributes MUST adhere to