Orleans-Protokolle

Orleans nutzt Microsoft.Extensions.Logging für alle Silo- und Clientprotokolle. Weitere Informationen finden Sie unter Protokollierung in .NET.

Laufzeitüberwachung

Orleans gibt seine Laufzeitstatistiken und Metriken über die ITelemetryConsumer-Schnittstelle aus. Die Anwendung kann einen oder mehrere Telemetrieconsumer für ihre Silos und Clients registrieren, um Statistiken und Metriken zu erhalten, die die Orleans-Runtime regelmäßig veröffentlicht. Dabei kann es sich um Consumer für beliebte Telemetrieanalyselösungen oder um benutzerdefinierte Lösungen für andere Ziele und Zwecke handeln. Drei Telemetrieconsumer sind derzeit in der Orleans-Codebasis enthalten.

Sie werden als separate NuGet-Pakete veröffentlicht:

  • Microsoft.Orleans.OrleansTelemetryConsumers.AI für die Veröffentlichung in Azure Application Insights.

  • Microsoft.Orleans.OrleansTelemetryConsumers.Counters für die Veröffentlichung in Windows-Leistungsindikatoren. Die Orleans-Runtime aktualisiert kontinuierlich eine Reihe von ihnen. Das CounterControl.exe-Tool, das im Microsoft.Orleans.CounterControl NuGet-Paket enthalten ist, hilft beim Registrieren der erforderlichen Leistungsindikatorkategorien. Es muss mit erhöhten Rechten ausgeführt werden. Die Leistungsindikatoren können mit einem der standardmäßigen Überwachungstools überwacht werden.

  • Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic, für die Veröffentlichung in New Relic.

Um Ihr Silo und Ihren Client für die Verwendung von Telemetrieconsumern zu konfigurieren, sieht der Silokonfigurationscode wie folgt aus:

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

Der Clientkonfigurationscode sieht wie folgt aus:

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

Um eine benutzerdefinierte TelemetryConfiguration zu verwenden (die TelemetryProcessors, TelemetrySinks usw. enthalten kann), sieht der Silokonfigurationscode wie folgt aus:

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

Der Clientkonfigurationscode sieht wie folgt aus:

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