OpenTelemetry
Its an Observability framework and toolkit designed to manage telemetry data that is traces, metrics, and logs.
It can be paired either #open source# tools like Aspire dashboard, Prometheus, and commercial ones like datadog.
Observability
Observability in software, is the potential to understand the internal state of a system by examining its telemetry data.
To make a system observable, it must be instrumented. 
Why OpenTelemetry?
- You own the data that you generate which is essential today in AI.
 - You need a single set of APIs and standards for all. These create the flexibility needed to create a modern application.
 
OpenTelemetry in ASP .NET
- Search for 
OpenTelemetry.*in your project. There are many nuget packages for open telemetry as seen below.
 - Add them to your project:
 - Update your 
Program.csfile. 
using OpenTelemetry.Resources;
using OpenTelemetry.Metrics;
using OpenTelemetry.Trace;
using OpenTelemetry.Logs;
using OpenTelemetry.Exporter;
var builder = WebApplication.CreateBuilder(args);
// code ommitted for brevity
builder.Services.AddOpenTelemetry()
.ConfigureResource(resource => 
    resource.AddService(ApiConstants.ApiName))
    .WithMetrics(metric =>
     {
       metric.AddAspNetCoreInstrumentation()
       .AddHttpClientInstrumentation();
       metric.AddOtlpExporter(options => 
       {
          options.Endpoint = new Uri("<url_to_export _to>");
       });
 })
 .WithTracing(trace =>
 {
     trace.AddAspNetCoreInstrumentation()
     .AddHttpClientInstrumentation();
     trace.AddOtlpExporter(options =>
     {
          options.Endpoint = new Uri("<url_to_export _to>");
      });
 });
 builder.Logging.AddOpenTelemetry(options => 
 {    
      options.AddConsoleExporter()
      .SetResourceBuilder(ResourceBuilder.CreateDefault()
      .AddService(ApiConstants.ApiName));
      options.AddOtlpExporter(options =>
      {
           options.Endpoint = new Uri("<url_to_export _to>");                   
      });
  });
Your application should be able to emit logs, traces and metrics.
Aspire dashboard
The open source standalone dashboard provides a great UI for viewing telemetry and can be used by any application.
To spin it up locally without auth, use this command
docker run --rm -it -d -p 18888:18888 -p 4317:18889 --name aspire-dashboard mcr.microsoft.com/dotnet/aspire-dashboard:9.0 -e DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS=true
For more .NET Aspire dashboard configuration
Feel free to leave question or a comment about this. 
Star these wonderful projects to give them the platform they deserve:
              
    
Top comments (0)