Logs do Orleans
O Orleans aproveita o Microsoft.Extensions.Logging para todos os logs de silo e do cliente. Para obter mais informações, confira Log no .NET.
O Orleans gera as estatísticas e as métricas de runtime por meio da interface ITelemetryConsumer. O aplicativo pode registrar um ou mais consumidores de telemetria para os silos e os clientes a fim de receber estatísticas e métricas que o runtime do Orleans publica periodicamente. Eles podem ser consumidores para soluções populares de análise de telemetria ou personalizados para qualquer outro destino e outra finalidade. Três consumidores de telemetria estão atualmente incluídos na base de código do Orleans.
Eles são liberados como pacotes NuGet separados:
Microsoft.Orleans.OrleansTelemetryConsumers.AI
para publicação no Azure Application Insights.Microsoft.Orleans.OrleansTelemetryConsumers.Counters
para publicação em contadores de desempenho do Windows. O runtime do Orleans atualiza continuamente vários deles. A ferramenta CounterControl.exe, incluída no pacote NuGetMicrosoft.Orleans.CounterControl
, ajuda a registrar as categorias de contadores de desempenho necessárias. Ela precisa ser executada com privilégios elevados. Os contadores de desempenho podem ser monitorados por meio de uma das ferramentas de monitoramento padrão.Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic
, para publicação no New Relic.
Para configurar o silo e o cliente para usar os consumidores de telemetria, o código de configuração do silo é parecido com este:
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
});
O código de configuração do cliente é parecido com este:
var clientBuilder = new ClientBuilder();
clientBuilder.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
Para usar uma TelemetryConfiguration definida personalizada (que pode ter TelemetryProcessors, TelemetrySinks etc.), o código de configuração do silo é parecido com este:
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);
});
O código de configuração do cliente é parecido com este:
var clientBuilder = new ClientBuilder();
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
clientBuilder.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);