Skip to content

Instantly share code, notes, and snippets.

@yurishkuro
Last active February 6, 2023 08:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yurishkuro/b0c153dae0f7409fce374dd02f56df22 to your computer and use it in GitHub Desktop.
Save yurishkuro/b0c153dae0f7409fce374dd02f56df22 to your computer and use it in GitHub Desktop.
HotROD init OpenTelemetry SDK and bridge
// Init initializes OpenTelemetry SDK and uses OTel-OpenTracing Bridge
// to return an OpenTracing-compatible tracer.
func Init(
serviceName string,
exporterType string,
metricsFactory metrics.Factory,
logger log.Factory
) opentracing.Tracer {
exp, err := createOtelExporter(exporterType)
if err != nil {
logger.Bg().Fatal("cannot create exporter",
zap.String("exporterType", exporterType), zap.Error(err))
}
logger.Bg().Info("using " + exporterType + " trace exporter")
tp := sdktrace.NewTracerProvider(
sdktrace.WithBatcher(exp),
sdktrace.WithResource(resource.NewWithAttributes(
semconv.SchemaURL,
semconv.ServiceNameKey.String(serviceName),
)),
)
otTracer, _ := otbridge.NewTracerPair(tp.Tracer(""))
logger.Bg().Info("created OTEL->OT brige", zap.String("service-name", serviceName))
return otTracer
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment