/
meter.go
64 lines (55 loc) · 1.74 KB
/
meter.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package metric
import (
"github.com/tel-io/tel/v2/pkg/cardinalitydetector"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/metric/instrument/asyncfloat64"
"go.opentelemetry.io/otel/metric/instrument/asyncint64"
"go.opentelemetry.io/otel/metric/instrument/syncfloat64"
"go.opentelemetry.io/otel/metric/instrument/syncint64"
)
var _ metric.Meter = (*meter)(nil)
func newMeter(
delegate metric.Meter,
cardinalityDetectorPool cardinalitydetector.CardinalityDetectorPool,
) *meter {
return &meter{
Meter: delegate,
cardinalityDetectorPool: cardinalityDetectorPool,
}
}
type meter struct {
metric.Meter
cardinalityDetectorPool cardinalitydetector.CardinalityDetectorPool
}
// AsyncFloat64 implements metric.Meter.
func (m *meter) AsyncFloat64() asyncfloat64.InstrumentProvider {
return &asyncFloat64Provider{
InstrumentProvider: m.Meter.AsyncFloat64(),
cardinalityDetectorPool: m.cardinalityDetectorPool,
}
}
// AsyncInt64 implements metric.Meter.
func (m *meter) AsyncInt64() asyncint64.InstrumentProvider {
return &asyncInt64Provider{
InstrumentProvider: m.Meter.AsyncInt64(),
cardinalityDetectorPool: m.cardinalityDetectorPool,
}
}
// SyncFloat64 implements metric.Meter.
func (m *meter) SyncFloat64() syncfloat64.InstrumentProvider {
return &syncFloat64Provider{
InstrumentProvider: m.Meter.SyncFloat64(),
cardinalityDetectorPool: m.cardinalityDetectorPool,
}
}
// SyncInt64 implements metric.Meter.
func (m *meter) SyncInt64() syncint64.InstrumentProvider {
return &syncInt64Provider{
InstrumentProvider: m.Meter.SyncInt64(),
cardinalityDetectorPool: m.cardinalityDetectorPool,
}
}
// Shutdown implements metric.Meter.
func (m *meter) Shutdown() {
m.cardinalityDetectorPool.Shutdown()
}