![]() |
VOOZH | about |
dotnet add package Eaf.OpenTelemetry --version 9.1.0
NuGet\Install-Package Eaf.OpenTelemetry -Version 9.1.0
<PackageReference Include="Eaf.OpenTelemetry" Version="9.1.0" />
<PackageVersion Include="Eaf.OpenTelemetry" Version="9.1.0" />Directory.Packages.props
<PackageReference Include="Eaf.OpenTelemetry" />Project file
paket add Eaf.OpenTelemetry --version 9.1.0
#r "nuget: Eaf.OpenTelemetry, 9.1.0"
#:package Eaf.OpenTelemetry@9.1.0
#addin nuget:?package=Eaf.OpenTelemetry&version=9.1.0Install as a Cake Addin
#tool nuget:?package=Eaf.OpenTelemetry&version=9.1.0Install as a Cake Tool
O Eaf.OpenTelemetry é um módulo de observabilidade do Enterprise Application Foundation (EAF). Este módulo fornece implementação completa de OpenTelemetry para telemetria distribuída, tracing e métricas, permitindo monitoramento profundo de aplicações .NET com suporte a múltiplos exporters.
Este módulo segue os padrões do OpenTelemetry e se integra perfeitamente com ASP.NET Core, Entity Framework Core, Hangfire e HTTP requests.
dotnet add package Eaf.OpenTelemetry --version 10.4.0
Adicione a referência ao seu arquivo .csproj:
<ProjectReference Include="..\Eaf.OpenTelemetry\Eaf.OpenTelemetry.csproj" />
No Program.cs ou Startup.cs:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddEafOpenTelemetry(options =>
{
options.ServiceName = "MyApplication";
options.ServiceVersion = "1.0.0";
});
}
public void Configure(IApplicationBuilder app)
{
app.UseEafOpenTelemetry();
}
}
No appsettings.json:
{
"OpenTelemetry": {
"Exporter": "Otlp",
"Otlp": {
"Endpoint": "http://localhost:4317",
"Headers": {
"X-My-Header": "value"
}
}
}
}
No appsettings.json:
{
"OpenTelemetry": {
"Exporter": "Prometheus",
"Prometheus": {
"Path": "/metrics",
"ScrapeEndpoint": "/metrics"
}
}
}
services.AddEafOpenTelemetry(options =>
{
options.ServiceName = "MyApplication";
options.ServiceVersion = "1.0.0";
// Habilita instrumentação ASP.NET Core
options.AddAspNetCoreInstrumentation();
// Habilita instrumentação Entity Framework Core
options.AddEntityFrameworkCoreInstrumentation();
// Habilita instrumentação HTTP
options.AddHttpClientInstrumentation();
// Habilita instrumentação Hangfire
options.AddHangfireInstrumentation();
// Habilita métricas do runtime
options.AddRuntimeInstrumentation();
// Configura exporter
options.AddOtlpExporter();
});
public class MyService
{
private readonly ActivitySource _activitySource;
public MyService()
{
_activitySource = new ActivitySource("MyService");
}
public async Task DoWorkAsync()
{
using var activity = _activitySource.StartActivity("DoWork");
activity?.SetTag("operation", "important");
// Seu código aqui
await Task.Delay(100);
}
}
public class MyService
{
private readonly Counter<long> _requestCounter;
public MyService(IMeterFactory meterFactory)
{
var meter = meterFactory.Create("MyService");
_requestCounter = meter.CreateCounter<long>("requests", "requests");
}
public void ProcessRequest()
{
_requestCounter.Add(1, new("operation", "process"));
}
}
Eaf.OpenTelemetry/
├── AspNetCore/ # Instrumentação ASP.NET Core
├── OTEL_DIAGNOSTICS.json # Configurações de diagnóstico
└── Properties/ # Propriedades do assembly
services.AddEafOpenTelemetry(options =>
{
options.SetSampler(new ParentBasedSampler(new TraceIdRatioBasedSampler(0.1)));
});
services.AddEafOpenTelemetry(options =>
{
options.SetResourceBuilder(ResourceBuilder
.CreateDefault()
.AddService("MyService", "1.0.0")
.AddAttributes(new Dictionary<string, object>
{
["deployment.environment"] = "production",
["host.name"] = Environment.MachineName
}));
});
services.AddEafOpenTelemetry(options =>
{
options.AddOtlpExporter(opt =>
{
opt.BatchExportProcessorOptions = new BatchExportProcessorOptions<Activity>
{
MaxQueueSize = 2048,
ScheduledDelayMilliseconds = 5000,
ExporterTimeoutMilliseconds = 30000,
MaxExportBatchSize = 512
};
});
});
Os testes para este módulo estão localizados em:
test/Eaf.OpenTelemetry.Tests/
Para executar os testes:
dotnet test test/Eaf.OpenTelemetry.Tests/Eaf.OpenTelemetry.Tests.csproj
Este projeto faz parte do Enterprise Application Foundation (EAF) e está licenciado sob os mesmos termos do projeto principal.
Para issues e perguntas, consulte o repositório principal do EAF: https://github.com/afonsoft/EAF
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 9.1.0 | 72 | 6/12/2026 |