From cd28f5e153713847e6912044f733b6f0c90e39a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Fri, 28 Jun 2024 12:47:50 +0200 Subject: [PATCH 1/6] Allow adding Clone method to ReadWriteLogRecord --- CHANGELOG.md | 2 ++ specification/logs/sdk.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cea84cedb4f..eeb4f6da93b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ release. - Add the in-development isolating log record processor. ([#4062](https://github.com/open-telemetry/opentelemetry-specification/pull/4062)) +- `ReadWriteLogRecord` MAY provide a method to make a clone. + ([#TODO](https://github.com/open-telemetry/opentelemetry-specification/pull/TODO)) ### Events diff --git a/specification/logs/sdk.md b/specification/logs/sdk.md index be06ddc56b6..8339b96da0c 100644 --- a/specification/logs/sdk.md +++ b/specification/logs/sdk.md @@ -235,6 +235,8 @@ 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) +`ReadWriteLogRecord` MAY provide a method to make a clone. + ## LogRecord Limits `LogRecord` attributes MUST adhere to From 6d00b952b6036d5ef3df2d0039d5baab15031a7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Fri, 28 Jun 2024 12:54:12 +0200 Subject: [PATCH 2/6] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eeb4f6da93b..75dff7c5865 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,7 @@ release. - Add the in-development isolating log record processor. ([#4062](https://github.com/open-telemetry/opentelemetry-specification/pull/4062)) - `ReadWriteLogRecord` MAY provide a method to make a clone. - ([#TODO](https://github.com/open-telemetry/opentelemetry-specification/pull/TODO)) + ([#4090](https://github.com/open-telemetry/opentelemetry-specification/pull/4090)) ### Events From 50ea836e53824ea74f229e0607474083092136a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Fri, 28 Jun 2024 21:30:10 +0200 Subject: [PATCH 3/6] Update specification/logs/sdk.md --- specification/logs/sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/logs/sdk.md b/specification/logs/sdk.md index 8339b96da0c..ff43d7bcb92 100644 --- a/specification/logs/sdk.md +++ b/specification/logs/sdk.md @@ -235,7 +235,7 @@ 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) -`ReadWriteLogRecord` MAY provide a method to make a clone. +The SDK MAY provide an operation that makes a clone of a `ReadWriteLogRecord`. ## LogRecord Limits From 34e53eac6a86d946761a189267f8c9e80c1169cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Fri, 28 Jun 2024 21:31:45 +0200 Subject: [PATCH 4/6] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75dff7c5865..eda7dd179fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,7 @@ release. - Add the in-development isolating log record processor. ([#4062](https://github.com/open-telemetry/opentelemetry-specification/pull/4062)) -- `ReadWriteLogRecord` MAY provide a method to make a clone. +- The SDK MAY provide an operation that makes a clone of a `ReadWriteLogRecord`. ([#4090](https://github.com/open-telemetry/opentelemetry-specification/pull/4090)) ### Events From 73bb86abafeaa25d76b2e185cd80c239cb767afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Thu, 18 Jul 2024 20:32:08 +0200 Subject: [PATCH 5/6] Update specification/logs/sdk.md --- specification/logs/sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/logs/sdk.md b/specification/logs/sdk.md index ff43d7bcb92..93f1e51ba47 100644 --- a/specification/logs/sdk.md +++ b/specification/logs/sdk.md @@ -235,7 +235,7 @@ 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 clone of a `ReadWriteLogRecord`. +The SDK MAY provide an operation that makes a deep clone of a `ReadWriteLogRecord`. ## LogRecord Limits From c898c54de0b422c9057444bde9754dd4be2d0ad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Thu, 25 Jul 2024 19:27:21 +0200 Subject: [PATCH 6/6] Describe when deep cloning may be useful --- specification/logs/sdk.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/specification/logs/sdk.md b/specification/logs/sdk.md index 93f1e51ba47..eadd5a597d2 100644 --- a/specification/logs/sdk.md +++ b/specification/logs/sdk.md @@ -236,6 +236,10 @@ the following information added to the [LogRecord](data-model.md#log-and-event-r * [`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