Початок роботи з трейсами — 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}");
Це дозволяє побачити ідентифікатор трасування в оглядачі та співвіднести його з трасуваннями у вашій системі моніторингу.
Дізнайтесь більше
Зворотний зв’язок
Чи була ця сторінка корисною?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!