Orleans gözlemlenebilirlik

Gözlemlenebilirlik, dağıtılmış sistemin en önemli yönlerinden biridir. Bu, sistemin durumunu herhangi bir zamanda anlayabilmektir. Bunu günlüğe kaydetme, ölçümler ve dağıtılmış izleme gibi çeşitli yollarla gerçekleştirebilirsiniz.

Ağaç kesimi

Orleans tüm silo ve istemci logları için Microsoft.Extensions.Logging kullanır. ile Microsoft.Extensions.Logging uyumlu herhangi bir günlük sağlayıcısı kullanabilirsiniz. Uygulama kodunuz, örneğini almak için ILogger<TCategoryName> dayanır ve bunu kullanarak iletileri günlüğe kaydeder. Daha fazla bilgi için bkz. .NET'te oturum açma.

Ölçümler

Ölçümler, zaman içinde bildirilen sayısal ölçümlerdir. Bunları çoğunlukla bir uygulamanın durumunu izlemek ve uyarılar oluşturmak için kullanırsınız. Daha fazla bilgi için bkz . .NET'te ölçümler. Orleans ölçümleri toplamak için System.Diagnostics.Metrics API'lerini kullanır. Bu ölçümler, çeşitli izleme sistemlerine aktaran OpenTelemetry projesine sunulur.

Kod değişikliği yapmadan uygulamanızı izlemek için .NET tanılama aracını kullanın dotnet counters . Belirli bir Orleans için ActivitySource<ProcessName> sayaçlarını izlemek amacıyla, gösterildiği gibi dotnet counters monitor komutunu kullanın:

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

GPS Tracker örnek uygulamasını çalıştırdığınızıOrleans ve ayrı bir terminalde dotnet counters monitor komutuyla izlediğinizi düşünün. Aşağıdaki çıkış tipiktir:

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

Daha fazla bilgi için Performans sayaçlarını inceleme (dotnet-counters) bölümüne bakın.

Orleans Metre

Orleans ölçümleri toplamak için System.Diagnostics.Metrics API'lerini kullanır. Orleans Her ölçümü ağ, mesajlaşma, ağ geçidi gibi etki alanı merkezli endişelere göre kategorilere ayırır. Aşağıdaki alt bölümlerde ölçüm Orleans kullanımları açıklanmaktadır.

Ağ Kurma

Aşağıdaki tabloda, ağ katmanını izlemek Orleans için kullanılan ağ ölçümleri koleksiyonu gösterilmektedir.

Ölçüm adı Türü Açıklama
orleans-networking-sockets-closed Counter<T> Kapatılan yuvaların sayısı.
orleans-networking-sockets-opened Counter<T> Açılmış soketlerin sayısı.

Mesajlaşma

Aşağıdaki tabloda, mesajlaşma katmanını izlemek için kullanılan mesajlaşma ölçümlerinden oluşan bir koleksiyon gösterilmektedir Orleans .

