Початок роботи з трейсами — ASP.NET Core
Цей посібник покаже вам, як почати роботу з трейсами OpenTelemetry .NET у застосунку ASP.NET Core.
Передумови
- .NET SDK встановлений на вашому компʼютері
Створення застосунку ASP.NET Core
Створіть новий веб-застосунок ASP.NET Core:
dotnet new web -o aspnetcoreapp
cd aspnetcoreapp
Додавання трейсів OpenTelemetry
Встановіть необхідні пакунки OpenTelemetry:
dotnet add package OpenTelemetry.Exporter.Console
dotnet add package OpenTelemetry.Extensions.Hosting
dotnet add package OpenTelemetry.Instrumentation.AspNetCore
Оновіть файл Program.cs наступним кодом:
using System.Diagnostics;
using OpenTelemetry.Resources;
using OpenTelemetry.Trace;
var builder = WebApplication.CreateBuilder(args);
// Налаштування OpenTelemetry з трасуванням та автозапуском.
builder.Services.AddOpenTelemetry()
.ConfigureResource(resource => resource
.AddService(serviceName: builder.Environment.ApplicationName))
.WithTracing(tracing => tracing
.AddAspNetCoreInstrumentation()
.AddConsoleExporter());
var app = builder.Build();
app.MapGet("/", () => $"Hello World! OpenTelemetry Trace: {Activity.Current?.Id}");
app.Run();
Запуск застосунку
Запустіть застосунок:
dotnet run
Перейдіть за URL-адресою, показаною в консолі (наприклад, http://localhost:5000).
Ви повинні побачити вихідні дані трасування в консолі, подібні до:
Activity.TraceId: c28f7b480d5c7dfc30cfbd80ad29028d
Activity.SpanId: 27e478bbf9fdec10
Activity.TraceFlags: Recorded
Activity.ActivitySourceName: Microsoft.AspNetCore
Activity.DisplayName: GET /
Activity.Kind: Server
Activity.StartTime: 2024-07-04T13:03:37.3318740Z
Activity.Duration: 00:00:00.3693734
Activity.Tags:
server.address: localhost
server.port: 5154
http.request.method: GET
url.scheme: https
url.path: /
network.protocol.version: 2
user_agent.original: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
http.route: /
http.response.status_code: 200
Resource associated with Activity:
service.name: getting-started-aspnetcore
service.instance.id: a388466b-4969-4bb0-ad96-8f39527fa66b
telemetry.sdk.name: opentelemetry
telemetry.sdk.language: dotnet
telemetry.sdk.version: 1.9.0
Вітаємо! Тепер ви збираєте трейси за допомогою OpenTelemetry у вашій програмі ASP.NET Core.
Як це працює
Реєстрація OpenTelemetry
Застосунок реєструє служби OpenTelemetry, використовуючи контейнер інʼєкції залежностей, наданий ASP.NET Core:
builder.Services.AddOpenTelemetry()
.ConfigureResource(resource => resource
.AddService(serviceName: builder.Environment.ApplicationName))
.WithTracing(tracing => tracing
.AddAspNetCoreInstrumentation()
.AddConsoleExporter());
Цей код:
- Додає OpenTelemetry до колекції служб за допомогою
AddOpenTelemetry() - Налаштовує ресурс з інформацією про службу за допомогою
ConfigureResource() - Налаштовує збір трейсів за допомогою
WithTracing() - Додає автоматичну інструментацію для ASP.NET Core за допомогою
AddAspNetCoreInstrumentation() - Налаштовує експортер консолі для виводу трейсів до консолі
Інструментація ASP.NET Core
Метод AddAspNetCoreInstrumentation() автоматично створює трейси для
HTTP-запитів, включаючи:
- Тривалість запиту
- HTTP-метод, маршрут і код статусу
- Інформацію про мережу
- User agent
Ці трейси збираються без необхідності додаткового коду у ваших контролерах або проміжному ПЗ.
Доступ до поточної активності
У OpenTelemetry .NET клас Activity представляє “Span” специфікації OpenTelemetry. У нашому прикладі ми отримуємо доступ до поточної активності, щоб включити її ID у відповідь:
app.MapGet("/", () => $"Hello World! OpenTelemetry Trace: {Activity.Current?.Id}");
Це дозволяє побачити ідентифікатор трасування в оглядачі та співвіднести його з трасуваннями у вашій системі моніторингу.
Дізнайтесь більше
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!