From 08eab3b160856ec9e3e1b3768a005dd6bd41ed20 Mon Sep 17 00:00:00 2001 From: hgaol Date: Thu, 24 Nov 2022 14:54:43 +0800 Subject: [PATCH 1/6] [DOC] Update Jaeger tutorial to use OTLP Exporter --- OpenTelemetry.sln | 7 +++ docs/trace/getting-started-jaeger/Program.cs | 8 +++- docs/trace/getting-started-jaeger/README.md | 44 +++++++++++-------- .../getting-started-jaeger.csproj | 2 +- 4 files changed, 41 insertions(+), 20 deletions(-) diff --git a/OpenTelemetry.sln b/OpenTelemetry.sln index 1ec148ee51b..7b231532653 100644 --- a/OpenTelemetry.sln +++ b/OpenTelemetry.sln @@ -240,6 +240,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Exporter.Open EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTelemetry.Exporter.Console.Tests", "test\OpenTelemetry.Exporter.Console.Tests\OpenTelemetry.Exporter.Console.Tests.csproj", "{011E70E1-152A-47BB-AF83-12DD12B125ED}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "getting-started-jaeger", "docs\trace\getting-started-jaeger\getting-started-jaeger.csproj", "{329AD438-6D15-4432-99BE-B0E85F00B3CB}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -498,6 +500,10 @@ Global {011E70E1-152A-47BB-AF83-12DD12B125ED}.Debug|Any CPU.Build.0 = Debug|Any CPU {011E70E1-152A-47BB-AF83-12DD12B125ED}.Release|Any CPU.ActiveCfg = Release|Any CPU {011E70E1-152A-47BB-AF83-12DD12B125ED}.Release|Any CPU.Build.0 = Release|Any CPU + {329AD438-6D15-4432-99BE-B0E85F00B3CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {329AD438-6D15-4432-99BE-B0E85F00B3CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {329AD438-6D15-4432-99BE-B0E85F00B3CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {329AD438-6D15-4432-99BE-B0E85F00B3CB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -535,6 +541,7 @@ Global {9A07D215-90AC-4BAF-BCDB-73D74FD3A5C5} = {3862190B-E2C5-418E-AFDC-DB281FB5C705} {5FDAF679-DE5A-4C73-A49B-8ABCF2399229} = {77C7929A-2EED-4AA6-8705-B5C443C8AA0F} {A2DF46DE-50D7-4887-8C9D-4BD79CA19FAA} = {3862190B-E2C5-418E-AFDC-DB281FB5C705} + {329AD438-6D15-4432-99BE-B0E85F00B3CB} = {5B7FB835-3FFF-4BC2-99C5-A5B5FAE3C818} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {55639B5C-0770-4A22-AB56-859604650521} diff --git a/docs/trace/getting-started-jaeger/Program.cs b/docs/trace/getting-started-jaeger/Program.cs index 6cf3628f30b..53538c2ba00 100644 --- a/docs/trace/getting-started-jaeger/Program.cs +++ b/docs/trace/getting-started-jaeger/Program.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Threading.Tasks; using OpenTelemetry; +using OpenTelemetry.Exporter; using OpenTelemetry.Resources; using OpenTelemetry.Trace; @@ -37,7 +38,12 @@ public static async Task Main() .AddSource("OpenTelemetry.Demo.Jaeger") .AddHttpClientInstrumentation() .AddConsoleExporter() - .AddJaegerExporter() + .AddOtlpExporter(opt => + { + // using grpc protocol + opt.Endpoint = new Uri("http://localhost:4317"); + opt.Protocol = OtlpExportProtocol.Grpc; + }) .Build(); using var parent = MyActivitySource.StartActivity("JaegerDemo"); diff --git a/docs/trace/getting-started-jaeger/README.md b/docs/trace/getting-started-jaeger/README.md index b65d658d24c..93f2328d339 100644 --- a/docs/trace/getting-started-jaeger/README.md +++ b/docs/trace/getting-started-jaeger/README.md @@ -1,7 +1,7 @@ # Getting Started with Jaeger - [Export traces from the application](#export-traces-from-the-application) - - [Check results in the console](#check-results-in-the-console) + - [Check results in the console](#check-results-in-the-console) - [Collect and visualize traces using Jaeger](#collect-and-visualize-traces-using-jaeger) - [Final cleanup](#final-cleanup) - [Learn more](#learn-more) @@ -20,14 +20,14 @@ dotnet run ``` Add reference to [Console -Exporter](../../../src/OpenTelemetry.Exporter.Console/README.md), [Jaeger -Exporter](../../../src/OpenTelemetry.Exporter.Jaeger/README.md) and [HttpClient +Exporter](../../../src/OpenTelemetry.Exporter.Console/README.md), [OTLP +Exporter](../../../src/OpenTelemetry.Exporter.OpenTelemetryProtocol/README.md) and [HttpClient Instrumentation](../../../src/OpenTelemetry.Instrumentation.Http/README.md): ```sh dotnet add package OpenTelemetry.Exporter.Console -dotnet add package OpenTelemetry.Exporter.Jaeger -dotnet add package OpenTelemetry.Instrumentation.Http +dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol +dotnet add package OpenTelemetry.Instrumentation.Http --prerelease ``` Now copy the code from [Program.cs](./Program.cs). @@ -67,15 +67,19 @@ Note that we have configured two exporters in the code: using var tracerProvider = Sdk.CreateTracerProviderBuilder() ... .AddConsoleExporter() - .AddJaegerExporter() + .AddOtlpExporter(opt => + { + opt.Endpoint = new Uri("http://localhost:4317"); + opt.Protocol = OtlpExportProtocol.Grpc; + }) .Build(); ``` When we run the application, the `ConsoleExporter` was printing the traces on -console, and the `JaegerExporter` was attempting to send the traces to Jaeger -Agent via the default endpoint `udp://localhost:6831`. +console, and the `OtlpExporter` was attempting to send the traces to Jaeger +Agent via the default endpoint `http://localhost:4317`. -Since we didn't have Jaeger running, the traces received by `JaegerExporter` +Since we didn't have Jaeger running, the traces received by `OtlpExporter` were simply dropped on the floor. In the next step, we are going to learn about how to use Jaeger to collect and visualize the traces. @@ -87,7 +91,7 @@ subgraph SDK SimpleExportProcessor["SimpleExportProcessor < Activity >"] BatchExportProcessor["BatchExportProcessor < Activity >"] ConsoleExporter - JaegerExporter + OtlpExporter end subgraph API @@ -98,7 +102,7 @@ ActivitySource --> | System.Diagnostics.Activity | TracerProvider TracerProvider --> | System.Diagnostics.Activity | SimpleExportProcessor --> | Batch | ConsoleExporter -TracerProvider --> | System.Diagnostics.Activity | BatchExportProcessor --> | Batch | JaegerExporter +TracerProvider --> | System.Diagnostics.Activity | BatchExportProcessor --> | Batch | OtlpExporter ``` ## Collect and visualize traces using Jaeger @@ -112,7 +116,7 @@ After finished downloading, extract it to a local location that's easy to access. Run the `jaeger-all-in-one(.exe)` executable: ```sh -./jaeger-all-in-one +./jaeger-all-in-one --collector.otlp.enabled ``` Now we should be able to see the Jaeger UI at @@ -133,7 +137,7 @@ Chart](https://en.wikipedia.org/wiki/Gantt_chart): ```mermaid graph TD -JaegerExporter["JaegerExporter"] --> |udp://localhost:6831| Jaeger +OtlpExporter["OtlpExporter"] --> |udp://localhost:6831| Jaeger Jaeger -->|http://localhost:16686/| JaegerUI["Browser
(Jaeger UI)"] ``` @@ -147,7 +151,11 @@ using var tracerProvider = Sdk.CreateTracerProviderBuilder() ... // Remove Console Exporter from the final application // .AddConsoleExporter() - .AddJaegerExporter() + .AddOtlpExporter(opt => + { + opt.Endpoint = new Uri("http://localhost:4317"); + opt.Protocol = OtlpExportProtocol.Grpc; + }) .Build(); ``` @@ -161,7 +169,7 @@ graph LR subgraph SDK TracerProvider BatchExportProcessor["BatchExportProcessor < Activity >"] - JaegerExporter + OtlpExporter end subgraph API @@ -170,11 +178,11 @@ end ActivitySource --> | System.Diagnostics.Activity | TracerProvider --> | System.Diagnostics.Activity | BatchExportProcessor -BatchExportProcessor --> | Batch | JaegerExporter +BatchExportProcessor --> | Batch | OtlpExporter ``` ## Learn more - [Jaeger Tracing](https://www.jaegertracing.io/) -- [Jaeger Exporter for OpenTelemetry - .NET](../../../src/OpenTelemetry.Exporter.Jaeger/README.md) +- [OTLP Exporter for OpenTelemetry + .NET](../../../src/OpenTelemetry.Exporter.OpenTelemetryProtocol/README.md) diff --git a/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj b/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj index e9899f2c7e8..952da3d5978 100644 --- a/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj +++ b/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj @@ -1,7 +1,7 @@ - + From 6fe220ee4a8301c6ecbd5f64885e436be5072c86 Mon Sep 17 00:00:00 2001 From: hgaol Date: Mon, 28 Nov 2022 18:18:08 +0800 Subject: [PATCH 2/6] fix HttpClient could not be found in .NET framework error during CI --- .../getting-started-jaeger.csproj | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj b/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj index 952da3d5978..7530ba1b401 100644 --- a/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj +++ b/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj @@ -1,7 +1,14 @@ + + |net462|net472|net48| + - - - + + + + + + + From 29872a9422cb23308d430e8f4900a936d37964d2 Mon Sep 17 00:00:00 2001 From: hgaol Date: Tue, 29 Nov 2022 09:08:25 +0800 Subject: [PATCH 3/6] fix markdown lint issue --- docs/trace/getting-started-jaeger/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/trace/getting-started-jaeger/README.md b/docs/trace/getting-started-jaeger/README.md index 93f2328d339..ad68c615a26 100644 --- a/docs/trace/getting-started-jaeger/README.md +++ b/docs/trace/getting-started-jaeger/README.md @@ -1,7 +1,7 @@ # Getting Started with Jaeger - [Export traces from the application](#export-traces-from-the-application) - - [Check results in the console](#check-results-in-the-console) + - [Check results in the console](#check-results-in-the-console) - [Collect and visualize traces using Jaeger](#collect-and-visualize-traces-using-jaeger) - [Final cleanup](#final-cleanup) - [Learn more](#learn-more) @@ -21,8 +21,8 @@ dotnet run Add reference to [Console Exporter](../../../src/OpenTelemetry.Exporter.Console/README.md), [OTLP -Exporter](../../../src/OpenTelemetry.Exporter.OpenTelemetryProtocol/README.md) and [HttpClient -Instrumentation](../../../src/OpenTelemetry.Instrumentation.Http/README.md): +Exporter](../../../src/OpenTelemetry.Exporter.OpenTelemetryProtocol/README.md) and +[HttpClient Instrumentation](../../../src/OpenTelemetry.Instrumentation.Http/README.md): ```sh dotnet add package OpenTelemetry.Exporter.Console From 4f26fa2d323c0815c7c7139795c42d241f8f61a0 Mon Sep 17 00:00:00 2001 From: hgaol Date: Tue, 29 Nov 2022 11:21:18 +0800 Subject: [PATCH 4/6] Update jaeger example .csproj file --- .../getting-started-jaeger/getting-started-jaeger.csproj | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj b/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj index 7530ba1b401..7ac83dd84db 100644 --- a/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj +++ b/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj @@ -1,14 +1,10 @@ - - - |net462|net472|net48| - + - - + From 4e1083d5ae24163e7a0631c5e98b48a68ef25293 Mon Sep 17 00:00:00 2001 From: Reiley Yang Date: Tue, 29 Nov 2022 09:26:50 -0800 Subject: [PATCH 5/6] Update docs/trace/getting-started-jaeger/getting-started-jaeger.csproj --- .../getting-started-jaeger/getting-started-jaeger.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj b/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj index 7ac83dd84db..8ec268ab7ff 100644 --- a/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj +++ b/docs/trace/getting-started-jaeger/getting-started-jaeger.csproj @@ -1,8 +1,8 @@  - - - + + + From e3f15b060562db9aeda28ddac1df59ece24a0791 Mon Sep 17 00:00:00 2001 From: hgaol Date: Wed, 30 Nov 2022 09:18:01 +0800 Subject: [PATCH 6/6] Remove redundant options setting and update README --- docs/trace/getting-started-jaeger/Program.cs | 7 +------ docs/trace/getting-started-jaeger/README.md | 14 +++----------- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/docs/trace/getting-started-jaeger/Program.cs b/docs/trace/getting-started-jaeger/Program.cs index 53538c2ba00..b57660f7470 100644 --- a/docs/trace/getting-started-jaeger/Program.cs +++ b/docs/trace/getting-started-jaeger/Program.cs @@ -38,12 +38,7 @@ public static async Task Main() .AddSource("OpenTelemetry.Demo.Jaeger") .AddHttpClientInstrumentation() .AddConsoleExporter() - .AddOtlpExporter(opt => - { - // using grpc protocol - opt.Endpoint = new Uri("http://localhost:4317"); - opt.Protocol = OtlpExportProtocol.Grpc; - }) + .AddOtlpExporter() .Build(); using var parent = MyActivitySource.StartActivity("JaegerDemo"); diff --git a/docs/trace/getting-started-jaeger/README.md b/docs/trace/getting-started-jaeger/README.md index ad68c615a26..c84a21c130e 100644 --- a/docs/trace/getting-started-jaeger/README.md +++ b/docs/trace/getting-started-jaeger/README.md @@ -67,11 +67,7 @@ Note that we have configured two exporters in the code: using var tracerProvider = Sdk.CreateTracerProviderBuilder() ... .AddConsoleExporter() - .AddOtlpExporter(opt => - { - opt.Endpoint = new Uri("http://localhost:4317"); - opt.Protocol = OtlpExportProtocol.Grpc; - }) + .AddOtlpExporter() .Build(); ``` @@ -137,7 +133,7 @@ Chart](https://en.wikipedia.org/wiki/Gantt_chart): ```mermaid graph TD -OtlpExporter["OtlpExporter"] --> |udp://localhost:6831| Jaeger +OtlpExporter["OtlpExporter"] --> |http://localhost:4317| Jaeger Jaeger -->|http://localhost:16686/| JaegerUI["Browser
(Jaeger UI)"] ``` @@ -151,11 +147,7 @@ using var tracerProvider = Sdk.CreateTracerProviderBuilder() ... // Remove Console Exporter from the final application // .AddConsoleExporter() - .AddOtlpExporter(opt => - { - opt.Endpoint = new Uri("http://localhost:4317"); - opt.Protocol = OtlpExportProtocol.Grpc; - }) + .AddOtlpExporter() .Build(); ```