Ölçüm adı Türü Açıklama
orleans-messaging-sent-messages-size Histogram<T> Gönderilen iletilerin bayt cinsinden boyutunu temsil eden histogram.
orleans-messaging-received-messages-size Histogram<T> Alınan iletilerin bayt cinsinden boyutunu temsil eden histogram.
orleans-messaging-sent-header-size ObservableCounter<T> Gönderilen üst bilgi baytlarının sayısını temsil eden gözlemlenebilir bir sayaç.
orleans-messaging-received-header-size ObservableCounter<T> Alınan üst bilgi baytlarının sayısını temsil eden gözlemlenebilir bir sayaç.
orleans-messaging-sent-failed Counter<T> Başarısız gönderilen iletilerin sayısı.
orleans-messaging-sent-dropped Counter<T> Gönderilmeyen iletilerin sayısı.
orleans-messaging-processing-dispatcher-received ObservableCounter<T> İletileri alan sayı dağıtıcısını temsil eden gözlemlenebilir bir sayaç.
orleans-messaging-processing-dispatcher-processed ObservableCounter<T> Sayı dağıtıcısı tarafından işlenen iletileri temsil eden gözlemlenebilir bir sayaç.
orleans-messaging-processing-dispatcher-forwarded ObservableCounter<T> İletici tarafından iletilen mesajların sayısını temsil eden gözlemlenebilir bir sayaç.
orleans-messaging-processing-ima-received ObservableCounter<T> Alınan gelen iletilerin sayısını temsil eden gözlemlenebilir bir sayaç.
orleans-messaging-processing-ima-enqueued ObservableCounter<T> Sıraya alınan gelen ileti sayısını temsil eden gözlemlenebilir bir sayaç.
orleans-messaging-processing-activation-data ObservableGauge<T> Tüm işleme etkinleştirme verilerini temsil eden gözlemlenebilir bir ölçer.
orleans-messaging-pings-sent Counter<T> Gönderilen ping sayısı.
orleans-messaging-pings-received Counter<T> Alınan ping sayısı.
orleans-messaging-pings-reply-received Counter<T> Alınan ping yanıtlarının sayısı.
orleans-messaging-pings-reply-missed Counter<T> Kaçırılan ping yanıtlarının sayısı.
orleans-messaging-expired" Counter<T> Süresi dolan iletilerin sayısı.
orleans-messaging-rejected Counter<T> Reddedilen iletilerin sayısı.
orleans-messaging-rerouted Counter<T> Yeniden yönlendirilen iletilerin sayısı.
orleans-messaging-sent-local ObservableCounter<T> Gönderilen yerel ileti sayısını temsil eden gözlemlenebilir bir sayaç.

Geçit

Aşağıdaki tabloda, geçit katmanını izlemek için kullanılan geçit ölçerlerinin bir koleksiyonu gösterilmektedir Orleans .

Ölçüm adı Türü Açıklama
orleans-gateway-connected-clients UpDownCounter<T> Bağlı istemci sayısını temsil eden bir yukarı/aşağı sayacı.
orleans-gateway-sent Counter<T> Gönderilen ağ geçidi iletilerinin sayısı.
orleans-gateway-received Counter<T> Alınan ağ geçidi iletilerinin sayısı.
orleans-gateway-load-shedding Counter<T> Ağ geçidinin aşırı yüklenmesi nedeniyle reddedilen ağ geçidi (yük ayırma) iletilerinin sayısı.

Çalışma zamanı

Aşağıdaki tabloda, çalışma zamanı katmanını izlemek için kullanılan çalışma zamanı ölçümleri koleksiyonu gösterilmektedir Orleans .

Ölçüm adı Türü Açıklama
orleans-scheduler-long-running-turns Counter<T> Zamanlayıcı içerisindeki uzun süreli devirlerin sayısı.
orleans-runtime-total-physical-memory ObservableCounter<T> Çalışma zamanının toplam bellek sayısını (MB cinsinden) Orleans temsil eden gözlemlenebilir bir sayaç.
orleans-runtime-available-memory ObservableCounter<T> Çalışma zamanı için Orleans kullanılabilir belleği (MB cinsinden) temsil eden gözlemlenebilir bir sayaç.

Katalog

Aşağıdaki tabloda, Orleans katalog katmanını izlemek için kullanılan katalog ölçüm koleksiyonu gösterilmektedir.

Ölçüm adı Türü Açıklama
orleans-catalog-activations ObservableGauge<T> Katalog etkinleştirmelerinin sayısını temsil eden gözlemlenebilir bir ölçer.
orleans-catalog-activation-working-set ObservableGauge<T> Çalışma kümesindeki etkinleştirme sayısını temsil eden gözlemlenebilir bir ölçer.
orleans-catalog-activation-created Counter<T> Oluşturulan etkinleştirmelerin sayısı.
orleans-catalog-activation-destroyed Counter<T> Yok edilen etkinleştirmelerin sayısı.
orleans-catalog-activation-failed-to-activate Counter<T> Başarısız olan aktivasyonların sayısı.
orleans-catalog-activation-collections Counter<T> Boşta etkinleştirme koleksiyonlarının sayısı.
orleans-catalog-activation-shutdown Counter<T> Kapatılma aktivasyonlarının sayısı.
orleans-catalog-activation-non-existent Counter<T> Gerçekleşmemiş etkinleştirmelerin sayısı.
orleans-catalog-activation-concurrent-registration-attempts Counter<T> Eş zamanlı etkinleştirme kayıt denemelerinin sayısı.

