| // Copyright The OpenTelemetry Authors | |
| // SPDX-License-Identifier: Apache-2.0 | |
| package otel | |
| import ( | |
| "go.opentelemetry.io/otel/internal/global" | |
| "go.opentelemetry.io/otel/trace" | |
| ) | |
| // Tracer creates a named tracer that implements Tracer interface. | |
| // If the name is an empty string then provider uses default name. | |
| // | |
| // This is short for GetTracerProvider().Tracer(name, opts...) | |
| func Tracer(name string, opts ...trace.TracerOption) trace.Tracer { | |
| return GetTracerProvider().Tracer(name, opts...) | |
| } | |
| // GetTracerProvider returns the registered global trace provider. | |
| // If none is registered then an instance of NoopTracerProvider is returned. | |
| // | |
| // Use the trace provider to create a named tracer. E.g. | |
| // | |
| // tracer := otel.GetTracerProvider().Tracer("example.com/foo") | |
| // | |
| // or | |
| // | |
| // tracer := otel.Tracer("example.com/foo") | |
| func GetTracerProvider() trace.TracerProvider { | |
| return global.TracerProvider() | |
| } | |
| // SetTracerProvider registers `tp` as the global trace provider. | |
| func SetTracerProvider(tp trace.TracerProvider) { | |
| global.SetTracerProvider(tp) | |
| } |