Orleans のログ

Orleans は、すべてのサイロ ログとクライアント ログの記録に Microsoft.Extensions.Logging を利用します。 詳細については、「.NET のログ記録」を参照してください。

ランタイムの監視

Orleans は、ITelemetryConsumer インターフェイスを介してランタイム統計とメトリックを出力します。 アプリケーションは、サイロとクライアント用に 1 つまたは複数のテレメトリ コンシューマーを登録し、Orleans ランタイムから定期的にパブリッシュされる統計とメトリックを受け取ることができます。 広く普及しているテレメトリ分析ソリューション用のコンシューマーや、その他のあらゆる宛先と目的を想定したカスタム コンシューマーをここに使用することもできます。 Orleans コードベースには、現在、3 つのテレメトリ コンシューマーが含まれています。

それらは、以下のように個別の NuGet パッケージとしてリリースされます。

  • Microsoft.Orleans.OrleansTelemetryConsumers.AI - Azure Application Insights へのパブリッシュ用。

  • Microsoft.Orleans.OrleansTelemetryConsumers.Counters - Windows パフォーマンス カウンターへのパブリッシュ用。 Orleans ランタイムは、それらの数を継続的に更新します。 Microsoft.Orleans.CounterControl NuGet パッケージに含まれている CounterControl.exe ツールは、必要なパフォーマンス カウンター カテゴリを登録するのに役立ちます。 このツールは管理者特権で実行する必要があります。 パフォーマンス カウンターは、標準の監視ツールのいずれかを使用して監視できます。

  • Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic - New Relic へのパブリッシュ用。

テレメトリ コンシューマーを使用するようにサイロとクライアントを構成する場合、サイロの構成コードは以下のようなものになります。

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

クライアントの構成コードは以下のようなものになります。

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

カスタム定義の TelemetryConfiguration (TelemetryProcessorsTelemetrySinks などが備わっている場合があります) を使用する場合、サイロの構成コードは以下のようなものになります。

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

クライアントの構成コードは以下のようなものになります。

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