From 7ba796cb39971f133b4f6e563fda988a7d5cdc8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Paj=C4=85k?= Date: Sat, 11 May 2024 17:21:33 +0200 Subject: [PATCH] sdk/log: Document how Processor and Exporter interfaces can be extended (#5347) --- CONTRIBUTING.md | 3 +++ sdk/log/DESIGN.md | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6aed3bd9d1d..2176ce5261b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -570,6 +570,9 @@ functionality should be added, each one will need their own super-set interfaces and will duplicate the pattern. For this reason, the simple targeted interface that defines the specific functionality should be preferred. +See also: +[Keeping Your Modules Compatible: Working with interfaces](https://go.dev/blog/module-compatibility#working-with-interfaces). + ### Testing The tests should never leak goroutines. diff --git a/sdk/log/DESIGN.md b/sdk/log/DESIGN.md index b1a69aae9ba..99c5bf51c32 100644 --- a/sdk/log/DESIGN.md +++ b/sdk/log/DESIGN.md @@ -50,6 +50,11 @@ The user set processors for the `LoggerProvider` using The user can configure custom processors and decorate built-in processors. +The specification may add new operations to the +[LogRecordProcessor](https://opentelemetry.io/docs/specs/otel/logs/sdk/#logrecordprocessor). +If it happens, [CONTRIBUTING.md](../../CONTRIBUTING.md#how-to-change-other-interfaces) +describes how the SDK can be extended in a backwards-compatible way. + ### SimpleProcessor The [Simple processor](https://opentelemetry.io/docs/specs/otel/logs/sdk/#simple-processor) @@ -74,6 +79,11 @@ so that the caller can reuse the passed slice (e.g. using [`sync.Pool`](https://pkg.go.dev/sync#Pool)) to avoid heap allocations on each call. +The specification may add new operations to the +[LogRecordExporter](https://opentelemetry.io/docs/specs/otel/logs/sdk/#logrecordexporter). +If it happens, [CONTRIBUTING.md](../../CONTRIBUTING.md#how-to-change-other-interfaces) +describes how the SDK can be extended in a backwards-compatible way. + ### Record The [ReadWriteLogRecord](https://opentelemetry.io/docs/specs/otel/logs/sdk/#readwritelogrecord)