summaryrefslogtreecommitdiff
path: root/vendor/go.opentelemetry.io/otel/sdk
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/go.opentelemetry.io/otel/sdk')
-rw-r--r--vendor/go.opentelemetry.io/otel/sdk/log/batch.go28
-rw-r--r--vendor/go.opentelemetry.io/otel/sdk/log/doc.go2
-rw-r--r--vendor/go.opentelemetry.io/otel/sdk/log/exporter.go11
-rw-r--r--vendor/go.opentelemetry.io/otel/sdk/log/filter_processor.go2
-rw-r--r--vendor/go.opentelemetry.io/otel/sdk/log/logger.go1
-rw-r--r--vendor/go.opentelemetry.io/otel/sdk/log/provider.go2
6 files changed, 30 insertions, 16 deletions
diff --git a/vendor/go.opentelemetry.io/otel/sdk/log/batch.go b/vendor/go.opentelemetry.io/otel/sdk/log/batch.go
index 28c969262..b91741d58 100644
--- a/vendor/go.opentelemetry.io/otel/sdk/log/batch.go
+++ b/vendor/go.opentelemetry.io/otel/sdk/log/batch.go
@@ -156,13 +156,20 @@ func (b *BatchProcessor) poll(interval time.Duration) (done chan struct{}) {
global.Warn("dropped log records", "dropped", d)
}
- qLen := b.q.TryDequeue(buf, func(r []Record) bool {
- ok := b.exporter.EnqueueExport(r)
- if ok {
- buf = slices.Clone(buf)
- }
- return ok
- })
+ 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 {
+ ok := b.exporter.EnqueueExport(r)
+ if ok {
+ buf = slices.Clone(buf)
+ }
+ return ok
+ })
+ } else {
+ qLen = b.q.Len()
+ }
+
if qLen >= b.batchSize {
// There is another full batch ready. Immediately trigger
// another export attempt.
@@ -272,6 +279,13 @@ func newQueue(size int) *queue {
}
}
+func (q *queue) Len() int {
+ q.Lock()
+ defer q.Unlock()
+
+ return q.len
+}
+
// Dropped returns the number of Records dropped during enqueueing since the
// last time Dropped was called.
func (q *queue) Dropped() uint64 {
diff --git a/vendor/go.opentelemetry.io/otel/sdk/log/doc.go b/vendor/go.opentelemetry.io/otel/sdk/log/doc.go
index 6a1f1b0e9..78935de63 100644
--- a/vendor/go.opentelemetry.io/otel/sdk/log/doc.go
+++ b/vendor/go.opentelemetry.io/otel/sdk/log/doc.go
@@ -31,6 +31,6 @@ is being run on. That way when multiple instances of the code are collected
at a single endpoint their origin is decipherable.
See [go.opentelemetry.io/otel/log] for more information about
-the OpenTelemetry Logs Bridge API.
+the OpenTelemetry Logs API.
*/
package log // import "go.opentelemetry.io/otel/sdk/log"
diff --git a/vendor/go.opentelemetry.io/otel/sdk/log/exporter.go b/vendor/go.opentelemetry.io/otel/sdk/log/exporter.go
index e4e3c5402..8cef5dde6 100644
--- a/vendor/go.opentelemetry.io/otel/sdk/log/exporter.go
+++ b/vendor/go.opentelemetry.io/otel/sdk/log/exporter.go
@@ -186,11 +186,10 @@ type bufferExporter struct {
// newBufferExporter returns a new bufferExporter that wraps exporter. The
// returned bufferExporter will buffer at most size number of export requests.
-// If size is less than zero, zero will be used (i.e. only synchronous
-// exporting will be supported).
+// If size is less than 1, 1 will be used.
func newBufferExporter(exporter Exporter, size int) *bufferExporter {
- if size < 0 {
- size = 0
+ if size < 1 {
+ size = 1
}
input := make(chan exportData, size)
return &bufferExporter{
@@ -201,6 +200,10 @@ func newBufferExporter(exporter Exporter, size int) *bufferExporter {
}
}
+func (e *bufferExporter) Ready() bool {
+ return len(e.input) != cap(e.input)
+}
+
var errStopped = errors.New("exporter stopped")
func (e *bufferExporter) enqueue(ctx context.Context, records []Record, rCh chan<- error) error {
diff --git a/vendor/go.opentelemetry.io/otel/sdk/log/filter_processor.go b/vendor/go.opentelemetry.io/otel/sdk/log/filter_processor.go
index 5b99a4a99..a39cad9e0 100644
--- a/vendor/go.opentelemetry.io/otel/sdk/log/filter_processor.go
+++ b/vendor/go.opentelemetry.io/otel/sdk/log/filter_processor.go
@@ -8,7 +8,6 @@ import (
"go.opentelemetry.io/otel/log"
"go.opentelemetry.io/otel/sdk/instrumentation"
- "go.opentelemetry.io/otel/sdk/resource"
)
// FilterProcessor is a [Processor] that knows, and can identify, what [Record]
@@ -56,7 +55,6 @@ type FilterProcessor interface {
// EnabledParameters represents payload for [FilterProcessor]'s Enabled method.
type EnabledParameters struct {
- Resource resource.Resource
InstrumentationScope instrumentation.Scope
Severity log.Severity
}
diff --git a/vendor/go.opentelemetry.io/otel/sdk/log/logger.go b/vendor/go.opentelemetry.io/otel/sdk/log/logger.go
index 6211d5d92..cd3580ec0 100644
--- a/vendor/go.opentelemetry.io/otel/sdk/log/logger.go
+++ b/vendor/go.opentelemetry.io/otel/sdk/log/logger.go
@@ -50,7 +50,6 @@ func (l *logger) Emit(ctx context.Context, r log.Record) {
// returned if it can be positively verified that no Processor will process.
func (l *logger) Enabled(ctx context.Context, param log.EnabledParameters) bool {
p := EnabledParameters{
- Resource: *l.provider.resource,
InstrumentationScope: l.instrumentationScope,
Severity: param.Severity,
}
diff --git a/vendor/go.opentelemetry.io/otel/sdk/log/provider.go b/vendor/go.opentelemetry.io/otel/sdk/log/provider.go
index 096944ea1..359357b7e 100644
--- a/vendor/go.opentelemetry.io/otel/sdk/log/provider.go
+++ b/vendor/go.opentelemetry.io/otel/sdk/log/provider.go
@@ -236,7 +236,7 @@ func WithAttributeCountLimit(limit int) LoggerProviderOption {
})
}
-// AttributeValueLengthLimit sets the maximum allowed attribute value length.
+// WithAttributeValueLengthLimit sets the maximum allowed attribute value length.
//
// This limit only applies to string and string slice attribute values.
// Any string longer than this value will be truncated to this length.