| 123456789101112131415161718192021222324252627282930313233 |
- // Copyright The OpenTelemetry Authors
- // SPDX-License-Identifier: Apache-2.0
- package sdk
- import (
- "go.opentelemetry.io/otel/trace"
- "go.opentelemetry.io/otel/trace/noop"
- )
- // TracerProvider returns an auto-instrumentable [trace.TracerProvider].
- //
- // If an [go.opentelemetry.io/auto.Instrumentation] is configured to instrument
- // the process using the returned TracerProvider, all of the telemetry it
- // produces will be processed and handled by that Instrumentation. By default,
- // if no Instrumentation instruments the TracerProvider it will not generate
- // any trace telemetry.
- func TracerProvider() trace.TracerProvider { return tracerProviderInstance }
- var tracerProviderInstance = new(tracerProvider)
- type tracerProvider struct{ noop.TracerProvider }
- var _ trace.TracerProvider = tracerProvider{}
- func (p tracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer {
- cfg := trace.NewTracerConfig(opts...)
- return tracer{
- name: name,
- version: cfg.InstrumentationVersion(),
- schemaURL: cfg.SchemaURL(),
- }
- }
|