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 imMicrosoft.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);