From 65521165cb3e57cec150bbc954f31b3e8ca0831a Mon Sep 17 00:00:00 2001 From: Ravi Suhag Date: Fri, 1 Nov 2024 19:18:24 +0530 Subject: [PATCH] feat: make verbose resource otel optional --- telemetry/opentelemetry.go | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/telemetry/opentelemetry.go b/telemetry/opentelemetry.go index e4ea5f0..6f2c85d 100644 --- a/telemetry/opentelemetry.go +++ b/telemetry/opentelemetry.go @@ -22,10 +22,11 @@ import ( ) type OpenTelemetryConfig struct { - Enabled bool `yaml:"enabled" mapstructure:"enabled" default:"false"` - CollectorAddr string `yaml:"collector_addr" mapstructure:"collector_addr" default:"localhost:4317"` - PeriodicReadInterval time.Duration `yaml:"periodic_read_interval" mapstructure:"periodic_read_interval" default:"1s"` - TraceSampleProbability float64 `yaml:"trace_sample_probability" mapstructure:"trace_sample_probability" default:"1"` + Enabled bool `yaml:"enabled" mapstructure:"enabled" default:"false"` + CollectorAddr string `yaml:"collector_addr" mapstructure:"collector_addr" default:"localhost:4317"` + PeriodicReadInterval time.Duration `yaml:"periodic_read_interval" mapstructure:"periodic_read_interval" default:"1s"` + TraceSampleProbability float64 `yaml:"trace_sample_probability" mapstructure:"trace_sample_probability" default:"1"` + VerboseResourceLabelsEnabled bool `yaml:"verbose_resource_labels_enabled" mapstructure:"verbose_resource_labels_enabled" default:"false"` } func initOTLP(ctx context.Context, cfg Config, logger log.Logger) (func(), error) { @@ -33,19 +34,24 @@ func initOTLP(ctx context.Context, cfg Config, logger log.Logger) (func(), error logger.Info("OpenTelemetry monitoring is disabled.") return noOp, nil } - res, err := resource.New(ctx, + resourceOptions := []resource.Option{ resource.WithFromEnv(), - resource.WithTelemetrySDK(), - resource.WithOS(), - resource.WithHost(), - resource.WithProcess(), - resource.WithProcessRuntimeName(), - resource.WithProcessRuntimeVersion(), resource.WithAttributes( semconv.ServiceName(cfg.AppName), semconv.ServiceVersion(cfg.AppVersion), ), - ) + } + if cfg.OpenTelemetry.VerboseResourceLabelsEnabled { + resourceOptions = append(resourceOptions, + resource.WithTelemetrySDK(), + resource.WithOS(), + resource.WithHost(), + resource.WithProcess(), + resource.WithProcessRuntimeName(), + resource.WithProcessRuntimeVersion(), + ) + } + res, err := resource.New(ctx, resourceOptions...) if err != nil { return nil, fmt.Errorf("create resource: %w", err) }