Orleans pozorovatelnost

Pozorovatelnost je jedním z nejdůležitějších aspektů distribuovaného systému. Je to schopnost porozumět stavu systému v daném okamžiku. Toho můžete dosáhnout různými způsoby, včetně protokolování, metrik a distribuovaného trasování.

Logování

Orleans používá Microsoft.Extensions.Logging pro všechny záznamy silo a klienta. Můžete použít libovolného zprostředkovatele protokolování kompatibilního s Microsoft.Extensions.Logging. Kód vaší aplikace spoléhá na injektáž závislostí, aby získal instanci ILogger<TCategoryName> a používá ji k zaznamenávání zpráv. Další informace naleznete v tématu Protokolování v .NET.

Metodiky

Metriky jsou číselné měření hlášená v průběhu času. Nejčastěji je používáte k monitorování stavu aplikace a generování výstrah. Další informace najdete v tématu Metriky v .NET. Orleans používá rozhraní API System.Diagnostics.Metrics ke shromažďování metrik. Tyto metriky jsou vystaveny projektu OpenTelemetry , který je exportuje do různých monitorovacích systémů.

Pokud chcete monitorovat aplikaci bez jakýchkoli změn kódu, použijte dotnet counters diagnostický nástroj .NET. Chcete-li monitorovat OrleansActivitySource čítače pro konkrétní <ProcessName>, použijte příkaz dotnet counters monitor podle příkladu níže:

dotnet counters monitor -n <ProcessName> --counters Microsoft.Orleans

Představte si, že používáte Orleans ukázkovou aplikaci GPS Tracker a monitorujete ji v samostatném terminálu pomocí dotnet counters monitor příkazu. Následující výstup je typický:

Press p to pause, r to resume, q to quit.
    Status: Running
