You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2025-07-15 01:04:25 +02:00
example/basic: make basic example work (#279)
* example/basic: make basic example work - use stdout as exportor (otherwise no output when you run it) * meter does not work yet, rephrase TODO
This commit is contained in:
@ -90,6 +90,7 @@ github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7
|
|||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
||||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
||||||
|
github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk=
|
||||||
github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
||||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||||
|
@ -16,25 +16,46 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"log"
|
||||||
|
|
||||||
"go.opentelemetry.io/otel/api/distributedcontext"
|
"go.opentelemetry.io/otel/api/distributedcontext"
|
||||||
"go.opentelemetry.io/otel/api/key"
|
"go.opentelemetry.io/otel/api/key"
|
||||||
"go.opentelemetry.io/otel/api/metric"
|
"go.opentelemetry.io/otel/api/metric"
|
||||||
"go.opentelemetry.io/otel/api/trace"
|
"go.opentelemetry.io/otel/api/trace"
|
||||||
|
"go.opentelemetry.io/otel/exporter/trace/stdout"
|
||||||
"go.opentelemetry.io/otel/global"
|
"go.opentelemetry.io/otel/global"
|
||||||
|
sdktrace "go.opentelemetry.io/otel/sdk/trace"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
tracer = global.TraceProvider().GetTracer("ex.com/basic")
|
|
||||||
meter = global.MeterProvider().GetMeter("ex.com/basic") // TODO: should share resources ^^^?
|
|
||||||
|
|
||||||
fooKey = key.New("ex.com/foo")
|
fooKey = key.New("ex.com/foo")
|
||||||
barKey = key.New("ex.com/bar")
|
barKey = key.New("ex.com/bar")
|
||||||
lemonsKey = key.New("ex.com/lemons")
|
lemonsKey = key.New("ex.com/lemons")
|
||||||
anotherKey = key.New("ex.com/another")
|
anotherKey = key.New("ex.com/another")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// initTracer creates and registers trace provider instance.
|
||||||
|
func initTracer() {
|
||||||
|
var err error
|
||||||
|
exp, err := stdout.NewExporter(stdout.Options{PrettyPrint: false})
|
||||||
|
if err != nil {
|
||||||
|
log.Panicf("failed to initialize stdout exporter %v\n", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
tp, err := sdktrace.NewProvider(sdktrace.WithSyncer(exp),
|
||||||
|
sdktrace.WithConfig(sdktrace.Config{DefaultSampler: sdktrace.AlwaysSample()}))
|
||||||
|
if err != nil {
|
||||||
|
log.Panicf("failed to initialize trace provider %v\n", err)
|
||||||
|
}
|
||||||
|
global.SetTraceProvider(tp)
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
initTracer()
|
||||||
|
tracer := global.TraceProvider().GetTracer("ex.com/basic")
|
||||||
|
// TODO: Meter doesn't work yet, check if resources to be shared afterwards.
|
||||||
|
meter := global.MeterProvider().GetMeter("ex.com/basic")
|
||||||
|
|
||||||
oneMetric := meter.NewFloat64Gauge("ex.com.one",
|
oneMetric := meter.NewFloat64Gauge("ex.com.one",
|
||||||
metric.WithKeys(fooKey, barKey, lemonsKey),
|
metric.WithKeys(fooKey, barKey, lemonsKey),
|
||||||
metric.WithDescription("A gauge set to 1.0"),
|
metric.WithDescription("A gauge set to 1.0"),
|
||||||
@ -91,7 +112,4 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: How to flush?
|
|
||||||
// loader.Flush()
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user