Orleans 日志

Orleans 对所有 silo 和客户端日志都使用 Microsoft.Extensions.Logging。 有关详细信息,请参阅 .NET 中的日志记录

运行时监视

Orleans 通过 ITelemetryConsumer 接口输出其运行时统计信息和指标。 应用程序可以为其 silo 和客户端注册一个或多个遥测使用者,以便接收 Orleans 运行时定期发布的统计信息和指标。 这些可以是常用遥测分析解决方案的使用者,也可以是用于任何其他目标和用途的自定义解决方案的使用者。 Orleans 代码库中当前包含三个遥测使用者。

它们作为单独的 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

若要将 silo 和客户端配置为使用遥测使用者,silo 配置代码应如下所示:

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

客户端配置代码应如下所示:

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

若要使用自定义的 TelemetryConfiguration(可能有 TelemetryProcessorsTelemetrySinks 等),silo 配置代码应如下所示:

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

客户端配置代码应如下所示:

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