ISC.OpenTelemetryExtension
1.1.7
dotnet add package ISC.OpenTelemetryExtension --version 1.1.7
NuGet\Install-Package ISC.OpenTelemetryExtension -Version 1.1.7
<PackageReference Include="ISC.OpenTelemetryExtension" Version="1.1.7" />
<PackageVersion Include="ISC.OpenTelemetryExtension" Version="1.1.7" />
<PackageReference Include="ISC.OpenTelemetryExtension" />
paket add ISC.OpenTelemetryExtension --version 1.1.7
#r "nuget: ISC.OpenTelemetryExtension, 1.1.7"
#addin nuget:?package=ISC.OpenTelemetryExtension&version=1.1.7
#tool nuget:?package=ISC.OpenTelemetryExtension&version=1.1.7
Hướng Dẫn Sử Dụng ISC.OpentelemetryExtension
1️⃣ Giới Thiệu
ISC.OpentelemetryExtension
là một thư viện giúp tích hợp OpenTelemetry vào ứng dụng .NET một cách dễ dàng. Thư viện hỗ trợ:
- Cấu hình
TracerProviderBuilder
một cách linh hoạt. - Cung cấp sẵn các instrumentation phổ biến.
- Cho phép bổ sung instrumentation đặc thù.
2️⃣ Cài Đặt
Thêm package vào dự án:
dotnet add package ISC.OpentelemetryExtension
3️⃣ Cách Gọi Code Từ Program.cs
Trong Program.cs
, gọi phương thức AddTracing
để cấu hình tracing:
using ISC.OpentelemetryExtension;
using OpenTelemetry.Trace;
var builder = WebApplication.CreateBuilder(args);
// Đăng ký OpenTelemetry Tracing
builder.Services.AddTracing(
serviceName: "TenPhongBan-TenDuAn",
exporterEndpoint: "http://otel-collector:4317",
enviroment: "Development" //Nếu không truyền sẽ tự động lấy môi trường hiện tại của instance
);
var app = builder.Build();
app.MapControllers();
app.Run();
Lưu ý:
TracingService.Configure
là phương thức mặc định của thư viện để tự động cấu hình tracing.
4️⃣ Tuỳ Chỉnh TracerProviderBuilder
Nếu cần cấu hình TracerProviderBuilder
theo nhu cầu, bạn có thể cung cấp một delegate vào AddTracing
:
builder.Services.AddTracing(
serviceName: "MyCustomService",
exporterEndpoint: "http://otel-collector:4317",
configureTracing: builder =>
{
builder.SetSampler(new AlwaysOnSampler()); // Ghi lại toàn bộ dữ liệu
}
);
Mẹo: Bạn có thể thay đổi
SetSampler(new TraceIdRatioBasedSampler(0.5f))
để lấy 50% lượng dữ liệu thay vì toàn bộ.
5️⃣ Bổ Sung Instrumentation Đặc Thù
Nếu bạn muốn bổ sung các instrumentation đặc thù ngoài Program.cs
, có thể dùng tham số extendInstrumentation
:
builder.Services.AddTracing(
serviceName: "MyAdvancedService",
exporterEndpoint: "http://otel-collector:4317",
configureTracing: TracingService.Configure,
extendInstrumentation: builder =>
{
builder.AddMongoDBInstrumentation(); // Thêm MongoDB Instrumentation
}
);
Nếu bạn muốn bật/tắt các Instrumentation chỉ cần cấu hình appsettings.json của bạn như sau:
{
"Tracing": {
"EnableMySql": true
}
}
Ví dụ, nếu bạn cần logging thời gian mở connection và thực thi query SQL:
builder.Services.AddTracing(
serviceName: "MySQLService",
exporterEndpoint: "http://otel-collector:4317",
configureTracing: builder =>
{
builder.AddSqlClientInstrumentation(opt =>
{
opt.SetDbStatementForText = true; // Ghi lại truy vấn SQL
opt.RecordException = true; // Ghi lại lỗi
});
}
);
6️⃣ Kết Luận
- Dùng
AddTracing
để dễ dàng tích hợp OpenTelemetry vàoProgram.cs
. - Tuỳ chỉnh
TracerProviderBuilder
để thay đổi sampler, thêm instrumentation. - Bổ sung instrumentation đặc thù bằng tham số
extendInstrumentation
.
Nếu có câu hỏi, hãy liên hệ đội phát triển ISC.OpentelemetryExtension
! 🚀
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.DependencyInjection (>= 9.0.3)
- MySql.Data.OpenTelemetry (>= 9.2.0)
- OpenTelemetry (>= 1.9.0)
- OpenTelemetry.Exporter.Console (>= 1.9.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.9.0)
- OpenTelemetry.Extensions.Hosting (>= 1.9.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.9.0)
- OpenTelemetry.Instrumentation.Http (>= 1.9.0)
- OpenTelemetry.Instrumentation.SqlClient (>= 1.9.0-beta.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.