49  
netcore
Поиск  
Always will be ready notify the world about expectations as easy as possible: job change page
May 23, 2022

OpenTelemetry with Jaeger in .NET Core

Автор:
Nitesh Singhal
Источник:
Просмотров:
4048

A step by step guide to integrate OpenTelemetry with ASP.Net core and visualize in Jaeger.

OpenTelemetry is a collection of tools, APIs, and SDKs. Use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software’s performance and behavior.

In this tutorial, we will look at how it can be integrated with ASP.NET core web project.

We will use Jaeger tool to analyze and visualize the telemetry data.

Let’s get started.

Project Setup

I have set up an API project and a Razor app.

Let’s setup API project first.


API Project

add the required nuget packages:

<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.2.0-rc3" />

<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.0.0-rc9" />

<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.0.0-rc9" />

Now open Program.cs and add the following code:

here we are setting up Jaeger’s URI as OLTP exporter endpoint.

Now let’s setup web app.


Web App Project

and also add required nuget packages:

<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.2.0-rc3" />

<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.0.0-rc9" />

<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.0.0-rc9" />

<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.0.0-rc9" />

Open Program.cs and add the following code:

we will need to make one more change, call the API and show the result on UI.

Open the Index.chtml.cs file and add the following code:


Index.chtml.cs

and open Index.html and add the following table:


Index.html

add the following code in Program.cs:


Program.cs

we are ready to run the app.

Build both project and make sure they build with any errors.

Now let’s setup Jaeger.

Jaeger Setup

I am using docker setup.

Use the following cmd to create a docker container running for Jaeger:

docker run --name jaeger -p 13133:13133 -p 16686:16686 -p 4317:4317 -d --restart=unless-stopped jaegertracing/opentelemetry-all-in-one

To verify if it running successfully, Go to browser and open UI at http://localhost:16686

Execution

Let’s run the API and WebApp.


Web App UI

We can see the list of weather forecast on UI. which is being fetched using API project and displayed on UI.

Now Let’s look at the Jaeger UI.


Jaeger UI

 

We can see both API and UI project is listed.

We can select operation from Operation drop down and Click on find trace.


Trace

We can see multiple trace result, we select one for further analysis:


Trace detail

We can see the whole trace chain from UI to API with duration and start time.

Demo code at Github

Summary

It is very easy to setup Opentelemetry in .NET application. although I have use jaeger tool for analysis but there are many other tools are available and if they all follow same standard then they can also be used without any other changes.

Hope is it helpful.

Happy coding and keep learning!

Похожее
Aug 15, 2023
Whether you have an app with just a few users or millions of users per day, like Agoda, improving the user experience by optimizing application performance is always crucial. In the case of very high-traffic websites in the cloud, this...
Jun 26, 2021
There are many benefits to adding a React application to your ASP.NET Core application. The fact that you can house your front-end React tools with your API .NET tools in one application has to be one of the biggest. So...
Apr 15
Author: Olorundara Komolafe
Scheduling one or more background tasks is almost inevitable when building robust, self-sustaining APIs with .NET. A few packages have been around for years, such as Hangfire and Quartz.NET. ASP.NET Core allows background tasks to be implemented as hosted services....
Nov 25, 2022
Author: Amit Naik
In this article, we will see Distributed caching, Redis cache, and also Redis caching in ASP.NET Core. Follow me on Github and Download source code from GitHub Table of Content What is distributed caching and its benefit IDistributedCache interface Framework...
Написать сообщение
Тип
Почта
Имя
*Сообщение
RSS