mirror of
https://github.com/Unkn0wnCat/matrix-veles.git
synced 2025-04-28 09:46:51 +02:00
69 lines
1.7 KiB
Go
69 lines
1.7 KiB
Go
package tracer
|
|
|
|
import (
|
|
"context"
|
|
"github.com/spf13/viper"
|
|
"go.opentelemetry.io/otel"
|
|
"go.opentelemetry.io/otel/attribute"
|
|
"go.opentelemetry.io/otel/exporters/jaeger"
|
|
"go.opentelemetry.io/otel/sdk/resource"
|
|
tracesdk "go.opentelemetry.io/otel/sdk/trace"
|
|
semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
|
|
"go.opentelemetry.io/otel/trace"
|
|
"log"
|
|
"os"
|
|
"runtime"
|
|
"runtime/debug"
|
|
)
|
|
|
|
var (
|
|
TraceProvider *tracesdk.TracerProvider
|
|
Ctx context.Context
|
|
Cancel context.CancelFunc
|
|
Tracer trace.Tracer
|
|
)
|
|
|
|
func SetupDummy() {
|
|
tp := tracesdk.NewTracerProvider()
|
|
TraceProvider = tp
|
|
Ctx, Cancel = context.WithCancel(context.Background())
|
|
Tracer = tp.Tracer("matrix_veles")
|
|
}
|
|
|
|
func SetupJaeger() {
|
|
exp, err := jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(viper.GetString("tracing.jaeger.endpoint"))))
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
bi, ok := debug.ReadBuildInfo()
|
|
if !ok {
|
|
log.Fatal(ok)
|
|
}
|
|
|
|
hostname, err := os.Hostname()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
tp := tracesdk.NewTracerProvider(
|
|
// Always be sure to batch in production.
|
|
tracesdk.WithBatcher(exp),
|
|
// Record information about this application in a Resource.
|
|
tracesdk.WithResource(resource.NewWithAttributes(
|
|
semconv.SchemaURL,
|
|
semconv.ServiceNameKey.String("matrix_veles"),
|
|
attribute.String("version", bi.Main.Version),
|
|
attribute.String("go_version", runtime.Version()),
|
|
attribute.String("hostname", hostname),
|
|
attribute.String("os", runtime.GOOS),
|
|
attribute.String("arch", runtime.GOARCH),
|
|
)),
|
|
)
|
|
|
|
otel.SetTracerProvider(tp)
|
|
|
|
TraceProvider = tp
|
|
Ctx, Cancel = context.WithCancel(context.Background())
|
|
Tracer = tp.Tracer("matrix_veles")
|
|
}
|