You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-11-23 22:34:47 +02:00
Golang opentelemetry-go draft API (incomplete) (#9)
* Work in progress from https://github.com/lightstep/opentelemetry-golang-prototype * Renames * Rename * Finish rename * Rename packages * README
This commit is contained in:
committed by
rghetia
parent
1429272864
commit
e17f4468a6
50
api/stats/stats.go
Normal file
50
api/stats/stats.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package stats
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/open-telemetry/opentelemetry-go/api/core"
|
||||
"github.com/open-telemetry/opentelemetry-go/api/scope"
|
||||
"github.com/open-telemetry/opentelemetry-go/exporter/observer"
|
||||
)
|
||||
|
||||
type (
|
||||
Interface interface {
|
||||
Record(ctx context.Context, m ...core.Measurement)
|
||||
RecordSingle(ctx context.Context, m core.Measurement)
|
||||
}
|
||||
|
||||
Recorder struct {
|
||||
core.ScopeID
|
||||
}
|
||||
)
|
||||
|
||||
func With(scope scope.Scope) Recorder {
|
||||
return Recorder{scope.ScopeID()}
|
||||
}
|
||||
|
||||
func Record(ctx context.Context, m ...core.Measurement) {
|
||||
With(scope.Active(ctx)).Record(ctx, m...)
|
||||
}
|
||||
|
||||
func RecordSingle(ctx context.Context, m core.Measurement) {
|
||||
With(scope.Active(ctx)).RecordSingle(ctx, m)
|
||||
}
|
||||
|
||||
func (r Recorder) Record(ctx context.Context, m ...core.Measurement) {
|
||||
observer.Record(observer.Event{
|
||||
Type: observer.RECORD_STATS,
|
||||
Scope: r.ScopeID,
|
||||
Context: ctx,
|
||||
Stats: m,
|
||||
})
|
||||
}
|
||||
|
||||
func (r Recorder) RecordSingle(ctx context.Context, m core.Measurement) {
|
||||
observer.Record(observer.Event{
|
||||
Type: observer.RECORD_STATS,
|
||||
Scope: r.ScopeID,
|
||||
Context: ctx,
|
||||
Stat: m,
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user