[Microsoft.Orleans]
    orleans-app-requests-latency-bucket (Count / 1 sec)                    0
        duration=10000ms                                                   0
        duration=1000ms                                                    0
        duration=100ms                                                     0
        duration=10ms                                                      0
        duration=15000ms                                                   0
        duration=1500ms                                                    0
        duration=1ms                                                   2,530
        duration=2000ms                                                    0
        duration=200ms                                                     0
        duration=2ms                                                       0
        duration=400ms                                                     0
        duration=4ms                                                       0
        duration=5000ms                                                    0
        duration=50ms                                                      0
        duration=6ms                                                       0
        duration=800ms                                                     0
        duration=8ms                                                       0
        duration=9223372036854775807ms                                     0
    orleans-app-requests-latency-count (Count / 1 sec)                 2,530
    orleans-app-requests-latency-sum (Count / 1 sec)                       0
    orleans-catalog-activation-working-set                                36
    orleans-catalog-activations                                           38
    orleans-consistent-ring-range-percentage-average                     100
    orleans-consistent-ring-range-percentage-local                       100
    orleans-consistent-ring-size                                           1
    orleans-directory-cache-size                                          27
    orleans-directory-partition-size                                      26
    orleans-directory-ring-local-portion-average-percentage              100
    orleans-directory-ring-local-portion-distance                          0
    orleans-directory-ring-local-portion-percentage                        0
    orleans-directory-ring-size                                        1,295
    orleans-gateway-received (Count / 1 sec)                           1,291
    orleans-gateway-sent (Count / 1 sec)                               2,582
    orleans-messaging-processing-activation-data                           0
    orleans-messaging-processing-dispatcher-forwarded (Count / 1           0
    orleans-messaging-processing-dispatcher-processed (Count / 1       2,543
        Direction=Request,Status=Ok                                    2,582
    orleans-messaging-processing-dispatcher-received (Count / 1        1,271
        Context=Grain,Direction=Request                                1,291
        Context=None,Direction=Request                                 1,291
    orleans-messaging-processing-ima-enqueued (Count / 1 sec)          5,113

Další informace najdete v tématu Zkoumání čítačů výkonu (dotnet-counters).

Orleans metry

Orleans používá rozhraní API System.Diagnostics.Metrics ke shromažďování metrik. Orleans Každý měřič kategorizuje do oblastí zájmu zaměřeného na doménu, jako jsou sítě, zasílání zpráv, brána atd. Následující pododdíly popisují použití měřičů Orleans .

Sítě

Následující tabulka ukazuje kolekci síťových měřičů používaných k monitorování Orleans síťové vrstvy.

Název měřiče Typ Popis
orleans-networking-sockets-closed Counter<T> Počet uzavřených soketů.
orleans-networking-sockets-opened Counter<T> Počet soketů, které byly otevřeny.

Messaging

Následující tabulka ukazuje kolekci měřičů pro zasílání zpráv, které se používají k monitorování vrstvy Orleans zasílání zpráv.

Název měřiče Typ Popis
orleans-messaging-sent-messages-size Histogram<T> Histogram představující velikost zpráv v bajtech, které byly odeslány.
orleans-messaging-received-messages-size Histogram<T> Histogram představující velikost zpráv v bajtech, které byly přijaty.
orleans-messaging-sent-header-size ObservableCounter<T> Pozorovatelný čítač představující počet odeslaných bajtů záhlaví.
orleans-messaging-received-header-size ObservableCounter<T> Pozorovatelný čítač představující počet přijatých bajtů záhlaví.
orleans-messaging-sent-failed Counter<T> Počet neúspěšných odeslaných zpráv.
orleans-messaging-sent-dropped Counter<T> Počet ztracených odeslaných zpráv.
orleans-messaging-processing-dispatcher-received ObservableCounter<T> Pozorovatelný čítač zobrazující počet zpráv přijatých dispečerem.
orleans-messaging-processing-dispatcher-processed ObservableCounter<T> Pozorovatelný čítač představující počet zpráv zpracovaných dispečerem.
orleans-messaging-processing-dispatcher-forwarded ObservableCounter<T> Pozorovatelný čítač představující počet zpráv předaných dispečerem.
orleans-messaging-processing-ima-received ObservableCounter<T> Pozorovatelný čítač představující počet přijatých příchozích zpráv.
orleans-messaging-processing-ima-enqueued ObservableCounter<T> Pozorovatelný čítač představující počet příchozích zpráv, které jsou ve frontě.
orleans-messaging-processing-activation-data ObservableGauge<T> Pozorovatelný měřicí přístroj představující veškerá data aktivace zpracování.
orleans-messaging-pings-sent Counter<T> Počet odeslaných příkazů ping.
orleans-messaging-pings-received Counter<T> Počet přijatých příkazů ping.
orleans-messaging-pings-reply-received Counter<T> Počet přijatých odpovědí ping
orleans-messaging-pings-reply-missed Counter<T> Počet zmeškaných odpovědí na ping
orleans-messaging-expired" Counter<T> Počet zpráv, jejichž platnost vypršela.
orleans-messaging-rejected Counter<T> Počet zpráv, které byly odmítnuty.
orleans-messaging-rerouted Counter<T> Počet zpráv, které byly přesměrovány.
orleans-messaging-sent-local ObservableCounter<T> Pozorovatelný čítač představující počet odeslaných místních zpráv.

Brána

Následující tabulka ukazuje kolekci měřičů brány sloužících k monitorování Orleans vrstvy brány.

Název měřiče Typ Popis
orleans-gateway-connected-clients UpDownCounter<T> Čítač pro zvyšování/snižování vyjadřující počet připojených klientů
orleans-gateway-sent Counter<T> Počet odeslaných zpráv z brány
orleans-gateway-received Counter<T> Počet přijatých zpráv brány
orleans-gateway-load-shedding Counter<T> Počet zpráv brány (odstranění zatížení), které byly odmítnuty kvůli přetížení brány.

Provozní doba

Následující tabulka ukazuje kolekci měřičů používaných k monitorování Orleans vrstvy času běhu.

Název měřiče Typ Popis
orleans-scheduler-long-running-turns Counter<T> Počet dlouhotrvajících cyklů v rámci plánovače.
orleans-runtime-total-physical-memory ObservableCounter<T> Pozorovatelný čítač představující celkový počet paměti (v MB) běhového modulu Orleans.
orleans-runtime-available-memory ObservableCounter<T> Pozorovatelný čítač představující dostupnou paměť (v MB) pro běhové prostředí Orleans.

Katalog

Následující tabulka ukazuje kolekci měřičů katalogu sloužících k monitorování Orleans vrstvy katalogu.

Název měřiče Typ Popis
orleans-catalog-activations ObservableGauge<T> Pozorovatelný ukazatel představující počet aktivací katalogu.
orleans-catalog-activation-working-set ObservableGauge<T> Ukazatel představující počet aktivací v pracovním souboru.
orleans-catalog-activation-created Counter<T> Počet vytvořených aktivací.
orleans-catalog-activation-destroyed Counter<T> Počet zničených aktivací.
orleans-catalog-activation-failed-to-activate Counter<T> Počet aktivací, které se nepodařilo aktivovat.
orleans-catalog-activation-collections Counter<T> Počet nečinných aktivačních kolekcí.
orleans-catalog-activation-shutdown Counter<T> Počet aktivací vypnutí.
orleans-catalog-activation-non-existent Counter<T> Počet neexistujících aktivací.
orleans-catalog-activation-concurrent-registration-attempts Counter<T> Počet souběžných pokusů o registraci aktivace.

Adresář

Následující tabulka ukazuje kolekci měřičů adresářů sloužících k monitorování Orleans vrstvy adresáře.

Název měřiče Typ Popis
orleans-directory-lookups-local-issued Counter<T> Počet prováděných místních vyhledávání.
orleans-directory-lookups-local-successes Counter<T> Počet místních úspěšných vyhledávání.
orleans-directory-lookups-full-issued Counter<T> Počet provedených úplných vyhledávání v adresáři.
orleans-directory-lookups-remote-sent Counter<T> Počet odeslaných vyhledávání vzdáleného adresáře.
orleans-directory-lookups-remote-received Counter<T> Celkový počet přijatých dotazů na vyhledávání vzdáleného adresáře
orleans-directory-lookups-local-directory-issued Counter<T> Počet provedených vyhledávání v místních adresářích.
orleans-directory-lookups-local-directory-successes Counter<T> Počet úspěšných vyhledávání místního adresáře.
orleans-directory-lookups-cache-issued Counter<T> Počet vydaných vyhledávání uložených v mezipaměti.
orleans-directory-lookups-cache-successes Counter<T> Počet úspěšných vyhledávání uložených v mezipaměti.
orleans-directory-validations-cache-received Counter<T> Počet přijatých ověření mezipaměti adresáře.
orleans-directory-partition-size ObservableGauge<T> Pozorovatelné měřidlo představující velikost oddílu adresáře.
orleans-directory-cache-size ObservableGauge<T> Pozorovatelný měřidlo představující velikost mezipaměti adresáře.
orleans-directory-ring-size ObservableGauge<T> Pozorovatelný měřidlo představující velikost okruhu adresáře.
orleans-directory-ring-local-portion-distance ObservableGauge<T> Pozorovatelný měřidlo představující rozsah okruhu vlastněný oddílem místního adresáře.
orleans-directory-ring-local-portion-percentage ObservableGauge<T> Viditelný ukazatel představující rozsah okruhu vlastněný místním adresářem, jako procento celkového rozsahu.
orleans-directory-ring-local-portion-average-percentage ObservableGauge<T> Pozorovatelný ukazatel představující průměrné procento rozsahu adresářového okruhu, který vlastní každé silo, čímž se ukazuje, jak vyvážené je vlastnictví adresáře.
orleans-directory-registrations-single-act-issued Counter<T> Počet registrací vydaných pro jednorázovou aktivaci adresáře.
orleans-directory-registrations-single-act-local Counter<T> Počet registrací jedné aktivace adresáře zpracovávaných oddílem místního adresáře.
orleans-directory-registrations-single-act-remote-sent Counter<T> Počet registrací jednorázové aktivace adresáře odeslaných do vzdálené oddílové části adresáře.
orleans-directory-registrations-single-act-remote-received Counter<T> Počet registrací pro jednotlivou aktivaci adresáře přijatých ze vzdálených hostitelů.
orleans-directory-unregistrations-issued Counter<T> Počet vydaných deregistrací adresáře.
orleans-directory-unregistrations-local Counter<T> Počet odregistrací adresářů zpracovávaných u místního adresářového oddílu.
orleans-directory-unregistrations-remote-sent Counter<T> Počet deregistrací adresáře odeslaných do vzdálených oddílů adresáře.
orleans-directory-unregistrations-remote-received Counter<T> Počet odregistrací adresáře přijatých ze vzdálených hostitelů
orleans-directory-unregistrations-many-issued Counter<T> Počet vydaných odregistrování vícenásobné aktivace adresáře.
orleans-directory-unregistrations-many-remote-sent Counter<T> Počet odregistrací vícenásobných aktivací adresářů odeslaných do vzdálených oddílů adresáře.
orleans-directory-unregistrations-many-remote-received Counter<T> Počet zrušení registrace vícečetných aktivací adresáře přijatých ze vzdálených hostitelů.

Konzistentní okruh

Následující tabulka ukazuje kolekci konzistentních kruhových měřičů sloužících k monitorování Orleans konzistentní vrstvy prstenců.

Název měřiče Typ Popis
orleans-consistent-ring-size ObservableGauge<T> Pozorovatelné měřidlo, které představuje konzistentní velikost kroužku.
orleans-consistent-ring-range-percentage-local ObservableGauge<T> Pozorovatelný ukazatel představující místní procento konzistentního kruhu.
orleans-consistent-ring-range-percentage-average ObservableGauge<T> Pozorovatelné měřidlo představující konzistentní průměrné procento kruhu.

Hlídací pes

Následující tabulka ukazuje kolekci měřičů watchdog používaných k monitorování Orleans vrstvy watchdogu.

Název měřiče Typ Popis
orleans-watchdog-health-checks Counter<T> Počet kontrol stavu sledovacího zařízení.
orleans-watchdog-health-checks-failed Counter<T> Počet neúspěšných kontrol stavu sledovacího zařízení

Klient

Následující tabulka ukazuje kolekci měřičů klientů sloužících k monitorování Orleans vrstvy klienta.

Název měřiče Typ Popis
orleans-client-connected-gateways ObservableGauge<T> Pozorovatelné měřidlo představující počet klientů připojených k branám.

Různé

Následující tabulka ukazuje kolekci různých měřičů používaných k monitorování různých vrstev.

Název měřiče Typ Popis
orleans-grains Counter<T> Počet představující počet zrn.
orleans-system-targets Counter<T> Počet představující počet systémových cílů.

Žádosti o aplikace

Následující tabulka ukazuje kolekci měřičů žádostí o aplikace, které se používají k monitorování Orleans vrstvy požadavků aplikace.

Název měřiče Typ Popis
orleans-app-requests-latency ObservableCounter<T> Pozorovatelný čítač představující latenci požadavků aplikace.
orleans-app-requests-timedout ObservableCounter<T> Pozorovatelný čítač představující požadavky aplikací, u kterých vypršel časový limit

Upomínky

Následující tabulka ukazuje kolekci měřičů připomenutí sloužících k monitorování vrstvy Orleans připomenutí.

Název měřiče Typ Popis
orleans-reminders-tardiness Histogram<T> Histogram představující počet sekund, o které se připomenutí zpozdí.
orleans-reminders-active ObservableGauge<T> Pozorovatelné měřidlo představující počet aktivních připomenutí.
orleans-reminders-ticks-delivered Counter<T> Počet představující počet odškrtnutí připomenutí, která byla doručena.

Storage

Následující tabulka ukazuje kolekci měřičů úložiště sloužících k monitorování vrstvy Orleans úložiště.

Název měřiče Typ Popis
orleans-storage-read-errors Counter<T> Počet představující počet chyb čtení úložiště.
orleans-storage-write-errors Counter<T> Počet představující počet chyb zápisu do úložiště.
orleans-storage-clear-errors Counter<T> Počet představující počet chyb při vymazání úložiště.
orleans-storage-read-latency Histogram<T> Histogram představující latenci čtení úložiště v milisekundách
orleans-storage-write-latency Histogram<T> Histogram představující latenci zápisu úložiště v milisekundách
orleans-storage-clear-latency Histogram<T> Histogram představující čistou latenci úložiště v milisekundách

Streamy

Následující tabulka ukazuje kolekci měřičů datových proudů sloužících k monitorování vrstvy datového Orleans proudu.

Název měřiče Typ Popis
orleans-streams-pubsub-producers-added Counter<T> Byl přidán počet producentů pubsub streamování.
orleans-streams-pubsub-producers-removed Counter<T> Počet producentů pubsub streamování, kteří byli odebráni.
orleans-streams-pubsub-producers Counter<T> Počet streamovaných výrobců pubsub.
orleans-streams-pubsub-consumers-added Counter<T> Byl přidán počet příjemců streamování pubsub.
orleans-streams-pubsub-consumers-removed Counter<T> Byl odebrán počet příjemců pubsub streamování.
orleans-streams-pubsub-consumers Counter<T> Počet příjemců pubsub streamování.
orleans-streams-persistent-stream-pulling-agents ObservableGauge<T> Pozorovatelné měřidlo představující počet trvalých agentů streamování datového proudu.
orleans-streams-persistent-stream-messages-read Counter<T> Počet přečtených zpráv trvalých datových proudů.
orleans-streams-persistent-stream-messages-sent Counter<T> Počet zpráv trvalého datového proudu, které byly odeslány.
orleans-streams-persistent-stream-pubsub-cache-size ObservableGauge<T> Pozorovatelné měřidlo představující perzistentní velikost mezipaměti streamu pubsub.
orleans-streams-queue-initialization-failures Counter<T> Počet selhání inicializace parní fronty.
orleans-streams-queue-initialization-duration Counter<T> Počet případů inicializace parní fronty.
orleans-streams-queue-initialization-exceptions Counter<T> Počet výjimek inicializace parní fronty.
orleans-streams-queue-read-failures Counter<T> Počet selhání čtení fronty služby Steam.
orleans-streams-queue-read-duration Counter<T> Počet výskytů čtení fronty ve službě Steam.
orleans-streams-queue-read-exceptions Counter<T> Počet výjimek čtení fronty Steam.
orleans-streams-queue-shutdown-failures Counter<T> Počet selhání vypnutí parní fronty.
orleans-streams-queue-shutdown-duration Counter<T> Počet výskytů vypnutí parní fronty.
orleans-streams-queue-shutdown-exceptions Counter<T> Počet výjimek vypnutí parní fronty.
orleans-streams-queue-messages-received ObservableCounter<T> Pozorovatelný čítač, který udává počet přijatých zpráv ve frontě datových proudů.
orleans-streams-queue-oldest-message-enqueue-age ObservableGauge<T> Pozorovatelný ukazatel představující věk nejstarší nasazené zprávy.
orleans-streams-queue-newest-message-enqueue-age ObservableGauge<T> Pozorovatelné měřidlo představující stáří nejnovější zprávy ve frontě zpráv.
orleans-streams-block-pool-total-memory ObservableCounter<T> Pozorovatelný čítač, který představuje celkovou paměť fondu bloků datových proudů vyjádřenou v bajtech.
orleans-streams-block-pool-available-memory ObservableCounter<T> Pozorovatelný čítač představující fond bloků datových proudů dostupnou paměť v bajtech.
orleans-streams-block-pool-claimed-memory ObservableCounter<T> Pozorovatelný čítač představující fond bloků datových proudů deklarovanou paměť v bajtech.
orleans-streams-block-pool-released-memory ObservableCounter<T> Pozorovatelný čítač, který představuje uvolněnou paměť v bajtech ve fondu bloků datového proudu.
orleans-streams-block-pool-allocated-memory ObservableCounter<T> Pozorovatelný čítač představující fond bloků datového proudu s přidělenou pamětí v bajtech.
orleans-streams-queue-cache-size ObservableCounter<T> Pozorovatelný čítač představující velikost mezipaměti fronty streamu v bajtech.
orleans-streams-queue-cache-length ObservableCounter<T> Pozorovatelný čítač představující délku fronty datového proudu.
orleans-streams-queue-cache-messages-added ObservableCounter<T> Pozorovatelný čítač znázorňující zprávy přidané do fronty streamu.
orleans-streams-queue-cache-messages-purged ObservableCounter<T> Sledovatelný počet představující zprávy ve frontě streamu, které byly vymazány.
orleans-streams-queue-cache-memory-allocated ObservableCounter<T> Pozorovatelné počítadlo představující přidělenou paměť ve frontě streamu.
orleans-streams-queue-cache-memory-released ObservableCounter<T> Pozorovatelný čítač představující uvolněnou paměť fronty datových proudů.
orleans-streams-queue-cache-oldest-to-newest-duration ObservableGauge<T> Pozorovatelné měřidlo vyjadřující dobu od nejstarší položky ve frontě streamu k nejnovější.
orleans-streams-queue-cache-oldest-age ObservableGauge<T> Viditelný číselník představující stáří nejstarší zprávy uložené v mezipaměti.
orleans-streams-queue-cache-pressure ObservableGauge<T> Pozorovatelný ukazatel představující tlak na frontu mezipaměti streamu.
orleans-streams-queue-cache-under-pressure ObservableGauge<T> Sledovatelný ukazatel představující, jestli je mezipaměť fronty streamu pod tlakem.
orleans-streams-queue-cache-pressure-contribution-count ObservableCounter<T> Pozorovatelný čítač představující vliv tlaku na mezipaměť fronty datového proudu.

Transakce

Následující tabulka ukazuje kolekci měřičů transakcí sloužících k monitorování vrstvy Orleans transakcí.

Název měřiče Typ Popis
orleans-transactions-started ObservableCounter<T> Pozorovatelný čítač představující počet spuštěných transakcí.
orleans-transactions-successful ObservableCounter<T> Pozorovatelný čítač představující počet úspěšných transakcí.
orleans-transactions-failed ObservableCounter<T> Pozorovatelný čítač představující počet neúspěšných transakcí.
orleans-transactions-throttled ObservableCounter<T> Pozorovatelný čítač představující počet omezených transakcí.

Export metrik

Různí poskytovatelé metrik třetích stran jsou k dispozici pro použití s Orleans. Vyexportujte metriky z aplikace pomocí protokolu OTLP (OpenTelemetry Protocol). Řada platforem pozorovatelnosti využívá data OTLP přímo nebo prostřednictvím kolektoru OpenTelemetry, včetně Prometheus, Grafana a Azure Monitoru.

Pokud chcete exportovat metriky pomocí OTLP s Orleans, nainstalujte balíček NuGet OpenTelemetry.Exporter.OpenTelemetryProtocol a volejte následující IServiceCollection metodu rozšíření:

builder.Services.AddOpenTelemetry()
    .WithMetrics(metrics =>
    {
        metrics
            .AddOtlpExporter()
            .AddMeter("Microsoft.Orleans");
    });

Metoda AddOtlpExporter zajišťuje, aby vývozce OTLP byl přidán do builder Orleans používá Meter pojmenovanou "Microsoft.Orleans" k vytvoření Counter<T> instancí pro mnoho metrik specifických pro Orleans. Pomocí metody AddMeter zadejte název měřiče, ke kterému chcete přihlásit odběr, v tomto případě "Microsoft.Orleans".

Podle potřeby můžete nakonfigurovat koncový bod exportéru OTLP a další možnosti. Například:

builder.Services.AddOpenTelemetry()
    .WithMetrics(metrics =>
    {
        metrics
            .AddOtlpExporter(options =>
            {
                options.Endpoint = new Uri("http://localhost:4317");
            })
            .AddMeter("Microsoft.Orleans");
    });

Poznámka:

Výchozí konfigurace vývozce OTLP používá gRPC (obvykle port 4317). Pokud chcete exportovat metriky do Prometheus, odešlete telemetrii prostřednictvím kolektoru OpenTelemetry nebo místo toho nakonfigurujte nastavení OTLP/HTTP.

Distribuované trasování

Distribuované trasování je sada nástrojů a postupů pro monitorování a řešení potíží s distribuovanými aplikacemi. Jedná se o klíčovou součást pozorovatelnosti a kritického nástroje pro pochopení chování vaší aplikace. Orleans podporuje distribuované trasování pomocí OpenTelemetry.

Bez ohledu na to, který exportní nástroj pro distribuované trasování zvolíte, použijte:

Nebo nastavte konfigurační možnost EnableDistributedTracing na true.

S odkazem zpět na Orleans ukázkovou aplikaci GPS Tracker můžete exportovat distribuované trasové záznamy pomocí OpenTelemetry Protocol (OTLP). Chcete-li použít OpenTelemetry s OTLP a Orleans, nainstalujte balíček OpenTelemetry.Exporter.OpenTelemetryProtocol NuGet a volejte následující IServiceCollection rozšiřující metodu v Program.cs:

builder.Services.AddOpenTelemetry()
    .WithTracing(tracing =>
    {
        // Set a service name
        tracing.SetResourceBuilder(
            ResourceBuilder.CreateDefault()
                .AddService(serviceName: "GPSTracker", serviceVersion: "1.0"));

        // Good baseline for general Orleans observability
        tracing.AddSource(Orleans.Diagnostics.ActivitySources.ApplicationGrainActivitySourceName);
        tracing.AddSource(Orleans.Diagnostics.ActivitySources.LifecycleActivitySourceName);

        /*
        // Other source also available
        // Persistence spans
        tracing.AddSource(Orleans.Diagnostics.ActivitySources.StorageActivitySourceName);
        // Internal Runtime spans
        tracing.AddSource(Orleans.Diagnostics.ActivitySources.RuntimeActivitySourceName);
        */

        /*
        // Optionally add all Microsoft.Orleans.* Sources at once
        tracing.AddSource(Orleans.Diagnostics.ActivitySources.AllActivitySourceName);
        */

        tracing.AddOtlpExporter(otlp =>
        {
            otlp.Endpoint = new Uri("http://localhost:4317");
        });
    });

Exportér OTLP spolupracuje s mnoha systémy pro monitorování, mezi které patří Jaeger, Zipkin, Grafana Tempo a Azure Monitor. Trasování je možné vizualizovat v nástrojích, jako je uživatelské rozhraní Jaeger:

Orleans Gps Tracker ukázková aplikace: Jaeger UI trace.

Další informace naleznete v tématu Distribuované trasování.

Orleans poskytuje výstupy statistik a metrik modulu runtime prostřednictvím rozhraní ITelemetryConsumer. Vaše aplikace může pro své uzly a klienty zaregistrovat jednoho nebo více příjemců telemetrie, aby přijímali statistiky a metriky, které modul runtime Orleans pravidelně publikuje. Můžou to být spotřebitelé pro oblíbená řešení analýzy telemetrie nebo vlastní řešení pro jakýkoli jiný cíl a účel. Do základu Orleans kódu jsou aktuálně zahrnuti tři příjemci telemetrie.

Vydávají se jako samostatné balíčky NuGet:

  • Microsoft.Orleans.OrleansTelemetryConsumers.AI: Publikování do Aplikace Azure Insights.

  • Microsoft.Orleans.OrleansTelemetryConsumers.Counters: Pro publikování do čítačů výkonu Systému Windows. Modul Orleans runtime průběžně aktualizuje mnoho z nich. Nástroj CounterControl.exe , který je součástí Microsoft.Orleans.CounterControl balíčku NuGet, pomáhá zaregistrovat potřebné kategorie čítačů výkonu. Musí běžet se zvýšenými oprávněními. Monitorujte čítače výkonu pomocí všech standardních monitorovacích nástrojů.

  • Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic: Publikování do New Relic.

Konfigurace sila a klienta tak, aby používaly uživatele telemetrie, vypadá konfigurační kód sila takto:

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

Konfigurační kód klienta vypadá takto:

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

Pokud chcete použít vlastní definovaný TelemetryConfiguration (který může obsahovat TelemetryProcessors, TelemetrySinks, atd.), konfigurační kód sila vypadá takto:

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

Konfigurační kód klienta vypadá takto:

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

Viz také