Dizin

Aşağıdaki tabloda, dizin katmanını izlemek için kullanılan dizin ölçerleri koleksiyonu gösterilmektedir Orleans.

Ölçüm adı Türü Açıklama
orleans-directory-lookups-local-issued Counter<T> Yapılan yerel sorgulamaların sayısı.
orleans-directory-lookups-local-successes Counter<T> Başarılı yerel aramaların sayısı.
orleans-directory-lookups-full-issued Counter<T> Verilen tam dizin aramalarının sayısı.
orleans-directory-lookups-remote-sent Counter<T> Gönderilen uzak dizin aramalarının sayısı.
orleans-directory-lookups-remote-received Counter<T> Alınan uzak dizin aramalarının sayısı.
orleans-directory-lookups-local-directory-issued Counter<T> Verilen yerel dizin aramalarının sayısı.
orleans-directory-lookups-local-directory-successes Counter<T> Yerel dizin başarılı aramalarının sayısı.
orleans-directory-lookups-cache-issued Counter<T> Verilen önbelleğe alınmış aramaların sayısı.
orleans-directory-lookups-cache-successes Counter<T> Önbelleğe alınmış başarılı aramaların sayısı.
orleans-directory-validations-cache-received Counter<T> Alınan dizin önbelleği doğrulamalarının sayısı.
orleans-directory-partition-size ObservableGauge<T> Dizin bölümü boyutunu temsil eden gözlemlenebilir bir ölçer.
orleans-directory-cache-size ObservableGauge<T> Dizin önbelleği boyutunu temsil eden gözlemlenebilir bir ölçer.
orleans-directory-ring-size ObservableGauge<T> Dizin halkası boyutunu gösteren gözlemlenebilir bir gösterge.
orleans-directory-ring-local-portion-distance ObservableGauge<T> Yerel dizin bölümüne ait halka aralığını temsil eden gözlemlenebilir bir ölçü.
orleans-directory-ring-local-portion-percentage ObservableGauge<T> Toplam aralığın yüzdesi olarak temsil edilen yerel dizine ait halka aralığını temsil eden gözlemlenebilir bir gösterge.
orleans-directory-ring-local-portion-average-percentage ObservableGauge<T> Her silonun sahip olduğu dizin halkası aralığının ortalama yüzdesini temsil eden gözlemlenebilir bir ölçer, dizin sahipliğinin ne kadar dengeli olduğunu gösterir.
orleans-directory-registrations-single-act-issued Counter<T> Verilen dizin tek etkinleştirme kayıtlarının sayısı.
orleans-directory-registrations-single-act-local Counter<T> Yerel dizin bölümü tarafından işlenen dizin tek etkinleştirme kayıtlarının sayısı.
orleans-directory-registrations-single-act-remote-sent Counter<T> Uzak dizin bölümüne gönderilen dizin tek etkinleştirme kayıtlarının sayısı.
orleans-directory-registrations-single-act-remote-received Counter<T> Uzak konaklardan alınan dizin tekli etkinleştirme kayıtlarının sayısı.
orleans-directory-unregistrations-issued Counter<T> Verilen dizin kaydı kaldırma sayısı.
orleans-directory-unregistrations-local Counter<T> Yerel dizin bölümü tarafından işlenen dizin silme işlemlerinin sayısı.
orleans-directory-unregistrations-remote-sent Counter<T> Uzak dizin bölümlerine gönderilen dizin kaydı iptalleri sayısı.
orleans-directory-unregistrations-remote-received Counter<T> Uzak konaklardan alınan dizin kaydı kaldırma sayısı.
orleans-directory-unregistrations-many-issued Counter<T> Verilen dizin çoklu etkinleştirme kayıt silmelerinin sayısı.
orleans-directory-unregistrations-many-remote-sent Counter<T> Uzak dizin bölümlerine gönderilen çoklu etkinleştirme kayıtlarının silinme sayısı.
orleans-directory-unregistrations-many-remote-received Counter<T> Uzak konaklardan alınan dizin çoklu etkinleştirme kayıt silmelerinin sayısı.

