Compartir a través de


Orleans Observabilidad

La observabilidad es uno de los aspectos más importantes de un sistema distribuido. Es la capacidad de comprender el estado del sistema en un momento dado. Esto se puede lograr de varias maneras, incluido el registro, las métricas y el seguimiento distribuido.

Registro

Orleans usa Microsoft.Extensions.Logging para todos los registros de silo y cliente. Puede usar cualquier proveedor de registro compatible con Microsoft.Extensions.Logging. El código de la aplicación se basa en la inserción de dependencias para obtener una instancia de ILogger<TCategoryName> y la usa para registrar mensajes. Para obtener más información, consulte Registro en .NET.

Métricas

Las métricas son medidas numéricas que se comunican a lo largo del tiempo. A menudo se usan para supervisar el estado de una aplicación y generar alertas. Para obtener más información, consulte Métricas en .NET. Orleans usa las API System.Diagnostics.Metrics para recopilar métricas. Estas métricas se exponen al proyecto OpenTelemetry , que los exporta a varios sistemas de supervisión.

Para supervisar la aplicación sin realizar cambios en el código, use la dotnet counters herramienta de diagnóstico de .NET. Para supervisar los contadores de un Orleans específico, use el comando ActivitySource como se muestra:

dotnet counters monitor -n <ProcessName> --counters Microsoft.Orleans

Imagina que estás ejecutando la aplicación de ejemplo GPS Tracker y la estás monitoreando en un terminal separado con el comando Orleans. La salida siguiente es típica:

Press p to pause, r to resume, q to quit.
    Status: Running
