You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-11-29 23:07:45 +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
60
api/metric/api.go
Normal file
60
api/metric/api.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package metric
|
||||
|
||||
import (
|
||||
"github.com/open-telemetry/opentelemetry-go/api/core"
|
||||
"github.com/open-telemetry/opentelemetry-go/api/tag"
|
||||
"github.com/open-telemetry/opentelemetry-go/api/unit"
|
||||
)
|
||||
|
||||
type (
|
||||
Metric interface {
|
||||
Measure() core.Measure
|
||||
|
||||
DefinitionID() core.EventID
|
||||
|
||||
Type() MetricType
|
||||
Fields() []core.Key
|
||||
Err() error
|
||||
|
||||
base() *baseMetric
|
||||
}
|
||||
|
||||
MetricType int
|
||||
)
|
||||
|
||||
const (
|
||||
Invalid MetricType = iota
|
||||
GaugeInt64
|
||||
GaugeFloat64
|
||||
DerivedGaugeInt64
|
||||
DerivedGaugeFloat64
|
||||
CumulativeInt64
|
||||
CumulativeFloat64
|
||||
DerivedCumulativeInt64
|
||||
DerivedCumulativeFloat64
|
||||
)
|
||||
|
||||
type (
|
||||
Option func(*baseMetric, *[]tag.Option)
|
||||
)
|
||||
|
||||
// WithDescription applies provided description.
|
||||
func WithDescription(desc string) Option {
|
||||
return func(_ *baseMetric, to *[]tag.Option) {
|
||||
*to = append(*to, tag.WithDescription(desc))
|
||||
}
|
||||
}
|
||||
|
||||
// WithUnit applies provided unit.
|
||||
func WithUnit(unit unit.Unit) Option {
|
||||
return func(_ *baseMetric, to *[]tag.Option) {
|
||||
*to = append(*to, tag.WithUnit(unit))
|
||||
}
|
||||
}
|
||||
|
||||
// WithKeys applies the provided dimension keys.
|
||||
func WithKeys(keys ...core.Key) Option {
|
||||
return func(bm *baseMetric, _ *[]tag.Option) {
|
||||
bm.keys = keys
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user