Tutarlı çember

Aşağıdaki tabloda Orleans tutarlı halka katmanını izlemek için kullanılan tutarlı halka ölçerlerinin bir koleksiyonu gösterilmektedir.

Ölçüm adı Türü Açıklama
orleans-consistent-ring-size ObservableGauge<T> Tutarlı halka boyutunu temsil eden gözlemlenebilir bir ölçer.
orleans-consistent-ring-range-percentage-local ObservableGauge<T> Tutarlı halka yerel yüzdesini temsil eden gözlemlenebilir bir ölçer.
orleans-consistent-ring-range-percentage-average ObservableGauge<T> Tutarlı ring ortalama yüzdesini temsil eden gözlemlenebilir bir ölçer.

Watchdog

Aşağıdaki tablo, Orleans watchdog tabakasını izlemek için kullanılan watchdog ölçüm cihazlarının bir koleksiyonunu göstermektedir.

Ölçüm adı Türü Açıklama
orleans-watchdog-health-checks Counter<T> watchdog sağlık kontrollerinin sayısı.
orleans-watchdog-health-checks-failed Counter<T> Watchdog sağlık kontrollerinin başarısız sayısı.

Müşteri

Aşağıdaki tabloda, Orleans istemci katmanını izlemek için kullanılan istemci ölçümleri koleksiyonu gösterilmektedir.

Ölçüm adı Türü Açıklama
orleans-client-connected-gateways ObservableGauge<T> Bağlı ağ geçidi istemcilerinin sayısını temsil eden gözlemlenebilir bir ölçer.

Çeşitli

Aşağıdaki tabloda, çeşitli katmanları izlemek için kullanılan çeşitli ölçümler koleksiyonu gösterilmektedir.

Ölçüm adı Türü Açıklama
orleans-grains Counter<T> Tane sayısını temsil eden bir sayı.
orleans-system-targets Counter<T> Sistem hedeflerinin sayısını temsil eden bir sayı.

Uygulama istekleri

Aşağıdaki tabloda, uygulama isteği katmanını izlemek Orleans için kullanılan bir uygulama isteği ölçümleri koleksiyonu gösterilmektedir.

Ölçüm adı Türü Açıklama
orleans-app-requests-latency ObservableCounter<T> Uygulama isteği gecikme süresini temsil eden gözlemlenebilir bir sayaç.
orleans-app-requests-timedout ObservableCounter<T> Zaman aşımına uğrayan uygulama isteklerini temsil eden gözlemlenebilir bir sayaç.

Hatırlatmalar

Aşağıdaki tabloda, Orleans hatırlatıcı katmanını izlemek için kullanılan hatırlatıcı ölçerlerden oluşan bir koleksiyon gösterilmektedir.

Ölçüm adı Türü Açıklama
orleans-reminders-tardiness Histogram<T> Anımsatıcının gecikme saniye sayısını gösteren histogram.
orleans-reminders-active ObservableGauge<T> Etkin anımsatıcı sayısını temsil eden gözlemlenebilir bir ölçer.
orleans-reminders-ticks-delivered Counter<T> Teslim edilen hatırlatma işaretlerinin sayısını temsil eden bir sayı.

Depolama

Aşağıdaki tabloda, depolama katmanını izlemek için kullanılan depolama ölçümleri koleksiyonu gösterilmektedir Orleans .

Ölçüm adı Türü Açıklama
orleans-storage-read-errors Counter<T> Depolama okuma hatalarının sayısını temsil eden bir sayı.
orleans-storage-write-errors Counter<T> Depolama yazma hatalarının sayısını temsil eden bir sayı.
orleans-storage-clear-errors Counter<T> Depolama temizleme hatalarının sayısını temsil eden bir sayı.
orleans-storage-read-latency Histogram<T> Depolama okuma gecikme süresini milisaniye cinsinden temsil eden histogram.
orleans-storage-write-latency Histogram<T> Depolama yazma gecikme süresini milisaniye cinsinden temsil eden histogram.
orleans-storage-clear-latency Histogram<T> Depolama alanı net gecikme süresini milisaniye cinsinden temsil eden histogram.

