1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2026-06-03 18:35:08 +02:00

fix(semconv): share metric option pools (#8371)

Share the AddOption and RecordOption pools used by generated semconv
metric helpers through a small internal package, instead of emitting one
pair of pools in every generated metric package.

Regenerate semconv/v1.41.0 from the updated templates.

Fixes #8356

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
This commit is contained in:
Ayush
2026-05-29 15:47:09 +05:30
committed by GitHub
parent b62d92831b
commit de8158f87a
25 changed files with 1479 additions and 4200 deletions
+9 -30
View File
@@ -9,16 +9,11 @@ package azureconv
import (
"context"
"sync"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/metric/noop"
)
var (
addOptPool = &sync.Pool{New: func() any { return &[]metric.AddOption{} }}
recOptPool = &sync.Pool{New: func() any { return &[]metric.RecordOption{} }}
"go.opentelemetry.io/otel/semconv/internal/metricpool"
)
// CosmosDBConsistencyLevelAttr is an attribute conforming to the
@@ -127,12 +122,8 @@ func (m CosmosDBClientActiveInstanceCount) Add(
return
}
o := addOptPool.Get().(*[]metric.AddOption)
defer func() {
clear(*o)
*o = (*o)[:0]
addOptPool.Put(o)
}()
o := metricpool.AddOptions()
defer metricpool.PutAddOptions(o)
*o = append(
*o,
@@ -154,12 +145,8 @@ func (m CosmosDBClientActiveInstanceCount) AddSet(ctx context.Context, incr int6
return
}
o := addOptPool.Get().(*[]metric.AddOption)
defer func() {
clear(*o)
*o = (*o)[:0]
addOptPool.Put(o)
}()
o := metricpool.AddOptions()
defer metricpool.PutAddOptions(o)
*o = append(*o, metric.WithAttributeSet(set))
m.Int64UpDownCounter.Add(ctx, incr, *o...)
@@ -332,12 +319,8 @@ func (m CosmosDBClientOperationRequestCharge) Record(
return
}
o := recOptPool.Get().(*[]metric.RecordOption)
defer func() {
clear(*o)
*o = (*o)[:0]
recOptPool.Put(o)
}()
o := metricpool.RecordOptions()
defer metricpool.PutRecordOptions(o)
*o = append(
*o,
@@ -362,12 +345,8 @@ func (m CosmosDBClientOperationRequestCharge) RecordSet(ctx context.Context, val
return
}
o := recOptPool.Get().(*[]metric.RecordOption)
defer func() {
clear(*o)
*o = (*o)[:0]
recOptPool.Put(o)
}()
o := metricpool.RecordOptions()
defer metricpool.PutRecordOptions(o)
*o = append(*o, metric.WithAttributeSet(set))
m.Int64Histogram.Record(ctx, val, *o...)