Journaux Orleans

Orleans tire parti de Microsoft.Extensions.Logging pour tous les journaux de silo et de client. Pour plus d’informations, consultez Journalisation dans .NET.

Monitoring du runtime

Orleans génère ses statistiques et métriques de runtime via l’interface ITelemetryConsumer. L’application peut inscrire un ou plusieurs consommateurs de télémétrie pour leurs silos et clients, afin de recevoir les statistiques et les métriques que le runtime Orleans publie régulièrement. Il peut s’agir de consommateurs pour des solutions d’analytique de télémétrie populaires ou des solutions personnalisées pour d’autres destination et usage. Trois consommateurs de télémétrie sont actuellement inclus dans le code base d’Orleans.

Ils sont publiés en tant que packages NuGet distincts :

  • Microsoft.Orleans.OrleansTelemetryConsumers.AI pour la publication dans Azure Application Insights.

  • Microsoft.Orleans.OrleansTelemetryConsumers.Counters pour la publication dans les compteurs de performances Windows. Le runtime Orleans met continuellement à jour un certain nombre d’entre eux. L’outil CounterControl.exe, inclus dans le package NuGet Microsoft.Orleans.CounterControl, permet d’inscrire les catégories de compteurs de performances nécessaires. Il doit s’exécuter avec des privilèges élevés. Les compteurs de performances peuvent être surveillés à l’aide de l’un quelconque des outils de monitoring standard.

  • Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic, pour la publication dans New Relic.

Pour configurer votre silo et votre client pour utiliser les consommateurs de télémétrie, le code de configuration du silo ressemble à ceci :

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

Le code de configuration du client ressemble à ceci :

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

Pour utiliser un élément TelemetryConfiguration personnalisé (qui peut avoir des éléments TelemetryProcessors, TelemetrySinks, etc.), le code de configuration du silo ressemble à ceci :

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

Le code de configuration du client ressemble à ceci :

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