add tracing utils to ocis-pkg

This commit is contained in:
A.Unger
2021-08-09 17:45:31 +02:00
parent 4a817959ef
commit 6fc2b7503d

View File

@@ -0,0 +1,41 @@
package tracing
import (
"fmt"
"go.opentelemetry.io/otel/exporters/jaeger"
"go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
)
// GetTraceProvider returns a configured open-telemetry trace provider.
func GetTraceProvider(collectorEndpoint, traceType, serviceName string) (*sdktrace.TracerProvider, error) {
switch t := traceType; t {
case "jaeger":
{
exp, err := jaeger.New(
jaeger.WithCollectorEndpoint(
jaeger.WithEndpoint(collectorEndpoint),
),
)
if err != nil {
return nil, err
}
return sdktrace.NewTracerProvider(
sdktrace.WithBatcher(exp),
sdktrace.WithResource(resource.NewWithAttributes(
semconv.SchemaURL,
semconv.ServiceNameKey.String(serviceName)),
),
), nil
}
case "agent":
fallthrough
case "zipkin":
fallthrough
default:
return nil, fmt.Errorf("invalid trace configuration")
}
}