diff --git a/CHANGELOG.md b/CHANGELOG.md index 4957a64cb70..41f736a0b9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,7 +29,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - Initialize map with `len(keys)` in `NewAllowKeysFilter` and `NewDenyKeysFilter` to avoid unnecessary allocations in `go.opentelemetry.io/otel/attribute`. (#6455) - `go.opentelemetry.io/otel/log/logtest` is now a separate Go module. (#6465) - `go.opentelemetry.io/otel/sdk/log/logtest` is now a separate Go module. (#6466) -- Improve performance of `BatchProcessor` in `go.opentelemetry.io/otel/sdk/log` by not exporting when exporter cannot accept more. (#6569) +- Improve performance of `BatchProcessor` in `go.opentelemetry.io/otel/sdk/log` by not exporting when exporter cannot accept more. (#6569, #6641) ### Deprecated diff --git a/sdk/log/batch.go b/sdk/log/batch.go index dd4c7a18c98..b91741d5882 100644 --- a/sdk/log/batch.go +++ b/sdk/log/batch.go @@ -156,7 +156,7 @@ func (b *BatchProcessor) poll(interval time.Duration) (done chan struct{}) { global.Warn("dropped log records", "dropped", d) } - qLen := b.q.Len() + var qLen int // Don't copy data from queue unless exporter can accept more, it is very expensive. if b.exporter.Ready() { qLen = b.q.TryDequeue(buf, func(r []Record) bool { @@ -166,6 +166,8 @@ func (b *BatchProcessor) poll(interval time.Duration) (done chan struct{}) { } return ok }) + } else { + qLen = b.q.Len() } if qLen >= b.batchSize {