From c00f00ff2c0bebdf7405c605b5cd9c4ad1af7e2f Mon Sep 17 00:00:00 2001 From: Jade Guiton Date: Wed, 28 May 2025 16:15:26 +0200 Subject: [PATCH] [componentattribute] Use otelzap.WithAttributes, remove LoggerProviderWithAttributes --- .../componentattribute/logger_provider.go | 37 ------------------- .../componentattribute/logger_zap.go | 6 +-- 2 files changed, 2 insertions(+), 41 deletions(-) delete mode 100644 internal/telemetry/componentattribute/logger_provider.go diff --git a/internal/telemetry/componentattribute/logger_provider.go b/internal/telemetry/componentattribute/logger_provider.go deleted file mode 100644 index 5aad00f246f..00000000000 --- a/internal/telemetry/componentattribute/logger_provider.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -package componentattribute // import "go.opentelemetry.io/collector/internal/telemetry/componentattribute" - -import ( - "slices" - - "go.opentelemetry.io/otel/attribute" - "go.opentelemetry.io/otel/log" -) - -type loggerProviderWithAttributes struct { - log.LoggerProvider - attrs []attribute.KeyValue -} - -// LoggerProviderWithAttributes creates a LoggerProvider with a new set of injected instrumentation scope attributes. -func LoggerProviderWithAttributes(lp log.LoggerProvider, attrs attribute.Set) log.LoggerProvider { - if lpwa, ok := lp.(loggerProviderWithAttributes); ok { - lp = lpwa.LoggerProvider - } - return loggerProviderWithAttributes{ - LoggerProvider: lp, - attrs: attrs.ToSlice(), - } -} - -func (lpwa loggerProviderWithAttributes) Logger(name string, opts ...log.LoggerOption) log.Logger { - conf := log.NewLoggerConfig(opts...) - attrSet := conf.InstrumentationAttributes() - // prepend our attributes so they can be overwritten - newAttrs := append(slices.Clone(lpwa.attrs), attrSet.ToSlice()...) - // append our attribute set option to overwrite the old one - opts = append(opts, log.WithInstrumentationAttributes(newAttrs...)) - return lpwa.LoggerProvider.Logger(name, opts...) -} diff --git a/internal/telemetry/componentattribute/logger_zap.go b/internal/telemetry/componentattribute/logger_zap.go index 282335235dd..be1d43d7aaa 100644 --- a/internal/telemetry/componentattribute/logger_zap.go +++ b/internal/telemetry/componentattribute/logger_zap.go @@ -86,12 +86,10 @@ var _ coreWithAttributes = (*otelTeeCoreWithAttributes)(nil) // // This is used when service::telemetry::logs::processors is configured. func NewOTelTeeCoreWithAttributes(consoleCore zapcore.Core, lp log.LoggerProvider, scopeName string, level zapcore.Level, attrs attribute.Set, wrapper func(zapcore.Core) zapcore.Core) zapcore.Core { - // TODO: Use `otelzap.WithAttributes` and remove `LoggerProviderWithAttributes` - // once we've upgraded to otelzap v0.11.0. - lpwa := LoggerProviderWithAttributes(lp, attrs) otelCore, err := zapcore.NewIncreaseLevelCore(otelzap.NewCore( scopeName, - otelzap.WithLoggerProvider(lpwa), + otelzap.WithLoggerProvider(lp), + otelzap.WithAttributes(attrs.ToSlice()...), ), zap.NewAtomicLevelAt(level)) if err != nil { panic(err)