From 2bfef9e9167de9d72e07f7e009de334db08bfc3c Mon Sep 17 00:00:00 2001 From: Serge Zaitsev Date: Tue, 1 Aug 2023 14:23:31 +0200 Subject: [PATCH] Tracing: Differentiate collector and agent better (#71851) * differentiate collector and agent better * Add back the max packet size Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com> --------- Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com> --- pkg/infra/tracing/tracing.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/infra/tracing/tracing.go b/pkg/infra/tracing/tracing.go index 0954651b760..800cc97f645 100644 --- a/pkg/infra/tracing/tracing.go +++ b/pkg/infra/tracing/tracing.go @@ -267,10 +267,14 @@ func splitCustomAttribs(s string) ([]attribute.KeyValue, error) { func (ots *Opentelemetry) initJaegerTracerProvider() (*tracesdk.TracerProvider, error) { var ep jaeger.EndpointOption // Create the Jaeger exporter: address can be either agent address (host:port) or collector URL - if host, port, err := net.SplitHostPort(ots.Address); err == nil { + if strings.HasPrefix(ots.Address, "http://") || strings.HasPrefix(ots.Address, "https://") { + ots.log.Debug("using jaeger collector", "address", ots.Address) + ep = jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(ots.Address)) + } else if host, port, err := net.SplitHostPort(ots.Address); err == nil { + ots.log.Debug("using jaeger agent", "host", host, "port", port) ep = jaeger.WithAgentEndpoint(jaeger.WithAgentHost(host), jaeger.WithAgentPort(port), jaeger.WithMaxPacketSize(64000)) } else { - ep = jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(ots.Address)) + return nil, fmt.Errorf("invalid tracer address: %s", ots.Address) } exp, err := jaeger.New(ep) if err != nil {