[Microsoft.Orleans]
    orleans-app-requests-latency-bucket (Count / 1 sec)                    0
        duration=10000ms                                                   0
        duration=1000ms                                                    0
        duration=100ms                                                     0
        duration=10ms                                                      0
        duration=15000ms                                                   0
        duration=1500ms                                                    0
        duration=1ms                                                   2,530
        duration=2000ms                                                    0
        duration=200ms                                                     0
        duration=2ms                                                       0
        duration=400ms                                                     0
        duration=4ms                                                       0
        duration=5000ms                                                    0
        duration=50ms                                                      0
        duration=6ms                                                       0
        duration=800ms                                                     0
        duration=8ms                                                       0
        duration=9223372036854775807ms                                     0
    orleans-app-requests-latency-count (Count / 1 sec)                 2,530
    orleans-app-requests-latency-sum (Count / 1 sec)                       0
    orleans-catalog-activation-working-set                                36
    orleans-catalog-activations                                           38
    orleans-consistent-ring-range-percentage-average                     100
    orleans-consistent-ring-range-percentage-local                       100
    orleans-consistent-ring-size                                           1
    orleans-directory-cache-size                                          27
    orleans-directory-partition-size                                      26
    orleans-directory-ring-local-portion-average-percentage              100
    orleans-directory-ring-local-portion-distance                          0
    orleans-directory-ring-local-portion-percentage                        0
    orleans-directory-ring-size                                        1,295
    orleans-gateway-received (Count / 1 sec)                           1,291
    orleans-gateway-sent (Count / 1 sec)                               2,582
    orleans-messaging-processing-activation-data                           0
    orleans-messaging-processing-dispatcher-forwarded (Count / 1           0
    orleans-messaging-processing-dispatcher-processed (Count / 1       2,543
        Direction=Request,Status=Ok                                    2,582
    orleans-messaging-processing-dispatcher-received (Count / 1        1,271
        Context=Grain,Direction=Request                                1,291
        Context=None,Direction=Request                                 1,291
    orleans-messaging-processing-ima-enqueued (Count / 1 sec)          5,113

Para obtener más información, vea Investigar contadores de rendimiento (dotnet-counters).

Orleans metros

Orleans usa las API System.Diagnostics.Metrics para recopilar métricas. Orleans clasifica cada medidor en preocupaciones centradas en el dominio, como redes, mensajería, puerta de enlace, etc. En las subsecciones siguientes se describen los usos de medidores Orleans .

Redes

En la tabla siguiente se muestra una colección de medidores de red usados para supervisar la Orleans capa de red.

Nombre del medidor Tipo Descripción
orleans-networking-sockets-closed Counter<T> Recuento de sockets que se han cerrado.
orleans-networking-sockets-opened Counter<T> Recuento de conexiones que se han abierto.

Mensajería

En la tabla siguiente se muestra una colección de medidores de mensajería usados para supervisar la Orleans capa de mensajería.

Nombre del medidor Tipo Descripción
orleans-messaging-sent-messages-size Histogram<T> Histograma que representa el tamaño de los mensajes en bytes que se han enviado.
orleans-messaging-received-messages-size Histogram<T> Histograma que representa el tamaño de los mensajes en bytes que se han recibido.
orleans-messaging-sent-header-size ObservableCounter<T> Contador observable que representa el número de bytes de encabezado enviados.
orleans-messaging-received-header-size ObservableCounter<T> Contador observable que representa el número de bytes de encabezado recibidos.
orleans-messaging-sent-failed Counter<T> Recuento de mensajes enviados con error.
orleans-messaging-sent-dropped Counter<T> Recuento de mensajes no enviados.
orleans-messaging-processing-dispatcher-received ObservableCounter<T> Contador observable que representa los mensajes recibidos del distribuidor de números.
orleans-messaging-processing-dispatcher-processed ObservableCounter<T> Contador observable que representa el número de mensajes procesados por el despachador.
orleans-messaging-processing-dispatcher-forwarded ObservableCounter<T> Contador observable que representa el número de mensajes reenviados por el despachador.
orleans-messaging-processing-ima-received ObservableCounter<T> Contador observable que representa el número de mensajes entrantes recibidos.
orleans-messaging-processing-ima-enqueued ObservableCounter<T> Contador observable que representa el número de mensajes entrantes en cola.
orleans-messaging-processing-activation-data ObservableGauge<T> Un medidor observable que representa todos los datos de activación del procesamiento.
orleans-messaging-pings-sent Counter<T> Recuento de pings enviados.
orleans-messaging-pings-received Counter<T> Recuento de pings recibidos.
orleans-messaging-pings-reply-received Counter<T> Recuento de respuestas de ping recibidas.
orleans-messaging-pings-reply-missed Counter<T> Se ha perdido un recuento de respuestas de ping.
orleans-messaging-expired" Counter<T> Recuento de mensajes que han expirado.
orleans-messaging-rejected Counter<T> Recuento de mensajes rechazados.
orleans-messaging-rerouted Counter<T> Recuento de mensajes que se han renrutado.
orleans-messaging-sent-local ObservableCounter<T> Contador observable que representa el número de mensajes locales enviados.

Puerta de enlace

En la tabla siguiente se muestra una colección de medidores de puerta de enlace usados para supervisar la Orleans capa de puerta de enlace.

Nombre del medidor Tipo Descripción
orleans-gateway-connected-clients UpDownCounter<T> Contador ascendente o descendente que representa el número de clientes conectados.
orleans-gateway-sent Counter<T> Recuento de mensajes de puerta de enlace enviados.
orleans-gateway-received Counter<T> Recuento de mensajes de puerta de enlace recibidos.
orleans-gateway-load-shedding Counter<T> Conteo de mensajes de puerta de enlace (corte de carga) que se han rechazado por estar la puerta de enlace sobrecargada.

Tiempo de ejecución

En la siguiente tabla se muestra una colección de medidores usados para supervisar la capa de Orleans en tiempo de ejecución.

Nombre del medidor Tipo Descripción
orleans-scheduler-long-running-turns Counter<T> Recuento de ciclos de ejecución de larga duración dentro del planificador.
orleans-runtime-total-physical-memory ObservableCounter<T> Contador observable que representa el número total de memoria (en MB) del Orleans tiempo de ejecución.
orleans-runtime-available-memory ObservableCounter<T> Contador observable que representa la memoria disponible (en MB) para el Orleans tiempo de ejecución.

Catálogo

En la tabla siguiente se muestra una colección de medidores de catálogo utilizados para supervisar la capa del catálogo Orleans.

Nombre del medidor Tipo Descripción
orleans-catalog-activations ObservableGauge<T> Un medidor observable que representa el número de activaciones de catálogo.
orleans-catalog-activation-working-set ObservableGauge<T> Un medidor observable que representa el número de activaciones dentro del conjunto de trabajo.
orleans-catalog-activation-created Counter<T> Recuento de activaciones creadas.
orleans-catalog-activation-destroyed Counter<T> Recuento de activaciones destruidas.
orleans-catalog-activation-failed-to-activate Counter<T> Recuento de activaciones que no se pudieron activar.
orleans-catalog-activation-collections Counter<T> Recuento de activaciones inactivas recopiladas.
orleans-catalog-activation-shutdown Counter<T> Recuento de activaciones de apagado.
orleans-catalog-activation-non-existent Counter<T> Recuento de activaciones inexistentes.
orleans-catalog-activation-concurrent-registration-attempts Counter<T> Recuento de intentos simultáneos de registro de activación.

Directorio

En la tabla siguiente se muestra una colección de medidores de directorio que se usan para supervisar la capa de Orleans directorio.

Nombre del medidor Tipo Descripción
orleans-directory-lookups-local-issued Counter<T> Recuento de consultas locales realizadas.
orleans-directory-lookups-local-successes Counter<T> Recuento de búsquedas exitosas locales.
orleans-directory-lookups-full-issued Counter<T> Recuento de búsquedas de directorios completas emitidas.
orleans-directory-lookups-remote-sent Counter<T> Recuento de búsquedas de directorios remotos enviadas.
orleans-directory-lookups-remote-received Counter<T> Recuento de búsquedas de directorios remotos recibidas.
orleans-directory-lookups-local-directory-issued Counter<T> Recuento de búsquedas de directorios locales realizadas.
orleans-directory-lookups-local-directory-successes Counter<T> Recuento de consultas exitosas en el directorio local.
orleans-directory-lookups-cache-issued Counter<T> Emisión de búsquedas en caché contadas.
orleans-directory-lookups-cache-successes Counter<T> Recuento de búsquedas correctas almacenadas en caché.
orleans-directory-validations-cache-sent Counter<T> Recuento de validaciones de caché de directorios enviadas.
orleans-directory-validations-cache-received Counter<T> Recuento de validaciones de caché de directorios recibidas.
orleans-directory-partition-size ObservableGauge<T> Un medidor observable que representa el tamaño de la partición del directorio.
orleans-directory-cache-size ObservableGauge<T> Un medidor observable que representa el tamaño de la caché de directorios.
orleans-directory-ring-size ObservableGauge<T> Un medidor observable que representa el tamaño del anillo de directorio.
orleans-directory-ring-local-portion-distance ObservableGauge<T> Un indicador observable que representa el rango de anillos perteneciente a la partición del directorio local.
orleans-directory-ring-local-portion-percentage ObservableGauge<T> Un medidor observable que representa el intervalo de anillos que pertenece al directorio local, representado como un porcentaje del intervalo total.
orleans-directory-ring-local-portion-average-percentage ObservableGauge<T> Un medidor observable que representa el porcentaje medio del intervalo de anillos de directorio que pertenece a cada silo, lo que proporciona una representación de cómo se equilibra la propiedad del directorio.
orleans-directory-registrations-single-act-issued Counter<T> Recuento de registros de activación única de directorio emitidos.
orleans-directory-registrations-single-act-local Counter<T> Recuento de registros de activación única de directorios administrados por la partición de directorio local.
orleans-directory-registrations-single-act-remote-sent Counter<T> Recuento de registros de activación única de directorio enviados a una partición de directorio remoto.
orleans-directory-registrations-single-act-remote-received Counter<T> Recuento de registros de activación única de directorio recibidos de hosts remotos.
orleans-directory-unregistrations-issued Counter<T> Recuento de cancelaciones de registro de directorios emitidas.
orleans-directory-unregistrations-local Counter<T> Recuento de desregistraciones de directorios controladas por la partición de directorio local.
orleans-directory-unregistrations-remote-sent Counter<T> Recuento de desregistraciones de directorio enviadas a particiones de directorio remotas.
orleans-directory-unregistrations-remote-received Counter<T> Recuento de desregistros de directorio recibidos de hosts remotos.
orleans-directory-unregistrations-many-issued Counter<T> Recuento de anulaciones de registro de activación múltiple de directorio emitidas.
orleans-directory-unregistrations-many-remote-sent Counter<T> Recuento de desregistros de activación múltiple de directorios enviados a particiones de directorios remotos.
orleans-directory-unregistrations-many-remote-received Counter<T> Recuento de desregistros de activación múltiple de directorios recibidos de hosts remotos.

Anillo coherente

En la tabla siguiente se muestra una colección de medidores de anillo coherentes usados para supervisar la Orleans capa de anillo coherente.

Nombre del medidor Tipo Descripción
orleans-consistent-ring-size ObservableGauge<T> Un medidor observable que representa el tamaño constante del anillo.
orleans-consistent-ring-range-percentage-local ObservableGauge<T> Un medidor observable que representa el porcentaje local consistente del anillo.
orleans-consistent-ring-range-percentage-average ObservableGauge<T> Un medidor observable que representa el porcentaje medio de anillo coherente.

Perro guardián

En la siguiente tabla se presenta un conjunto de medidores de vigilancia utilizados para monitorear la Orleans capa de vigilancia.

Nombre del medidor Tipo Descripción
orleans-watchdog-health-checks Counter<T> Recuento de comprobaciones de salud de guardián.
orleans-watchdog-health-checks-failed Counter<T> Recuento de comprobaciones de estado de guardián erróneas.

Cliente

En la tabla siguiente se muestra una colección de medidores utilizados para supervisar la capa de cliente Orleans.

Nombre del medidor Tipo Descripción
orleans-client-connected-gateways ObservableGauge<T> Un medidor observable que representa el número de clientes de puerta de enlace conectadas.

Varios

En la tabla siguiente se muestra una colección de medidores varios usados para supervisar varias capas.

Nombre del medidor Tipo Descripción
orleans-grains Counter<T> Un recuento que representa la cantidad de granos.
orleans-system-targets Counter<T> Recuento que representa el número de destinos del sistema.

Solicitudes de aplicaciones

En la tabla siguiente se muestra una colección de medidores de solicitudes de aplicaciones usados para supervisar la capa de solicitud de aplicaciones Orleans.

Nombre del medidor Tipo Descripción
orleans-app-requests-latency ObservableCounter<T> Contador observable que representa la latencia de la solicitud de aplicación.
orleans-app-requests-timedout ObservableCounter<T> Contador observable que representa las solicitudes de aplicación que han agotado el tiempo de espera.

Recordatorios

La siguiente tabla muestra una serie de medidores de recordatorio que se usan para supervisar la capa de Orleans recordatorio.

Nombre del medidor Tipo Descripción
orleans-reminders-tardiness Histogram<T> Un histograma que representa el número de segundos que un recordatorio llega tarde.
orleans-reminders-active ObservableGauge<T> Un medidor observable que representa el número de recordatorios activos.
orleans-reminders-ticks-delivered Counter<T> Recuento que representa el número de recordatorios que se han enviado.

Almacenamiento

En la tabla siguiente se muestra una colección de medidores de almacenamiento usados para supervisar la Orleans capa de almacenamiento.

Nombre del medidor Tipo Descripción
orleans-storage-read-errors Counter<T> Recuento que representa el número de errores de lectura de almacenamiento.
orleans-storage-write-errors Counter<T> Recuento que representa el número de errores de escritura de almacenamiento.
orleans-storage-clear-errors Counter<T> Recuento que representa el número de errores claros de almacenamiento.
orleans-storage-read-latency Histogram<T> Histograma que representa la latencia de lectura de almacenamiento en milisegundos.
orleans-storage-write-latency Histogram<T> Histograma que representa la latencia de escritura de almacenamiento en milisegundos.
orleans-storage-clear-latency Histogram<T> Histograma que representa la latencia clara de almacenamiento en milisegundos.

Arroyos

En la siguiente tabla se muestra una colección de medidores de flujo usados para supervisar el flujo de capa Orleans.

Nombre del medidor Tipo Descripción
orleans-streams-pubsub-producers-added Counter<T> Se ha agregado un recuento de productores de pubsub de streaming.
orleans-streams-pubsub-producers-removed Counter<T> Recuento de productores de pubsub de streaming eliminados.
orleans-streams-pubsub-producers Counter<T> Recuento de productores de pubsub de streaming.
orleans-streams-pubsub-consumers-added Counter<T> Recuento de consumidores de pubsub de streaming agregados.
orleans-streams-pubsub-consumers-removed Counter<T> Se ha eliminado un recuento de consumidores de pubsub de streaming.
orleans-streams-pubsub-consumers Counter<T> Recuento de consumidores de pubsub de streaming.
orleans-streams-persistent-stream-pulling-agents ObservableGauge<T> Un medidor observable que representa el número de agentes de extracción de flujos persistentes.
orleans-streams-persistent-stream-messages-read Counter<T> Recuento de mensajes de flujo persistentes leídos.
orleans-streams-persistent-stream-messages-sent Counter<T> Recuento de mensajes de flujo persistentes enviados.
orleans-streams-persistent-stream-pubsub-cache-size ObservableGauge<T> Un indicador observable que representa el tamaño de la caché del sistema pubsub de flujo persistente.
orleans-streams-queue-initialization-failures Counter<T> Recuento de errores de inicialización de cola de Steam.
orleans-streams-queue-initialization-duration Counter<T> Recuento de ocurrencias de inicialización de cola de Steam.
orleans-streams-queue-initialization-exceptions Counter<T> Recuento de excepciones de inicialización de la cola de Steam.
orleans-streams-queue-read-failures Counter<T> Recuento de fallos de lectura en la cola de trabajo de Steam.
orleans-streams-queue-read-duration Counter<T> Recuento de ocurrencias de lectura en la cola de vapor.
orleans-streams-queue-read-exceptions Counter<T> Recuento de excepciones de lectura de cola de espera de vapor.
orleans-streams-queue-shutdown-failures Counter<T> Recuento de errores de cierre de cola de vapor.
orleans-streams-queue-shutdown-duration Counter<T> Recuento de ocurrencias de cierre de la cola de vapor.
orleans-streams-queue-shutdown-exceptions Counter<T> Recuento de excepciones de cierre de cola de vapor.
orleans-streams-queue-messages-received ObservableCounter<T> Contador observable que representa el número de mensajes de cola de flujos recibidos.
orleans-streams-queue-oldest-message-enqueue-age ObservableGauge<T> Un indicador observable que representa la edad del mensaje encolado más antiguo.
orleans-streams-queue-newest-message-enqueue-age ObservableGauge<T> Un medidor observable que representa la antigüedad del mensaje más reciente en cola.
orleans-streams-block-pool-total-memory ObservableCounter<T> Contador observable que representa la memoria total del grupo de bloques de secuencias en bytes.
orleans-streams-block-pool-available-memory ObservableCounter<T> Contador observable que representa la memoria disponible del grupo de bloques de flujos en bytes.
orleans-streams-block-pool-claimed-memory ObservableCounter<T> Contador observable que representa la memoria reclamada del grupo de bloques de flujos en bytes.
orleans-streams-block-pool-released-memory ObservableCounter<T> Un contador observable que representa la memoria liberada, en bytes, del grupo de bloques de secuencias.
orleans-streams-block-pool-allocated-memory ObservableCounter<T> Contador observable que representa la memoria asignada del grupo de bloques de secuencias en bytes.
orleans-streams-queue-cache-size ObservableCounter<T> Contador observable que representa el tamaño de caché de la cola de secuencias en bytes.
orleans-streams-queue-cache-length ObservableCounter<T> Contador observable que representa la longitud de la cola de flujos.
orleans-streams-queue-cache-messages-added ObservableCounter<T> Contador observable que representa los mensajes de cola de flujos agregados.
orleans-streams-queue-cache-messages-purged ObservableCounter<T> Un contador observable que representa los mensajes de la cola de flujo purgados.
orleans-streams-queue-cache-memory-allocated ObservableCounter<T> Contador observable que representa la memoria de cola de flujos asignada.
orleans-streams-queue-cache-memory-released ObservableCounter<T> Contador observable que representa la memoria de la cola de flujos liberada.
orleans-streams-queue-cache-oldest-to-newest-duration ObservableGauge<T> Un medidor observable que representa la duración de la caché de colas de flujos más antigua a la más reciente.
orleans-streams-queue-cache-oldest-age ObservableGauge<T> Un medidor observable que representa la antigüedad del mensaje almacenado en caché más antiguo.
orleans-streams-queue-cache-pressure ObservableGauge<T> Un medidor observable que representa la presión en la caché de colas de flujos.
orleans-streams-queue-cache-under-pressure ObservableGauge<T> Un medidor observable que representa si la caché de colas de flujos está bajo presión.
orleans-streams-queue-cache-pressure-contribution-count ObservableCounter<T> Contador observable que representa las contribuciones de presión de la caché de colas de flujos.

Transacciones

En la tabla siguiente se muestra una colección de medidores de transacciones usados para supervisar la Orleans capa de transacción.

Nombre del medidor Tipo Descripción
orleans-transactions-started ObservableCounter<T> Contador observable que representa el número de transacciones iniciadas.
orleans-transactions-successful ObservableCounter<T> Contador observable que representa el número de transacciones correctas.
orleans-transactions-failed ObservableCounter<T> Contador observable que representa el número de transacciones con errores.
orleans-transactions-throttled ObservableCounter<T> Un contador observable que representa el número de transacciones limitadas.

Prometeo

Hay varios proveedores de métricas de terceros disponibles para su uso con Orleans. Un ejemplo popular es Prometheus, que puedes usar para recopilar métricas de la aplicación con OpenTelemetry.

Para utilizar OpenTelemetry y Prometheus con Orleans, utilice el siguiente IServiceCollection método de extensión.

builder.Services.AddOpenTelemetry()
    .WithMetrics(metrics =>
    {
        metrics
            .AddPrometheusExporter()
            .AddMeter("Microsoft.Orleans");
    });

Importante

Los paquetes NuGet OpenTelemetry.Exporter.Prometheus y OpenTelemetry.Exporter.Prometheus.AspNetCore están actualmente en versión preliminar como candidatos para lanzamiento. No se recomiendan para su uso en producción.

El método AddPrometheusExporter garantiza que PrometheusExporter sea agregado a builder. Orleans usa un Meter llamado "Microsoft.Orleans" para crear instancias Counter<T> para muchas métricas específicas de Orleans. Use el AddMeter método para especificar el nombre del medidor al que suscribirse, en este caso, "Microsoft.Orleans".

Después de configurar el exportador y compilar la aplicación, llame a MapPrometheusScrapingEndpoint en el IEndpointRouteBuilder (instancia de app) para exponer las métricas a Prometheus. Por ejemplo:

WebApplication app = builder.Build();

app.MapPrometheusScrapingEndpoint();
app.Run();

Seguimiento distribuido

El seguimiento distribuido es un conjunto de herramientas y prácticas para supervisar y solucionar problemas de aplicaciones distribuidas. Es un componente clave de observabilidad y una herramienta crítica para comprender el comportamiento de la aplicación. Orleans admite el seguimiento distribuido con OpenTelemetry.

Independientemente del exportador de seguimiento distribuido que elija, llame a:

Haciendo referencia a la Orleans aplicación de ejemplo GPS Tracker, puedes usar el sistema de seguimiento distribuido Zipkin para supervisar la aplicación actualizando Program.cs. Para usar OpenTelemetry y Zipkin con Orleans, llame al método de extensión IServiceCollection siguiente:

builder.Services.AddOpenTelemetry()
    .WithTracing(tracing =>
    {
        // Set a service name
        tracing.SetResourceBuilder(
            ResourceBuilder.CreateDefault()
                .AddService(serviceName: "GPSTracker", serviceVersion: "1.0"));

        tracing.AddSource("Microsoft.Orleans.Runtime");
        tracing.AddSource("Microsoft.Orleans.Application");

        tracing.AddZipkinExporter(zipkin =>
        {
            zipkin.Endpoint = new Uri("http://localhost:9411/api/v2/spans");
        });
    });

Importante

El paquete NuGet OpenTelemetry.Exporter.Zipkin está actualmente en versión preliminar como candidato para lanzamiento. No se recomienda para su uso en producción.

El seguimiento de Zipkin se muestra en la interfaz de usuario de Jaeger (una alternativa a Zipkin que usa el mismo formato de datos):

Orleans Aplicación de ejemplo GPS Tracker: traza de la interfaz de usuario de Jaeger.

Para obtener más información, consulte Seguimiento distribuido.

Orleans genera sus estadísticas y métricas en tiempo de ejecución a través de la ITelemetryConsumer interfaz . La aplicación puede registrar uno o más consumidores de telemetría para que sus silos y clientes reciban estadísticas y métricas que el entorno de ejecución Orleans publica periódicamente. Pueden ser consumidores para soluciones populares de análisis de telemetría o personalizadas para cualquier otro destino y propósito. Actualmente se incluyen tres consumidores de telemetría en el Orleans código base.

Se publican como paquetes NuGet independientes:

  • Microsoft.Orleans.OrleansTelemetryConsumers.AI: para publicar en Azure Application Insights.

  • Microsoft.Orleans.OrleansTelemetryConsumers.Counters: para publicar en los contadores de rendimiento de Windows. El Orleans tiempo de ejecución actualiza continuamente muchos de ellos. La herramienta CounterControl.exe , incluida en el Microsoft.Orleans.CounterControl paquete NuGet, ayuda a registrar las categorías de contadores de rendimiento necesarias. Debe ejecutarse con privilegios elevados. Supervise los contadores de rendimiento mediante cualquier herramienta de supervisión estándar.

  • Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic: para publicar en New Relic.

Para configurar el silo y el cliente para que utilicen consumidores de telemetría, el código de configuración del silo se presenta de la siguiente manera:

var siloHostBuilder = new HostBuilder()
    .UseOrleans(c =>
    {
        c.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
    });

El código de configuración del cliente tiene este aspecto:

var clientBuilder = new ClientBuilder();
clientBuilder.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");

Para usar una definición TelemetryConfiguration personalizada (que puede tener TelemetryProcessors, TelemetrySinks, etc.), el código de configuración de silo tiene este aspecto:

var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
var siloHostBuilder = new HostBuilder()
    .UseOrleans(c =>
    {
        c.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);
    });

El código de configuración de cliente tiene este aspecto:

var clientBuilder = new ClientBuilder();
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
clientBuilder.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);

Consulte también