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 NuGet Microsoft.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);