Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Obserwacja jest jednym z najważniejszych aspektów systemu rozproszonego. Jest to możliwość zrozumienia stanu systemu w danym momencie. Można to osiągnąć na różne sposoby, w tym rejestrowanie, metryki i śledzenie rozproszone.
Przemysł drzewny
Orleans używa elementu Microsoft.Extensions.Logging dla wszystkich dzienników silosu i klienta. Możesz użyć dowolnego dostawcy rejestrowania zgodnego z usługą Microsoft.Extensions.Logging. Kod Twojej aplikacji opiera się na iniekcji zależności, aby uzyskać wystąpienie ILogger<TCategoryName>, i używa go do rejestrowania komunikatów. Aby uzyskać więcej informacji, zobacz Rejestrowanie na platformie .NET.
Wskaźniki
Metryki to pomiary liczbowe zgłaszane z biegiem czasu. Najczęściej używasz ich do monitorowania kondycji aplikacji i generowania alertów. Aby uzyskać więcej informacji, zobacz Metryki na platformie .NET. Orleans używa interfejsów API System.Diagnostics.Metrics do zbierania metryk. Te metryki są widoczne w projekcie OpenTelemetry , który eksportuje je do różnych systemów monitorowania.
Aby monitorować aplikację bez wprowadzania żadnych zmian w kodzie, użyj narzędzia diagnostycznego platformy dotnet counters .NET. Aby monitorować OrleansActivitySource liczniki dla określonego <ProcessName>, użyj dotnet counters monitor polecenia jak pokazano:
dotnet counters monitor -n <ProcessName> --counters Microsoft.Orleans
Wyobraź sobie, że korzystasz z przykładowejOrleans aplikacji GPS Tracker i monitorujesz ją w osobnym terminalu dotnet counters monitor za pomocą polecenia . Następujące dane wyjściowe są typowe:
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
Aby uzyskać więcej informacji, zobacz Badanie liczników wydajności (dotnet-counters).
Orleans metry
Orleans używa interfejsów API System.Diagnostics.Metrics do zbierania metryk. Orleans Kategoryzuje każdy miernik w zagadnieniach związanych z domeną, takich jak sieć, obsługa komunikatów, brama itp. W poniższych podsekcjach opisano użycie mierników Orleans .
Sieć
W poniższej tabeli przedstawiono kolekcję mierników sieci używanych do monitorowania Orleans warstwy sieci.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-networking-sockets-closed |
Counter<T> | Liczba gniazd, które zostały zamknięte. |
orleans-networking-sockets-opened |
Counter<T> | Liczba otwartych gniazd. |
Messaging
W poniższej tabeli przedstawiono zbiór mierników używanych do monitorowania Orleans warstwy obsługi komunikatów.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-messaging-sent-messages-size |
Histogram<T> | Histogram reprezentujący rozmiar komunikatów w bajtach, które zostały wysłane. |
orleans-messaging-received-messages-size |
Histogram<T> | Histogram reprezentujący rozmiar komunikatów w bajtach, które zostały odebrane. |
orleans-messaging-sent-header-size |
ObservableCounter<T> | Obserwowalny licznik reprezentujący liczbę wysłanych bajtów nagłówka. |
orleans-messaging-received-header-size |
ObservableCounter<T> | Obserwowalny licznik reprezentujący liczbę odebranych bajtów nagłówka. |
orleans-messaging-sent-failed |
Counter<T> | Liczba wysłanych komunikatów, które zakończyły się niepowodzeniem. |
orleans-messaging-sent-dropped |
Counter<T> | Liczba porzuconych wiadomości. |
orleans-messaging-processing-dispatcher-received |
ObservableCounter<T> | Obserwowalny licznik reprezentujący komunikaty odebrane przez dyspozytora. |
orleans-messaging-processing-dispatcher-processed |
ObservableCounter<T> | Obserwowalny licznik reprezentujący komunikaty przetworzone przez dyspozytor liczbowy. |
orleans-messaging-processing-dispatcher-forwarded |
ObservableCounter<T> | Obserwowalny licznik reprezentujący komunikaty przesyłane dalej przez dyspozytora liczbowego. |
orleans-messaging-processing-ima-received |
ObservableCounter<T> | Obserwowalny licznik reprezentujący liczbę odebranych komunikatów przychodzących. |
orleans-messaging-processing-ima-enqueued |
ObservableCounter<T> | Licznik, który można zaobserwować, oznaczający liczbę przychodzących komunikatów w kolejce. |
orleans-messaging-processing-activation-data |
ObservableGauge<T> | Obserwowalny miernik reprezentujący wszystkie dane aktywacji przetwarzania. |
orleans-messaging-pings-sent |
Counter<T> | Liczba wysłanych pingów. |
orleans-messaging-pings-received |
Counter<T> | Liczba odebranych pingów. |
orleans-messaging-pings-reply-received |
Counter<T> | Liczba odebranych odpowiedzi ping. |
orleans-messaging-pings-reply-missed |
Counter<T> | Liczba utraconych odpowiedzi ping. |
orleans-messaging-expired" |
Counter<T> | Liczba komunikatów, które wygasły. |
orleans-messaging-rejected |
Counter<T> | Liczba komunikatów, które zostały odrzucone. |
orleans-messaging-rerouted |
Counter<T> | Liczba komunikatów, które zostały przekierowane. |
orleans-messaging-sent-local |
ObservableCounter<T> | Obserwowalny licznik reprezentujący liczbę wysłanych komunikatów lokalnych. |
Brama sieciowa
W poniższej tabeli przedstawiono kolekcję mierników bramy używanych do monitorowania Orleans warstwy bramy.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-gateway-connected-clients |
UpDownCounter<T> | Licznik w górę/w dół reprezentujący liczbę połączonych klientów. |
orleans-gateway-sent |
Counter<T> | Liczba komunikatów wysłanych przez bramę. |
orleans-gateway-received |
Counter<T> | Liczba odebranych komunikatów bramy. |
orleans-gateway-load-shedding |
Counter<T> | Liczba komunikatów bramy dotyczących redukcji obciążenia, które zostały odrzucone z powodu przeciążenia bramy. |
Środowisko uruchomieniowe
W poniższej tabeli przedstawiono kolekcję mierników środowiska uruchomieniowego używanych do monitorowania Orleans warstwy środowiska uruchomieniowego.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-scheduler-long-running-turns |
Counter<T> | Liczba długotrwałych zmian w harmonogramie. |
orleans-runtime-total-physical-memory |
ObservableCounter<T> | Obserwowalny licznik reprezentujący całkowitą liczbę pamięci (w MB) środowiska uruchomieniowego Orleans . |
orleans-runtime-available-memory |
ObservableCounter<T> | Obserwowalny licznik reprezentujący dostępną pamięć (w MB) dla środowiska uruchomieniowego Orleans . |
Katalog
W poniższej tabeli przedstawiono kolekcję mierników katalogu używanych do monitorowania Orleans warstwy katalogu.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-catalog-activations |
ObservableGauge<T> | Obserwowalny miernik reprezentujący liczbę aktywacji katalogu. |
orleans-catalog-activation-working-set |
ObservableGauge<T> | Obserwowalny miernik reprezentujący liczbę aktywacji w zestawie roboczym. |
orleans-catalog-activation-created |
Counter<T> | Liczba utworzonych aktywacji. |
orleans-catalog-activation-destroyed |
Counter<T> | Liczba zniszczonych aktywacji. |
orleans-catalog-activation-failed-to-activate |
Counter<T> | Liczba aktywacji, które nie powiodły się. |
orleans-catalog-activation-collections |
Counter<T> | Liczba nieaktywnych zbiorów aktywacji. |
orleans-catalog-activation-shutdown |
Counter<T> | Liczba aktywacji wyłączeń. |
orleans-catalog-activation-non-existent |
Counter<T> | Liczba nieistniejących aktywacji. |
orleans-catalog-activation-concurrent-registration-attempts |
Counter<T> | Liczba równoczesnych prób rejestracji aktywacji. |
Katalog
W poniższej tabeli przedstawiono kolekcję mierników katalogów używanych do monitorowania warstwy katalogów Orleans .
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-directory-lookups-local-issued |
Counter<T> | Liczba przeprowadzonych lokalnych zapytań. |
orleans-directory-lookups-local-successes |
Counter<T> | Liczba lokalnych pomyślnych wyszukiwań. |
orleans-directory-lookups-full-issued |
Counter<T> | Liczba wydanych pełnych wyszukiwań w katalogu. |
orleans-directory-lookups-remote-sent |
Counter<T> | Liczba wysłanych zdalnych zapytań katalogowych. |
orleans-directory-lookups-remote-received |
Counter<T> | Liczba odebranych zapytań dotyczących zdalnego katalogu. |
orleans-directory-lookups-local-directory-issued |
Counter<T> | Liczba zapytań w katalogu lokalnym. |
orleans-directory-lookups-local-directory-successes |
Counter<T> | Liczba pomyślnych wyszukiwań w katalogu lokalnym. |
orleans-directory-lookups-cache-issued |
Counter<T> | Liczba buforowanych zapytań przeprowadzonych. |
orleans-directory-lookups-cache-successes |
Counter<T> | Liczba buforowanych pomyślnych wyszukiwań. |
orleans-directory-validations-cache-sent |
Counter<T> | Liczba wysłanych walidacji pamięci podręcznej katalogu. |
orleans-directory-validations-cache-received |
Counter<T> | Liczba odebranych walidacji pamięci podręcznej katalogu. |
orleans-directory-partition-size |
ObservableGauge<T> | Obserwowalny miernik reprezentujący rozmiar partycji katalogu. |
orleans-directory-cache-size |
ObservableGauge<T> | Obserwowalny wskaźnik reprezentujący rozmiar pamięci podręcznej katalogu. |
orleans-directory-ring-size |
ObservableGauge<T> | Widoczny wskaźnik reprezentujący rozmiar pierścienia systemu katalogów. |
orleans-directory-ring-local-portion-distance |
ObservableGauge<T> | Obserwowalny miernik przedstawiający zakres pierścienia, który jest własnością partycji lokalnego katalogu. |
orleans-directory-ring-local-portion-percentage |
ObservableGauge<T> | Obserwowalny wskaźnik przedstawiający zakres pierścieni należący do lokalnego katalogu, wyrażony jako procent całkowitego zakresu. |
orleans-directory-ring-local-portion-average-percentage |
ObservableGauge<T> | Obserwowalny miernik przedstawiający średni procent zakresu pierścienia katalogowego należącego do każdego silosu, obrazując jak bardzo jest zrównoważona własność katalogów. |
orleans-directory-registrations-single-act-issued |
Counter<T> | Liczba wystawionych rejestracji pojedynczej aktywacji w katalogu. |
orleans-directory-registrations-single-act-local |
Counter<T> | Liczba rejestracji aktywacji pojedynczego katalogu obsługiwanych przez lokalną partycję katalogu. |
orleans-directory-registrations-single-act-remote-sent |
Counter<T> | Liczba rejestracji pojedynczej aktywacji katalogu wysłanych do zdalnej partycji katalogu. |
orleans-directory-registrations-single-act-remote-received |
Counter<T> | Liczba rejestracji pojedynczej aktywacji katalogu odebranych z hostów zdalnych. |
orleans-directory-unregistrations-issued |
Counter<T> | Liczba wydanych derejestracji katalogów. |
orleans-directory-unregistrations-local |
Counter<T> | Liczba wypisań z katalogów obsługiwanych przez lokalną partycję katalogową. |
orleans-directory-unregistrations-remote-sent |
Counter<T> | Liczba deregisracji katalogów wysyłanych do partycji katalogu zdalnego. |
orleans-directory-unregistrations-remote-received |
Counter<T> | Liczba wyrejestrowań katalogów otrzymanych z hostów zdalnych. |
orleans-directory-unregistrations-many-issued |
Counter<T> | Liczba wydanych wyrejestrowań aktywacji wielokrotnej katalogu. |
orleans-directory-unregistrations-many-remote-sent |
Counter<T> | Liczba wyrejestrowania wielu aktywacji katalogu wysyłanych do partycji katalogu zdalnego. |
orleans-directory-unregistrations-many-remote-received |
Counter<T> | Liczba wyrejestrowań z katalogu z wielo-aktywacjami odebranych z hostów zdalnych. |
Pierścień spójny
W poniższej tabeli przedstawiono zestaw mierników pierścieniowych używanych do monitorowania jednolitej warstwy pierścienia Orleans.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-consistent-ring-size |
ObservableGauge<T> | Obserwowalny miernik reprezentujący spójny rozmiar pierścienia. |
orleans-consistent-ring-range-percentage-local |
ObservableGauge<T> | Obserwowalny miernik reprezentujący stałą wartość procentową pierścienia lokalnego. |
orleans-consistent-ring-range-percentage-average |
ObservableGauge<T> | Obserwowalny miernik reprezentujący stałą średnią wartość procentową pierścienia. |
Watchdog
W poniższej tabeli przedstawiono kolekcję mierników typu watchdog używanych do monitorowania warstwy Orleans watchdog.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-watchdog-health-checks |
Counter<T> | Liczba sprawdzeń stanu monitoringu. |
orleans-watchdog-health-checks-failed |
Counter<T> | Liczba nieudanych kontroli zdrowia systemu watchdog. |
Klient
W poniższej tabeli przedstawiono kolekcję mierników klientów używanych do monitorowania Orleans warstwy klienta.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-client-connected-gateways |
ObservableGauge<T> | Obserwowalny miernik reprezentujący liczbę klientów połączonej bramy. |
Różne
W poniższej tabeli przedstawiono kolekcję różnych mierników używanych do monitorowania różnych warstw.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-grains |
Counter<T> | Liczba reprezentująca liczbę ziarna. |
orleans-system-targets |
Counter<T> | Liczba reprezentująca liczbę obiektów docelowych systemu. |
Żądania aplikacji
W poniższej tabeli przedstawiono kolekcję mierników żądań aplikacji używanych do monitorowania warstwy Orleans żądań aplikacji.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-app-requests-latency |
ObservableCounter<T> | Obserwowalny licznik reprezentujący opóźnienie żądania aplikacji. |
orleans-app-requests-timedout |
ObservableCounter<T> | Obserwowalny licznik reprezentujący żądania aplikacji, które przekroczyły limit czasu. |
Przypomnienia
W poniższej tabeli przedstawiono kolekcję mierników przypomnień używanych do monitorowania warstwy Orleans przypomnienia.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-reminders-tardiness |
Histogram<T> | Histogram przedstawiający liczbę sekund, o którą przypomnienie jest spóźnione. |
orleans-reminders-active |
ObservableGauge<T> | Obserwowalny miernik reprezentujący liczbę aktywnych przypomnień. |
orleans-reminders-ticks-delivered |
Counter<T> | Liczba reprezentująca liczbę przypomnień, które zostały przekazane. |
Magazyn
W poniższej tabeli przedstawiono zestaw mierników pojemności używanych do monitorowania warstwy magazynowania Orleans.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-storage-read-errors |
Counter<T> | Liczba reprezentująca liczbę błędów odczytu magazynu. |
orleans-storage-write-errors |
Counter<T> | Liczba reprezentująca liczbę błędów zapisu pamięci masowej. |
orleans-storage-clear-errors |
Counter<T> | Liczba reprezentująca liczbę błędów usuwania danych z magazynu. |
orleans-storage-read-latency |
Histogram<T> | Histogram wizualizujący opóźnienie odczytu pamięci masowej w milisekundach. |
orleans-storage-write-latency |
Histogram<T> | Histogram przedstawiający opóźnienie zapisu w pamięci masowej w milisekundach. |
orleans-storage-clear-latency |
Histogram<T> | Histogram reprezentujący opóźnienie czyszczenia pamięci w milisekundach. |
Strumienie
W poniższej tabeli przedstawiono kolekcję mierników strumienia używanych do monitorowania warstwy strumienia Orleans .
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-streams-pubsub-producers-added |
Counter<T> | Liczba dodanych wytwórców w systemie publikacja/subskrypcja przesyłania strumieniowego. |
orleans-streams-pubsub-producers-removed |
Counter<T> | Liczba usuniętych producentów przesyłania strumieniowego pubsub. |
orleans-streams-pubsub-producers |
Counter<T> | Liczba producentów w systemie publikująco-subskrybującym przesyłania strumieniowego. |
orleans-streams-pubsub-consumers-added |
Counter<T> | Liczba dodanych użytkowników pubsub przesyłania strumieniowego. |
orleans-streams-pubsub-consumers-removed |
Counter<T> | Liczba usuniętych użytkowników pubsub przesyłania strumieniowego. |
orleans-streams-pubsub-consumers |
Counter<T> | Liczba odbiorców przesyłania strumieniowego PubSub. |
orleans-streams-persistent-stream-pulling-agents |
ObservableGauge<T> | Obserwowalny miernik reprezentujący liczbę agentów ściągania strumienia trwałego. |
orleans-streams-persistent-stream-messages-read |
Counter<T> | Liczba odczytanych trwałych komunikatów strumienia. |
orleans-streams-persistent-stream-messages-sent |
Counter<T> | Liczba wysłanych trwałych komunikatów strumieniowych. |
orleans-streams-persistent-stream-pubsub-cache-size |
ObservableGauge<T> | Obserwowalny miernik wskazujący na rozmiar pamięci podręcznej systemu pubsub dla ciągłego strumienia. |
orleans-streams-queue-initialization-failures |
Counter<T> | Liczba błędów inicjowania kolejki Steam. |
orleans-streams-queue-initialization-duration |
Counter<T> | Liczba wystąpień inicjowania kolejki Steam. |
orleans-streams-queue-initialization-exceptions |
Counter<T> | Liczba wyjątków inicjowania kolejki Steam. |
orleans-streams-queue-read-failures |
Counter<T> | Liczba niepowodzeń odczytu kolejki Steam. |
orleans-streams-queue-read-duration |
Counter<T> | Liczba wystąpień odczytu kolejki na platformie Steam. |
orleans-streams-queue-read-exceptions |
Counter<T> | Liczba błędów odczytu kolejki Steam. |
orleans-streams-queue-shutdown-failures |
Counter<T> | Liczba niepowodzeń zamykania kolejki na platformie Steam. |
orleans-streams-queue-shutdown-duration |
Counter<T> | Liczba wystąpień zamknięcia kolejki Steam. |
orleans-streams-queue-shutdown-exceptions |
Counter<T> | Liczba wyjątków zamykania kolejki Steam. |
orleans-streams-queue-messages-received |
ObservableCounter<T> | Obserwowalny licznik reprezentujący liczbę odebranych komunikatów kolejki strumienia. |
orleans-streams-queue-oldest-message-enqueue-age |
ObservableGauge<T> | Obserwowalny wskaźnik reprezentujący wiek najstarszego komunikatu w kolejce. |
orleans-streams-queue-newest-message-enqueue-age |
ObservableGauge<T> | Obserwowalny wskaźnik reprezentujący wiek ostatnio zakolejkowanej wiadomości. |
orleans-streams-block-pool-total-memory |
ObservableCounter<T> | Obserwowalny licznik, który reprezentuje łączną pamięć puli bloków strumienia w bajtach. |
orleans-streams-block-pool-available-memory |
ObservableCounter<T> | Obserwowalny licznik reprezentujący pulę bloków strumienia dostępnej pamięci w bajtach. |
orleans-streams-block-pool-claimed-memory |
ObservableCounter<T> | Obserwowalny licznik reprezentujący pulę bloków strumienia, przeznaczoną pamięć w bajtach. |
orleans-streams-block-pool-released-memory |
ObservableCounter<T> | Obserwowalny licznik reprezentujący pulę bloków strumienia zwolnił pamięć w bajtach. |
orleans-streams-block-pool-allocated-memory |
ObservableCounter<T> | Obserwowalny licznik reprezentujący przydzieloną w bajtach pamięć puli bloków strumienia. |
orleans-streams-queue-cache-size |
ObservableCounter<T> | Obserwowalny licznik reprezentujący rozmiar pamięci podręcznej kolejki strumienia w bajtach. |
orleans-streams-queue-cache-length |
ObservableCounter<T> | Obserwowalny licznik reprezentujący długość kolejki strumienia. |
orleans-streams-queue-cache-messages-added |
ObservableCounter<T> | Licznik obserwowalny reprezentujący wiadomości dodane do kolejki strumienia. |
orleans-streams-queue-cache-messages-purged |
ObservableCounter<T> | Obserwowalny licznik reprezentujący usunięte komunikaty kolejki strumienia. |
orleans-streams-queue-cache-memory-allocated |
ObservableCounter<T> | Widoczny licznik reprezentujący przydzieloną pamięć kolejki strumienia. |
orleans-streams-queue-cache-memory-released |
ObservableCounter<T> | Licznik obserwowalny reprezentujący zwalnianą pamięć kolejki strumienia. |
orleans-streams-queue-cache-oldest-to-newest-duration |
ObservableGauge<T> | Obserwowalny miernik reprezentujący czas trwania od najstarszego do najnowszej pamięci podręcznej kolejki strumienia. |
orleans-streams-queue-cache-oldest-age |
ObservableGauge<T> | Obserwowalny miernik reprezentujący wiek najstarszego buforowanego komunikatu. |
orleans-streams-queue-cache-pressure |
ObservableGauge<T> | Obserwowalny miernik reprezentujący ciśnienie w pamięci podręcznej kolejki strumienia. |
orleans-streams-queue-cache-under-pressure |
ObservableGauge<T> | Obserwowalny miernik wskazujący, czy pamięć podręczna kolejki strumieniowej jest pod presją. |
orleans-streams-queue-cache-pressure-contribution-count |
ObservableCounter<T> | Obserwowalny licznik reprezentujący wkład w presję na pamięć podręczną kolejki strumieniowej. |
Transakcji
W poniższej tabeli przedstawiono kolekcję mierników transakcji używanych do monitorowania Orleans warstwy transakcji.
| Nazwa miernika | Typ | Opis |
|---|---|---|
orleans-transactions-started |
ObservableCounter<T> | Obserwowalny licznik reprezentujący liczbę uruchomionych transakcji. |
orleans-transactions-successful |
ObservableCounter<T> | Obserwowalny licznik reprezentujący liczbę pomyślnych transakcji. |
orleans-transactions-failed |
ObservableCounter<T> | Obserwowalny licznik reprezentujący liczbę transakcji zakończonych niepowodzeniem. |
orleans-transactions-throttled |
ObservableCounter<T> | Licznik obserwowalny reprezentujący liczbę ograniczonych transakcji. |
Prometeusz
Do użycia z Orleansprogramem są dostępni różni dostawcy metryk innych firm. Jednym z popularnych przykładów jest Prometheus, którego można użyć do zbierania metryk z aplikacji za pomocą biblioteki OpenTelemetry.
Aby użyć OpenTelemetry i Prometheus z Orleans, wywołaj następującą metodę rozszerzenia IServiceCollection:
builder.Services.AddOpenTelemetry()
.WithMetrics(metrics =>
{
metrics
.AddPrometheusExporter()
.AddMeter("Microsoft.Orleans");
});
Ważne
Pakiety NuGet OpenTelemetry.Exporter.Prometheus i OpenTelemetry.Exporter.Prometheus.AspNetCore są obecnie dostępne w wersji zapoznawczej jako kandydaci do wydania. Nie są one zalecane do użytku produkcyjnego.
Metoda AddPrometheusExporter gwarantuje, że element PrometheusExporter zostanie dodany do elementu builder.
Orleans używa elementu Meter o nazwie "Microsoft.Orleans" do tworzenia instancji Counter<T> dla wielu metryk specyficznych dla Orleans.
AddMeter Użyj metody , aby określić nazwę miernika do zasubskrybowania, w tym przypadku "Microsoft.Orleans".
Po skonfigurowaniu eksportera i utworzeniu aplikacji, wywołaj MapPrometheusScrapingEndpoint na IEndpointRouteBuilder (czyli na wystąpieniu app), aby udostępnić metryki Prometheusowi. Przykład:
WebApplication app = builder.Build();
app.MapPrometheusScrapingEndpoint();
app.Run();
Śledzenie rozproszone
Śledzenie rozproszone to zestaw narzędzi i rozwiązań do monitorowania i rozwiązywania problemów z aplikacjami rozproszonymi. Jest to kluczowy składnik możliwości obserwowania i krytyczne narzędzie do zrozumienia zachowania aplikacji. Orleans obsługuje śledzenie rozproszone za pomocą biblioteki OpenTelemetry.
Niezależnie od wybranego eksportera śledzenia rozproszonego, wywołaj:
- AddActivityPropagation(ISiloBuilder): który umożliwia śledzenie rozproszone dla silosu.
- AddActivityPropagation(IClientBuilder): który umożliwia śledzenie rozproszone dla klienta.
Możesz też ustawić opcję konfiguracji EnableDistributedTracing na true.
Odwołując się z powrotem do przykładowejOrleans aplikacji GPS Tracker, można użyć rozproszonego systemu śledzenia Zipkin do monitorowania aplikacji, aktualizując Program.cs. Aby użyć OpenTelemetry i Zipkin z Orleans, wywołaj następującą metodę rozszerzenia IServiceCollection.
builder.Services.AddOpenTelemetry()
.WithTracing(tracing =>
{
// Set a service name
tracing.SetResourceBuilder(
ResourceBuilder.CreateDefault()
.AddService(serviceName: "GPSTracker", serviceVersion: "1.0"));
tracing.AddSource("Microsoft.Orleans.Runtime");
tracing.AddSource("Microsoft.Orleans.Application");
tracing.AddZipkinExporter(zipkin =>
{
zipkin.Endpoint = new Uri("http://localhost:9411/api/v2/spans");
});
});
Ważne
Pakiet NuGet OpenTelemetry.Exporter.Zipkin jest obecnie w wersji zapoznawczej jako kandydat do wydania. Nie zaleca się używania w środowisku produkcyjnym.
Ślad Zipkin jest wyświetlany w interfejsie użytkownika Jaeger (alternatywa dla pliku Zipkin, który używa tego samego formatu danych):
Aby uzyskać więcej informacji, zobacz Śledzenie rozproszone.
Orleans generuje statystyki i metryki środowiska uruchomieniowego za pośrednictwem interfejsu ITelemetryConsumer . Aplikacja może zarejestrować co najmniej jednego użytkownika telemetrii dla silosów i klientów, aby otrzymywać statystyki i metryki Orleans okresowo publikowane przez środowisko uruchomieniowe. Mogą to być konsumenci popularnych rozwiązań do analizy danych telemetrycznych lub niestandardowych dla dowolnego innego miejsca docelowego i celu. Trzech odbiorców telemetrii jest obecnie uwzględnionych w Orleans bazie kodu.
Są one wydawane jako oddzielne pakiety NuGet:
Microsoft.Orleans.OrleansTelemetryConsumers.AI: Do publikowania w usłudze Azure Application Insights.Microsoft.Orleans.OrleansTelemetryConsumers.Counters: Do publikowania w licznikach wydajności systemu Windows. Środowisko Orleans uruchomieniowe stale aktualizuje wiele z nich. Narzędzie CounterControl.exe uwzględnione wMicrosoft.Orleans.CounterControlpakiecie NuGet pomaga zarejestrować niezbędne kategorie liczników wydajności. Musi działać z podwyższonym poziomem uprawnień. Monitoruj liczniki wydajności przy użyciu dowolnych standardowych narzędzi do monitorowania.Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic: Do publikowania w New Relic.
Aby skonfigurować silos i klienta do używania użytkowników telemetrii, kod konfiguracji silosu wygląda następująco:
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
});
Kod konfiguracji klienta wygląda następująco:
var clientBuilder = new ClientBuilder();
clientBuilder.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
Aby użyć niestandardowo zdefiniowanego TelemetryConfiguration (który może mieć TelemetryProcessors, TelemetrySinks, itd.), konfiguracja silosu wygląda następująco:
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);
});
Kod konfiguracji klienta wygląda następująco:
var clientBuilder = new ClientBuilder();
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
clientBuilder.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);