Registros de Orleans
Orleans usa Microsoft.Extensions.Logging para todos los registros de silo y cliente. Para obtener más información, consulte Registro en .NET.
Supervisión en tiempo de ejecución
Orleans genera sus métricas y estadísticas en tiempo de ejecución mediante la interfaz ITelemetryConsumer. La aplicación puede registrar uno o varios consumidores de telemetría para sus silos y clientes, con el fin de recibir estadísticas y métricas que el runtime de Orleans publica periódicamente. Pueden ser consumidores de soluciones populares de análisis de telemetría o de soluciones personalizadas para otro destino y propósito. Actualmente se incluyen tres consumidores de telemetría en el código base de Orleans.
Se publican como paquetes NuGet independientes:
Microsoft.Orleans.OrleansTelemetryConsumers.AI
para la publicación en Azure Application Insights.Microsoft.Orleans.OrleansTelemetryConsumers.Counters
para la publicación en contadores de rendimiento de Windows. El runtime de Orleans actualiza varios continuamente. La herramienta CounterControl.exe, incluida en el paquete NuGetMicrosoft.Orleans.CounterControl
, ayuda a registrar las categorías de los contadores de rendimiento necesarios. Debe ejecutarse con privilegios elevados. Los contadores de rendimiento se pueden supervisar mediante cualquiera de las herramientas de supervisión estándar.Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic
para la publicación en New Relic.
Para configurar el silo y el cliente de modo que usen consumidores de telemetría, el código de configuración de silo debe tener un aspecto similar al siguiente:
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
});
El código de configuración de cliente tiene un aspecto similar al siguiente:
var clientBuilder = new ClientBuilder();
clientBuilder.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
Para usar un objeto TelemetryConfiguration definido personalizado (que puede incluir TelemetryProcessors, TelemetrySinks, etc.), el código de configuración del silo debe tener un aspecto similar al siguiente:
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);
});
El código de configuración de cliente tiene un aspecto similar al siguiente:
var clientBuilder = new ClientBuilder();
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
clientBuilder.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);