mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-10-15 19:11:29 +08:00

### Summary A config package based on https://github.com/open-telemetry/opentelemetry-collector/blob/main/confmap/confmap.go for signoz. #### Related Issues / PR's This is a part of https://github.com/SigNoz/signoz/pull/5710
31 lines
876 B
Go
31 lines
876 B
Go
package instrumentation
|
|
|
|
import (
|
|
"context"
|
|
|
|
contribsdkconfig "go.opentelemetry.io/contrib/config"
|
|
sdktrace "go.opentelemetry.io/otel/trace"
|
|
nooptrace "go.opentelemetry.io/otel/trace/noop"
|
|
)
|
|
|
|
// newTracerProvider creates a new tracer provider based on the configuration.
|
|
// If tracing is disabled, it returns a no-op tracer provider.
|
|
func newTracerProvider(ctx context.Context, cfg Config, cfgResource contribsdkconfig.Resource) (sdktrace.TracerProvider, error) {
|
|
if !cfg.Traces.Enabled {
|
|
return nooptrace.NewTracerProvider(), nil
|
|
}
|
|
|
|
sdk, err := contribsdkconfig.NewSDK(
|
|
contribsdkconfig.WithContext(ctx),
|
|
contribsdkconfig.WithOpenTelemetryConfiguration(contribsdkconfig.OpenTelemetryConfiguration{
|
|
TracerProvider: &cfg.Traces.TracerProvider,
|
|
Resource: &cfgResource,
|
|
}),
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return sdk.TracerProvider(), nil
|
|
}
|