Log di Orleans

Orleans usa Microsoft.Extensions.Logging per tutti i log silo e client. Per altre informazioni, vedere Registrazione in .NET.

Monitoraggio di runtime

Orleans restituisce le statistiche e le metriche di runtime tramite l'interfaccia ITelemetryConsumer . L'applicazione può registrare uno o più consumer di telemetria per i silo e i client per ricevere statistiche e metriche pubblicate periodicamente dal runtime di Orleans. Possono essere consumer di soluzioni di analisi di telemetria comuni o personalizzate per qualsiasi altra destinazione e scopo. Tre consumer di telemetria sono attualmente inclusi nella codebase di Orleans.

Vengono rilasciati come pacchetti NuGet separati:

  • Microsoft.Orleans.OrleansTelemetryConsumers.AIper la pubblicazione Microsoft.Orleans.OrleansTelemetryConsumers.AI.

  • Microsoft.Orleans.OrleansTelemetryConsumers.Countersper la pubblicazione Windows contatori delle prestazioni. Il runtime di Orleans aggiorna continuamente alcuni di essi. Lo CounterControl.exe, incluso nel pacchetto NuGet, consente di registrare le categorie di contatori delle prestazioni necessarie. Deve essere eseguito con privilegi elevati. I contatori delle prestazioni possono essere monitorati usando uno degli strumenti di monitoraggio standard.

  • Microsoft.Orleans.OrleansTelemetryConsumers.NewRelicper la pubblicazione in Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic.

Per configurare il silo e il client per l'uso dei consumer di telemetria, il codice di configurazione del silo è simile al seguente:

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

Il codice di configurazione client è simile al seguente:

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

Per usare un oggetto personalizzato definito TelemetryConfiguration (che può avere TelemetryProcessors, TelemetrySinkse così via), il codice di configurazione del silo è simile al seguente:

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

Il codice di configurazione client è simile al seguente:

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