Udostępnij przez


Orleans możliwość obserwowania

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:

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):

Orleans Przykładowa aplikacja GPS Tracker: Ślad interfejsu użytkownika Jaegera.

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 w Microsoft.Orleans.CounterControl pakiecie 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);

Zobacz także