Akarsu

Aşağıdaki tabloda, Orleans akış katmanını izlemek için kullanılan bir akış ölçerler koleksiyonu gösterilmektedir.

Ölçüm adı Türü Açıklama
orleans-streams-pubsub-producers-added Counter<T> Akış pubsub üreticilerinin sayısı eklendi.
orleans-streams-pubsub-producers-removed Counter<T> Akış pubsub üreticilerinin sayısı kaldırıldı.
orleans-streams-pubsub-producers Counter<T> Akış pubsub yapımcılarının sayısı.
orleans-streams-pubsub-consumers-added Counter<T> Akış pubsub tüketicilerinin sayısı eklendi.
orleans-streams-pubsub-consumers-removed Counter<T> Akış pubsub tüketicilerinin sayısı kaldırıldı.
orleans-streams-pubsub-consumers Counter<T> Yayın akışı pubsub tüketicilerinin sayısı.
orleans-streams-persistent-stream-pulling-agents ObservableGauge<T> Kalıcı akış çekme aracılarının sayısını temsil eden gözlemlenebilir bir ölçer.
orleans-streams-persistent-stream-messages-read Counter<T> Okunan kalıcı akış iletilerinin sayısı.
orleans-streams-persistent-stream-messages-sent Counter<T> Gönderilen kalıcı akış iletilerinin sayısı.
orleans-streams-persistent-stream-pubsub-cache-size ObservableGauge<T> Sürekli akış pubsub önbellek boyutunu temsil eden gözlemlenebilir bir ölçer.
orleans-streams-queue-initialization-failures Counter<T> Steam kuyruğu başlatma hatalarının sayısı.
orleans-streams-queue-initialization-duration Counter<T> Steam kuyruğu başlatma olaylarının sayısı.
orleans-streams-queue-initialization-exceptions Counter<T> Steam kuyruk başlatma istisnalarının sayısı.
orleans-streams-queue-read-failures Counter<T> Steam kuyruğunun okuma hatalarının sayısı.
orleans-streams-queue-read-duration Counter<T> Buhar kuyruğu okuma oluşumlarının sayısı.
orleans-streams-queue-read-exceptions Counter<T> Steam kuyruğu okuma hatası sayısı.
orleans-streams-queue-shutdown-failures Counter<T> Buhar kuyruğu kapatma hatalarının sayısı.
orleans-streams-queue-shutdown-duration Counter<T> Buhar kuyruğu kapatma oluşumlarının sayısı.
orleans-streams-queue-shutdown-exceptions Counter<T> Buhar kuyruğu kapatma özel durumlarının sayısı.
orleans-streams-queue-messages-received ObservableCounter<T> Alınan akış kuyruğu iletilerinin sayısını temsil eden gözlemlenebilir bir sayaç.
orleans-streams-queue-oldest-message-enqueue-age ObservableGauge<T> Sıradaki en eski iletinin yaşını temsil eden gözlemlenebilir bir ölçer.
orleans-streams-queue-newest-message-enqueue-age ObservableGauge<T> En yeni sıraya alınan mesajın yaşını temsil eden gözlemlenebilir bir gösterge.
orleans-streams-block-pool-total-memory ObservableCounter<T> Bayt cinsinden akış blok havuzu toplam belleğini temsil eden gözlemlenebilir bir sayaç.
orleans-streams-block-pool-available-memory ObservableCounter<T> Kullanılabilir akış bloğu havuzunu bayt cinsinden temsil eden gözlemlenebilir bir sayaç.
orleans-streams-block-pool-claimed-memory ObservableCounter<T> Bayt cinsinden bellek talep edilen akış bloğu havuzunu temsil eden gözlemlenebilir bir sayaç.
orleans-streams-block-pool-released-memory ObservableCounter<T> Akış bloğu havuzunu temsil eden gözlemlenebilir bir sayaç, belleği bayt cinsinden serbest bıraktı.
orleans-streams-block-pool-allocated-memory ObservableCounter<T> Bayt cinsinden tahsis edilen akış bloğu havuzunu temsil eden gözlemlenebilir bir sayaç.
orleans-streams-queue-cache-size ObservableCounter<T> Bayt cinsinden akış kuyruğu önbellek boyutunu temsil eden gözlemlenebilir bir sayaç.
orleans-streams-queue-cache-length ObservableCounter<T> Akış kuyruğu uzunluğunu temsil eden gözlemlenebilir bir sayaç.
orleans-streams-queue-cache-messages-added ObservableCounter<T> Eklenen akış kuyruğu iletilerini temsil eden gözlemlenebilir bir sayaç.
orleans-streams-queue-cache-messages-purged ObservableCounter<T> Akış kuyruğu iletilerinin temizlenmiş olduğunu gösteren gözlemlenebilir bir sayaç.
orleans-streams-queue-cache-memory-allocated ObservableCounter<T> Akış kuyruğu için ayrılan belleği temsil eden gözlemlenebilir bir sayaç.
orleans-streams-queue-cache-memory-released ObservableCounter<T> Yayımlanan akış kuyruğu belleğini temsil eden gözlemlenebilir bir sayaç.
orleans-streams-queue-cache-oldest-to-newest-duration ObservableGauge<T> En eskiden en yeni akış kuyruğu önbelleğine kadar olan süreyi temsil eden gözlemlenebilir bir ölçer.
orleans-streams-queue-cache-oldest-age ObservableGauge<T> Önbelleğe alınmış en eski iletinin yaşını temsil eden gözlemlenebilir bir ölçer.
orleans-streams-queue-cache-pressure ObservableGauge<T> Akış kuyruğu önbelleği üzerindeki baskıyı temsil eden gözlemlenebilir bir ölçer.
orleans-streams-queue-cache-under-pressure ObservableGauge<T> Akış kuyruğu önbelleğinin baskı altında olup olmadığını gösteren gözlemlenebilir bir ölçer.
orleans-streams-queue-cache-pressure-contribution-count ObservableCounter<T> Akış kuyruğu önbellek baskısı katkılarını temsil eden gözlemlenebilir bir sayaç.

