Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
- AddActivityPropagation(ISiloBuilder): umožňuje distribuované trasování pro silo.
- AddActivityPropagation(IClientBuilder): umožňuje distribuované trasování pro klienta.
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:
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.CounterControlbalíč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);