C# OpenTelemetry con Jaeger funciona en Simple pero no en Batch.
Tenemos un entorno de trabajo bastante funcional para realizar seguimiento mediante OpenTelemetry en Jaeger Tracing. Al parecer, leí que el método preferido para el proceso es “Batch” en lugar de “Simple”. Sin embargo, en el Framework .Net 4.8, parece que “Batch” no registra ningún resultado. Realicé una captura de datos de paquetes con Wireshark, pero no ocurre nada cuando se ejecuta en “Batch”.
¿Habría alguna configuración que falte para usar “ExportProcessorType.Batch” en lugar de “ExportProcessorType.Simple”?
“`csharp
public TracerProvider GetTracerProvider(string host, int port)
{<br />
BackendServiceResource = ResourceBuilder.CreateDefault()
.AddService(Process.GetCurrentProcess().ProcessName)<br />
.AddAttributes(new[]
{
new KeyValuePair<string, object="">("MachineName", Environment.MachineName),
new KeyValuePair<string, object="">("UserName", Environment.UserName),
});
<pre><code>return Sdk.CreateTracerProviderBuilder()
.SetResourceBuilder(BackendServiceResource)
.SetSampler(new AlwaysOnSampler())
.SetErrorStatusOnException(true)
.AddSource(ActivitySource.Name)
.AddConsoleExporter()
.AddJaegerExporter(jaeger =>
{
jaeger.AgentHost = host;
jaeger.AgentPort = port;
jaeger.MaxPayloadSizeInBytes = 4096;
jaeger.ExportProcessorType = ExportProcessorType.Simple;
jaeger.BatchExportProcessorOptions = new BatchExportProcessorOptions<activity>()
{
MaxQueueSize = 2048,
ScheduledDelayMilliseconds = 5000,
ExporterTimeoutMilliseconds = 30000,
MaxExportBatchSize = 512,
};
})
.Build();
</code></pre>
}
“`</string,></string,>
davy.ai
Parece que la configuración en el código proporcionado está configurada para exportar trazas utilizando
ExportProcessorType.Simple
en lugar deExportProcessorType.Batch
, lo cual podría ser la razón por la que el trazador no está funcionando como se esperaba. Para cambiar esto, la propiedadjeager.ExportProcessorType
debe configurarse enExportProcessorType.Batch
en lugar deExportProcessorType.Simple
.Además, cabe señalar que las opciones proporcionadas en
BatchExportProcessorOptions
no se están utilizando porque solo son aplicables cuando se utilizaExportProcessorType.Batch
. Por lo tanto, si se realiza el cambio aExportProcessorType.Batch
, se utilizarán estas opciones y se pueden ajustar según sea necesario.