İşlemler

Aşağıdaki tabloda, işlem katmanını izlemek için kullanılan işlem ölçümlerinin bir koleksiyonu gösterilmektedir Orleans .

Ölçüm adı Türü Açıklama
orleans-transactions-started ObservableCounter<T> Başlatılan işlemlerin sayısını temsil eden gözlemlenebilir bir sayaç.
orleans-transactions-successful ObservableCounter<T> Başarılı işlemlerin sayısını temsil eden gözlemlenebilir bir sayaç.
orleans-transactions-failed ObservableCounter<T> Başarısız işlemlerin sayısını temsil eden gözlemlenebilir bir sayaç.
orleans-transactions-throttled ObservableCounter<T> Kısıtlanmış işlemlerin sayısını temsil eden gözlemlenebilir bir sayaç.

Ölçüm verilerini dışa aktarma

ile Orleansçeşitli üçüncü taraf ölçüm sağlayıcıları kullanılabilir. OpenTelemetry Protocol (OTLP) kullanarak ölçümleri uygulamanızdan dışarı aktarın. Birçok gözlemlenebilirlik platformu OTLP verilerini doğrudan veya Prometheus, Grafana ve Azure İzleyici gibi bir OpenTelemetry Toplayıcısı aracılığıyla kullanır.

ile OrleansOTLP kullanarak ölçümleri dışarı aktarmak için OpenTelemetry.Exporter.OpenTelemetryProtocol NuGet paketini yükleyin ve aşağıdaki IServiceCollection uzantı yöntemini çağırın:

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

AddOtlpExporter yöntemi, OTLP ihracatçısının builder öğesine eklenmesini sağlar. Orleans, birçok Meter'e özel ölçüm için "Microsoft.Orleans" örnekler oluşturmak amacıyla, Counter<T> adlı bir Orleans kullanır. AddMeter metodunu kullanarak abone olunacak ölçümün adını belirtin, bu durumda "Microsoft.Orleans".

