diff --git a/README.md b/README.md index 113eb7768..dd918541b 100644 --- a/README.md +++ b/README.md @@ -156,13 +156,14 @@ the Compact Thrift API port. You can configure the Jaeger exporter by following 3. See the [sample][jaeger-sample] for an example of how to use the exporter. ```csharp -var exporter = new JaegerExporter( - new JaegerExporterOptions - { - ServiceName = "tracing-to-jaeger-service", - AgentHost = host, - AgentPort = port, - }); +var jaegerOptions = new JaegerExporterOptions() + { + ServiceName = "tracing-to-jaeger-service", + AgentHost = host, + AgentPort = port, + }; + +var exporter = new JaegerTraceExporter(jaegerOptions); var tracer = new Tracer(new BatchingSpanProcessor(exporter), TraceConfig.Default); diff --git a/samples/Exporters/TestJaeger.cs b/samples/Exporters/TestJaeger.cs index 508d097e2..52e217ad6 100644 --- a/samples/Exporters/TestJaeger.cs +++ b/samples/Exporters/TestJaeger.cs @@ -20,6 +20,7 @@ namespace Samples using System.Collections.Generic; using System.Threading; using OpenTelemetry.Exporter.Jaeger; + using OpenTelemetry.Exporter.Jaeger.Implementation; using OpenTelemetry.Trace; using OpenTelemetry.Trace.Config; using OpenTelemetry.Trace.Export; @@ -29,13 +30,15 @@ namespace Samples internal static object Run(string host, int port) { // Configure exporter to export traces to Jaeger + var jaegerOptions = new JaegerExporterOptions() + { + ServiceName = "tracing-to-jaeger-service", + AgentHost = host, + AgentPort = port, + }; + var exporter = new JaegerTraceExporter( - new JaegerExporterOptions - { - ServiceName = "tracing-to-jaeger-service", - AgentHost = host, - AgentPort = port, - }); + jaegerOptions); // Create a tracer. You may also need to register it as a global instance to make auto-collectors work.. var tracer = new Tracer(new BatchingSpanProcessor(exporter), TraceConfig.Default); @@ -80,6 +83,7 @@ namespace Samples // Annotate our span to capture metadata about our operation var attributes = new Dictionary(); attributes.Add("use", "demo"); + attributes.Add("iteration", i); span.AddEvent("Invoking DoWork", attributes); } } diff --git a/src/OpenTelemetry.Exporter.Jaeger/Implementation/JaegerUdpBatcher.cs b/src/OpenTelemetry.Exporter.Jaeger/Implementation/JaegerUdpBatcher.cs index 8827909fb..266ec743f 100644 --- a/src/OpenTelemetry.Exporter.Jaeger/Implementation/JaegerUdpBatcher.cs +++ b/src/OpenTelemetry.Exporter.Jaeger/Implementation/JaegerUdpBatcher.cs @@ -1,4 +1,4 @@ -// +// // Copyright 2018, OpenTelemetry Authors // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -39,7 +39,7 @@ namespace OpenTelemetry.Exporter.Jaeger.Implementation public JaegerUdpBatcher(JaegerExporterOptions options) { - this.maxPacketSize = options.MaxPacketSize == 0 ? DefaultMaxPacketSize : options.MaxPacketSize; + this.maxPacketSize = (!options.MaxPacketSize.HasValue || options.MaxPacketSize == 0) ? DefaultMaxPacketSize : options.MaxPacketSize; this.protocolFactory = new TCompactProtocol.Factory(); this.clientTransport = new JaegerThriftClientTransport(options.AgentHost, options.AgentPort.Value); this.thriftClient = new JaegerThriftClient(this.protocolFactory.GetProtocol(this.clientTransport)); diff --git a/src/OpenTelemetry.Exporter.Jaeger/JaegerTraceExporter.cs b/src/OpenTelemetry.Exporter.Jaeger/JaegerTraceExporter.cs index b0010db3c..ddabdda2e 100644 --- a/src/OpenTelemetry.Exporter.Jaeger/JaegerTraceExporter.cs +++ b/src/OpenTelemetry.Exporter.Jaeger/JaegerTraceExporter.cs @@ -35,13 +35,14 @@ namespace OpenTelemetry.Exporter.Jaeger private bool disposedValue = false; // To detect redundant dispose calls public JaegerTraceExporter(JaegerExporterOptions options) + : this(options, new JaegerUdpBatcher(options)) + { + } + + public JaegerTraceExporter(JaegerExporterOptions options, IJaegerUdpBatcher jaegerAgentUdpBatcher) { this.ValidateOptions(options); this.InitializeOptions(options); - } - - public JaegerTraceExporter(IJaegerUdpBatcher jaegerAgentUdpBatcher) - { this.jaegerAgentUdpBatcher = jaegerAgentUdpBatcher; }