1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2025-07-03 00:27:03 +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:
Cheng-Lung Sung
2019-11-05 04:23:23 +08:00
committed by rghetia
parent 881e51f708
commit 6b48fce4ec
2 changed files with 25 additions and 6 deletions

View File

@ -16,25 +16,46 @@ package main
import (
"context"
"log"
"go.opentelemetry.io/otel/api/distributedcontext"
"go.opentelemetry.io/otel/api/key"
"go.opentelemetry.io/otel/api/metric"
"go.opentelemetry.io/otel/api/trace"
"go.opentelemetry.io/otel/exporter/trace/stdout"
"go.opentelemetry.io/otel/global"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
)
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")
barKey = key.New("ex.com/bar")
lemonsKey = key.New("ex.com/lemons")
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() {
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",
metric.WithKeys(fooKey, barKey, lemonsKey),
metric.WithDescription("A gauge set to 1.0"),
@ -91,7 +112,4 @@ func main() {
if err != nil {
panic(err)
}
// TODO: How to flush?
// loader.Flush()
}