OTLP verme uç noktasını ve diğer seçenekleri gerektiği gibi yapılandırabilirsiniz. Örneğin:

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

Uyarı

Varsayılan OTLP dışarı aktarıcı yapılandırması gRPC (genellikle bağlantı noktası 4317) kullanır. Ölçümleri Prometheus'a aktarmak için, telemetriyi OpenTelemetry Collector aracılığıyla gönderin veya bunun yerine OTLP/HTTP ayarlarını yapılandırın.

Dağıtılmış izleme

Dağıtılmış izleme, dağıtılmış uygulamaları izlemeye ve sorun gidermeye yönelik bir dizi araç ve uygulamadır. Gözlemlenebilirliğin önemli bir bileşenidir ve uygulamanızın davranışını anlamak için kritik bir araçtır. Orleans OpenTelemetry ile dağıtılmış izlemeyi destekler.

Seçtiğiniz dağıtılmış izleme vericisinden bağımsız olarak şu komutu çağırın:

Veya EnableDistributedTracing yapılandırma seçeneğini true olarak ayarlayın.

GPS İzleyici örnek uygulamasınaOrleans geri dönüp OpenTelemetry Protocol (OTLP) kullanarak dağıtılmış izlemeleri dışarı aktarabilirsiniz. OTLP ve Orleansile OpenTelemetry kullanmak için OpenTelemetry.Exporter.OpenTelemetryProtocol NuGet paketini yükleyin ve IServiceCollection aşağıdaki uzantı yöntemini çağırın:

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");
        });
    });

OTLP ihracatçısı Jaeger, Zipkin, Grafana Tempo ve Azure Monitör gibi birçok gözlemlenebilirlik arka ucuyla da çalışır. İzlemeler Jaeger kullanıcı arabirimi gibi araçlarda görselleştirilebilir:

Orleans GPS İzleyici örnek uygulaması: Jaeger kullanıcı arabirimi izlemesi.

Daha fazla bilgi için bkz . Dağıtılmış izleme.

Orleans çalışma zamanı istatistiklerini ve ölçümlerini ITelemetryConsumer arabirimi aracılığıyla çıkarır. Uygulamanız, Orleans çalışma zamanının düzenli olarak yayımladığı istatistikleri ve ölçümleri almak üzere siloları ve istemcileri için bir veya daha fazla telemetri tüketicisi kaydedebilir. Bunlar, popüler telemetri analizi çözümlerinin tüketicisi veya başka bir hedef ve amaç için özel olanlar olabilir. Kod tabanında şu anda üç telemetri tüketicisi bulunmaktadır.

Bunlar ayrı NuGet paketleri olarak sunulur:

  • Microsoft.Orleans.OrleansTelemetryConsumers.AI: Azure Uygulaması Insights'a yayımlamak için.

  • Microsoft.Orleans.OrleansTelemetryConsumers.Counters: Windows performans sayaçlarına yayımlamak için. Çalışma Orleans zamanı bunların çoğunu sürekli olarak güncelleştirir. NuGet paketine dahil edilen Microsoft.Orleans.CounterControl aracı, gerekli performans sayacı kategorilerini kaydetmeye yardımcı olur. Yükseltilmiş ayrıcalıklarla çalıştırılmalıdır. Herhangi bir standart izleme aracını kullanarak performans sayaçlarını izleyin.

  • Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic: New Relic'e yayımlamak için.

Silonuzu ve istemcinizi telemetri tüketicilerini kullanacak şekilde yapılandırmak için silo yapılandırma kodu şöyle görünür:

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

İstemci yapılandırma kodu şöyle görünür:

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

Özel tanımlı TelemetryConfiguration'yi kullanmak için (bu TelemetryProcessors, TelemetrySinks vb. içerebilir) silo yapılandırma kodu şu şekilde görünür:

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

İstemci yapılandırma kodu şöyle görünür:

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

Ayrıca bakınız