Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pengamatan adalah salah satu aspek terpenting dari sistem terdistribusi. Ini adalah kemampuan untuk memahami status sistem pada waktu tertentu. Anda dapat mencapai ini dengan berbagai cara, termasuk pengelogan, metrik, dan pelacakan terdistribusi.
Penebangan kayu
Orleans menggunakan Microsoft.Extensions.Logging untuk semua log silo dan klien. Anda dapat menggunakan penyedia pengelogan apa pun yang kompatibel dengan Microsoft.Extensions.Logging. Kode aplikasi Anda bergantung pada injeksi dependensi untuk mendapatkan instans ILogger<TCategoryName> dan menggunakannya untuk merekam pesan. Untuk informasi selengkapnya, lihat Pencatatan di .NET.
Metode pengukuran
Metrik adalah pengukuran numerik yang dilaporkan dari waktu ke waktu. Anda paling sering menggunakannya untuk memantau kesehatan aplikasi dan menghasilkan pemberitahuan. Untuk informasi selengkapnya, lihat Metrik di .NET. Orleans menggunakan API System.Diagnostics.Metrics untuk mengumpulkan metrik. Metrik ini diekspos ke proyek OpenTelemetry , yang mengekspornya ke berbagai sistem pemantauan.
Untuk memantau aplikasi Anda tanpa membuat perubahan kode apa pun, gunakan dotnet counters alat diagnostik .NET. Untuk memantau penghitung OrleansActivitySource untuk suatu <ProcessName> tertentu, gunakan perintah dotnet counters monitor seperti yang ditunjukkan.
dotnet counters monitor -n <ProcessName> --counters Microsoft.Orleans
Bayangkan Anda menjalankan Orleans aplikasi sampel GPS Tracker dan memantaunya di terminal terpisah dengan dotnet counters monitor perintah . Output berikut ini umum:
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
Untuk informasi selengkapnya, lihat Menyelidiki penghitung kinerja (penghitung dotnet).
Orleans Meter
Orleans menggunakan API System.Diagnostics.Metrics untuk mengumpulkan metrik. Orleans mengategorikan setiap meter ke dalam masalah yang berpusat pada domain, seperti jaringan, olahpesan, gateway, dll. Subbagian berikut menjelaskan meter yang Orleans gunakan.
Jaringan
Tabel berikut menunjukkan kumpulan meter jaringan yang digunakan untuk memantau Orleans lapisan jaringan.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-networking-sockets-closed |
Counter<T> | Jumlah soket yang telah ditutup. |
orleans-networking-sockets-opened |
Counter<T> | Jumlah soket yang telah dibuka. |
Pesan
Tabel berikut ini memperlihatkan kumpulan meter pesan yang digunakan untuk memantau Orleans lapisan pesan.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-messaging-sent-messages-size |
Histogram<T> | Histogram yang mewakili ukuran pesan dalam byte yang telah dikirim. |
orleans-messaging-received-messages-size |
Histogram<T> | Histogram yang mewakili ukuran pesan yang telah diterima dalam byte. |
orleans-messaging-sent-header-size |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili jumlah byte header yang dikirim. |
orleans-messaging-received-header-size |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili jumlah byte header yang diterima. |
orleans-messaging-sent-failed |
Counter<T> | Jumlah pesan yang gagal dikirim. |
orleans-messaging-sent-dropped |
Counter<T> | Jumlah pesan terkirim yang gagal dikirim. |
orleans-messaging-processing-dispatcher-received |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili jumlah pesan yang diterima oleh dispatcher. |
orleans-messaging-processing-dispatcher-processed |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili jumlah pesan yang diproses oleh dispatcher. |
orleans-messaging-processing-dispatcher-forwarded |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili jumlah pesan yang diteruskan oleh dispatcher. |
orleans-messaging-processing-ima-received |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili jumlah pesan masuk yang diterima. |
orleans-messaging-processing-ima-enqueued |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili jumlah pesan masuk yang diantrekan. |
orleans-messaging-processing-activation-data |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili semua data aktivasi pemrosesan. |
orleans-messaging-pings-sent |
Counter<T> | Jumlah ping yang dikirim. |
orleans-messaging-pings-received |
Counter<T> | Jumlah ping yang diterima. |
orleans-messaging-pings-reply-received |
Counter<T> | Jumlah balasan ping yang diterima. |
orleans-messaging-pings-reply-missed |
Counter<T> | Jumlah balasan ping yang hilang. |
orleans-messaging-expired" |
Counter<T> | Jumlah pesan yang telah kedaluwarsa. |
orleans-messaging-rejected |
Counter<T> | Jumlah pesan yang telah ditolak. |
orleans-messaging-rerouted |
Counter<T> | Jumlah pesan yang telah dialihkan. |
orleans-messaging-sent-local |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili jumlah pesan lokal yang dikirim. |
Gerbang Jaringan
Tabel berikut memperlihatkan kumpulan meter gateway yang digunakan untuk memantau lapisan gateway Orleans.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-gateway-connected-clients |
UpDownCounter<T> | Penghitung naik/turun yang mewakili jumlah klien yang sedang terhubung. |
orleans-gateway-sent |
Counter<T> | Jumlah pesan gateway yang dikirim. |
orleans-gateway-received |
Counter<T> | Jumlah pesan gateway yang diterima. |
orleans-gateway-load-shedding |
Counter<T> | Jumlah pesan gateway (load shedding) yang telah ditolak karena gateway kelebihan beban. |
Waktu Operasi
Tabel berikut menunjukkan kumpulan pengukur runtime yang digunakan untuk memantau lapisan runtime Orleans.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-scheduler-long-running-turns |
Counter<T> | Jumlah giliran jangka panjang dalam penjadwal. |
orleans-runtime-total-physical-memory |
ObservableCounter<T> | Penghitung teramati yang mewakili total jumlah memori (dalam MB) dari Orleans runtime. |
orleans-runtime-available-memory |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili memori yang tersedia (dalam MB) untuk Orleans runtime. |
Katalog
Tabel berikut menunjukkan kumpulan meter katalog yang digunakan untuk memantau Orleans lapisan katalog.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-catalog-activations |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili jumlah aktivasi katalog. |
orleans-catalog-activation-working-set |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili jumlah aktivasi dalam set kerja. |
orleans-catalog-activation-created |
Counter<T> | Jumlah aktivasi yang dibuat. |
orleans-catalog-activation-destroyed |
Counter<T> | Jumlah aktivasi yang dihancurkan. |
orleans-catalog-activation-failed-to-activate |
Counter<T> | Jumlah aktivasi yang gagal diaktifkan. |
orleans-catalog-activation-collections |
Counter<T> | Jumlah pengumpulan aktivasi tidak aktif. |
orleans-catalog-activation-shutdown |
Counter<T> | Jumlah aktivasi pemadaman. |
orleans-catalog-activation-non-existent |
Counter<T> | Jumlah aktivasi yang tidak ada. |
orleans-catalog-activation-concurrent-registration-attempts |
Counter<T> | Jumlah upaya pendaftaran aktivasi bersamaan. |
Direktori
Tabel berikut menunjukkan kumpulan meter direktori yang digunakan untuk memantau Orleans lapisan direktori.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-directory-lookups-local-issued |
Counter<T> | Jumlah pemeriksaan lokal yang dilakukan. |
orleans-directory-lookups-local-successes |
Counter<T> | Jumlah pencarian lokal yang berhasil. |
orleans-directory-lookups-full-issued |
Counter<T> | Jumlah pencarian direktori lengkap yang dilakukan. |
orleans-directory-lookups-remote-sent |
Counter<T> | Jumlah pencarian direktori jarak jauh yang dilakukan. |
orleans-directory-lookups-remote-received |
Counter<T> | Jumlah pencarian direktori jarak jauh yang diterima. |
orleans-directory-lookups-local-directory-issued |
Counter<T> | Jumlah pencarian direktori lokal yang dilakukan. |
orleans-directory-lookups-local-directory-successes |
Counter<T> | Jumlah total pencarian direktori lokal yang berhasil. |
orleans-directory-lookups-cache-issued |
Counter<T> | Penghitungan pencarian cache telah dikeluarkan. |
orleans-directory-lookups-cache-successes |
Counter<T> | Jumlah pencarian yang berhasil di-cache. |
orleans-directory-validations-cache-received |
Counter<T> | Jumlah validasi cache direktori yang diterima. |
orleans-directory-partition-size |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili ukuran partisi direktori. |
orleans-directory-cache-size |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili ukuran cache direktori. |
orleans-directory-ring-size |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili ukuran cincin direktori. |
orleans-directory-ring-local-portion-distance |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili rentang cincin yang dimiliki oleh partisi direktori lokal. |
orleans-directory-ring-local-portion-percentage |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili rentang cincin yang dimiliki oleh direktori lokal, diwakili sebagai persentase dari rentang total. |
orleans-directory-ring-local-portion-average-percentage |
ObservableGauge<T> | Pengukur yang dapat diamati ini mewakili persentase rata-rata rentang cincin direktori yang dimiliki oleh setiap silo, memberikan gambaran tentang seberapa seimbangnya kepemilikan direktori. |
orleans-directory-registrations-single-act-issued |
Counter<T> | Jumlah pendaftaran aktivasi tunggal direktori yang dikeluarkan. |
orleans-directory-registrations-single-act-local |
Counter<T> | Jumlah registrasi aktivasi tunggal direktori yang dikelola oleh partisi direktori lokal. |
orleans-directory-registrations-single-act-remote-sent |
Counter<T> | Jumlah pendaftaran aktivasi tunggal direktori yang dikirim ke partisi direktori jarak jauh. |
orleans-directory-registrations-single-act-remote-received |
Counter<T> | Jumlah pendaftaran aktivasi tunggal direktori yang diterima dari host jarak jauh. |
orleans-directory-unregistrations-issued |
Counter<T> | Jumlah penghapusan direktori yang diterbitkan. |
orleans-directory-unregistrations-local |
Counter<T> | Jumlah deregistrasi direktori yang ditangani oleh partisi direktori lokal. |
orleans-directory-unregistrations-remote-sent |
Counter<T> | Jumlah deregistrasi direktori yang dikirim ke partisi direktori jarak jauh. |
orleans-directory-unregistrations-remote-received |
Counter<T> | Jumlah pendaftaran ulang direktori yang diterima dari host jarak jauh. |
orleans-directory-unregistrations-many-issued |
Counter<T> | Jumlah deregistrasi multi-aktivasi direktori yang diterbitkan. |
orleans-directory-unregistrations-many-remote-sent |
Counter<T> | Jumlah pembatalan deregistrasi multi-aktivasi direktori yang dikirim ke partisi direktori jarak jauh. |
orleans-directory-unregistrations-many-remote-received |
Counter<T> | Jumlah penghitungan pengaktifan ganda pada direktori yang dihentikan dan diterima dari host jarak jauh. |
Cincin yang konsisten
Tabel berikut menunjukkan kumpulan meter cincin yang digunakan untuk memantau lapisan cincin yang Orleans konsisten.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-consistent-ring-size |
ObservableGauge<T> | Alat ukur yang dapat diamati yang mewakili ukuran cincin yang konsisten. |
orleans-consistent-ring-range-percentage-local |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili persentase lokal lingkaran yang konsisten. |
orleans-consistent-ring-range-percentage-average |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili persentase rata-rata cincin yang konsisten. |
Pemantau
Tabel berikut menunjukkan sekumpulan meter pengawas yang digunakan untuk memantau lapisan pengawas Orleans.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-watchdog-health-checks |
Counter<T> | Jumlah pemeriksaan kesehatan pengawas. |
orleans-watchdog-health-checks-failed |
Counter<T> | Jumlah pemeriksaan kesehatan pengawas yang gagal. |
Klien
Tabel berikut menunjukkan kumpulan meter klien yang digunakan untuk memantau Orleans lapisan klien.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-client-connected-gateways |
ObservableGauge<T> | Alat ukur yang dapat diamati yang mewakili jumlah klien gateway yang terhubung. |
Lain-lain
Tabel berikut menunjukkan kumpulan meter lain-lain yang digunakan untuk memantau berbagai lapisan.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-grains |
Counter<T> | Hitungan yang menunjukkan jumlah biji-bijian. |
orleans-system-targets |
Counter<T> | Hitungan yang menunjukkan jumlah target sistem. |
Permintaan aplikasi
Tabel berikut menunjukkan kumpulan meter permintaan aplikasi yang digunakan untuk memantau Orleans lapisan permintaan aplikasi.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-app-requests-latency |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili latensi permintaan aplikasi. |
orleans-app-requests-timedout |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili permintaan aplikasi yang telah kehabisan waktu. |
Pengingat
Tabel berikut menunjukkan kumpulan meter pengingat yang digunakan untuk memantau Orleans lapisan pengingat.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-reminders-tardiness |
Histogram<T> | Histogram yang mewakili jumlah detik keterlambatan pengingat. |
orleans-reminders-active |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili jumlah pengingat aktif. |
orleans-reminders-ticks-delivered |
Counter<T> | Hitungan yang menunjukkan jumlah tanda centang pengingat yang telah dikirimkan. |
Storage
Tabel berikut menunjukkan kumpulan meter penyimpanan yang digunakan untuk memantau Orleans lapisan penyimpanan.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-storage-read-errors |
Counter<T> | Hitungan yang menunjukkan jumlah kesalahan baca penyimpanan. |
orleans-storage-write-errors |
Counter<T> | Jumlah yang menunjukkan jumlah kesalahan penulisan penyimpanan. |
orleans-storage-clear-errors |
Counter<T> | Sebuah hitungan yang mewakili jumlah kesalahan dalam penghapusan penyimpanan. |
orleans-storage-read-latency |
Histogram<T> | Histogram yang mewakili latensi baca penyimpanan dalam milidetik. |
orleans-storage-write-latency |
Histogram<T> | Histogram yang mewakili latensi tulis penyimpanan dalam milidetik. |
orleans-storage-clear-latency |
Histogram<T> | Histogram yang mewakili latensi penyimpanan yang jelas dalam milidetik. |
Sungai
Tabel berikut menunjukkan kumpulan pengukur aliran yang digunakan untuk memantau Orleans lapisan aliran.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-streams-pubsub-producers-added |
Counter<T> | Jumlah produser pubsub streaming ditambahkan. |
orleans-streams-pubsub-producers-removed |
Counter<T> | Jumlah produsen pubsub streaming yang telah dihapus. |
orleans-streams-pubsub-producers |
Counter<T> | Jumlah produser pubsub streaming. |
orleans-streams-pubsub-consumers-added |
Counter<T> | Jumlah konsumen pubsub streaming ditambahkan. |
orleans-streams-pubsub-consumers-removed |
Counter<T> | Jumlah konsumen pubsub streaming dihapus. |
orleans-streams-pubsub-consumers |
Counter<T> | Jumlah konsumen pubsub streaming. |
orleans-streams-persistent-stream-pulling-agents |
ObservableGauge<T> | Alat ukur yang dapat dilihat mewakili jumlah agen penarik aliran yang terus-menerus. |
orleans-streams-persistent-stream-messages-read |
Counter<T> | Jumlah pesan aliran persisten yang dibaca. |
orleans-streams-persistent-stream-messages-sent |
Counter<T> | Jumlah pesan aliran persisten yang dikirim. |
orleans-streams-persistent-stream-pubsub-cache-size |
ObservableGauge<T> | Alat ukur yang dapat diamati yang mewakili ukuran cache pubsub aliran persisten. |
orleans-streams-queue-initialization-failures |
Counter<T> | Jumlah kegagalan inisialisasi antrean uap. |
orleans-streams-queue-initialization-duration |
Counter<T> | Jumlah kemunculan inisialisasi antrean Steam. |
orleans-streams-queue-initialization-exceptions |
Counter<T> | Jumlah pengecualian inisialisasi antrian Steam. |
orleans-streams-queue-read-failures |
Counter<T> | Jumlah kegagalan baca antrean Steam. |
orleans-streams-queue-read-duration |
Counter<T> | Jumlah pembacaan antrean Steam. |
orleans-streams-queue-read-exceptions |
Counter<T> | Jumlah pengecualian pembacaan dalam antrean Steam. |
orleans-streams-queue-shutdown-failures |
Counter<T> | Jumlah kegagalan penutupan antrian Steam. |
orleans-streams-queue-shutdown-duration |
Counter<T> | Jumlah kejadian penonaktifan antrean Steam. |
orleans-streams-queue-shutdown-exceptions |
Counter<T> | Jumlah pengecualian matikan antrean uap. |
orleans-streams-queue-messages-received |
ObservableCounter<T> | Penghitung yang dapat diamati yang menunjukkan jumlah pesan antrean aliran yang diterima. |
orleans-streams-queue-oldest-message-enqueue-age |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili usia pesan antrean tertua. |
orleans-streams-queue-newest-message-enqueue-age |
ObservableGauge<T> | Pengukur yang menunjukkan usia pesan terbaru yang diantrekan. |
orleans-streams-block-pool-total-memory |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili total memori kumpulan blok aliran dalam byte. |
orleans-streams-block-pool-available-memory |
ObservableCounter<T> | Penghitung yang dapat diamati yang menunjukkan memori yang tersedia dalam byte untuk kumpulan blok aliran. |
orleans-streams-block-pool-claimed-memory |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili kumpulan blok aliran yang diklaim memori dalam byte. |
orleans-streams-block-pool-released-memory |
ObservableCounter<T> | Penghitung yang dapat diamati yang menunjukkan memori yang dilepaskan dari kumpulan blok aliran dalam byte. |
orleans-streams-block-pool-allocated-memory |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili kumpulan blok aliran yang dialokasikan memori dalam byte. |
orleans-streams-queue-cache-size |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili ukuran cache aliran antrean dalam byte. |
orleans-streams-queue-cache-length |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili panjang antrian aliran data. |
orleans-streams-queue-cache-messages-added |
ObservableCounter<T> | Penghitung yang dapat diamati mewakili jumlah pesan yang ditambahkan ke antrean aliran. |
orleans-streams-queue-cache-messages-purged |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili pesan antrian aliran yang dihapus. |
orleans-streams-queue-cache-memory-allocated |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili memori antrean aliran yang dialokasikan. |
orleans-streams-queue-cache-memory-released |
ObservableCounter<T> | Penghitung yang dapat diamati yang mewakili memori antrean aliran yang dirilis. |
orleans-streams-queue-cache-oldest-to-newest-duration |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili durasi dari cache antrean aliran terlama ke yang terbaru. |
orleans-streams-queue-cache-oldest-age |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili usia pesan cache tertua. |
orleans-streams-queue-cache-pressure |
ObservableGauge<T> | Pengukur yang dapat diamati yang mewakili tekanan pada cache antrean aliran data. |
orleans-streams-queue-cache-under-pressure |
ObservableGauge<T> | Alat pengukur yang dapat diamati yang mewakili apakah cache antrean aliran data berada di bawah tekanan. |
orleans-streams-queue-cache-pressure-contribution-count |
ObservableCounter<T> | Penghitung yang dapat diamati yang menunjukkan kontribusi tekanan pada cache antrean aliran. |
Transaksi
Tabel berikut menunjukkan kumpulan meter transaksi yang digunakan untuk memantau Orleans lapisan transaksi.
| Nama meter | Tipe | Deskripsi |
|---|---|---|
orleans-transactions-started |
ObservableCounter<T> | Penghitung yang dapat diamati yang menunjukkan jumlah transaksi yang dimulai. |
orleans-transactions-successful |
ObservableCounter<T> | Penghitung yang dapat diamati yang menunjukkan jumlah transaksi yang berhasil. |
orleans-transactions-failed |
ObservableCounter<T> | Penghitung yang dapat diamati yang menunjukkan jumlah transaksi yang gagal. |
orleans-transactions-throttled |
ObservableCounter<T> | Penghitung teramati yang menunjukkan jumlah transaksi yang dibatasi. |
Mengekspor metrik
Berbagai penyedia metrik pihak ketiga tersedia untuk digunakan dengan Orleans. Ekspor metrik dari aplikasi Anda menggunakan Protokol OpenTelemetry (OTLP). Banyak platform pengamatan menggunakan data OTLP secara langsung atau melalui OpenTelemetry Collector, termasuk Prometheus, Grafana, dan Azure Monitor.
Untuk mengekspor metrik menggunakan OTLP dengan Orleans, instal paket NuGet OpenTelemetry.Exporter.OpenTelemetryProtocol dan panggil metode ekstensi berikut IServiceCollection :
builder.Services.AddOpenTelemetry()
.WithMetrics(metrics =>
{
metrics
.AddOtlpExporter()
.AddMeter("Microsoft.Orleans");
});
Metode AddOtlpExporter memastikan bahwa pengekspor OTLP ditambahkan ke builder.
Orleans menggunakan Meter yang bernama "Microsoft.Orleans" untuk membuat instans Counter<T> untuk banyak metrik yang Orleans-spesifik.
AddMeter Gunakan metode untuk menentukan nama meteran untuk berlangganan, dalam hal ini, "Microsoft.Orleans".
Anda dapat mengonfigurasi titik akhir pengekspor OTLP dan opsi lain sesuai kebutuhan. Contohnya:
builder.Services.AddOpenTelemetry()
.WithMetrics(metrics =>
{
metrics
.AddOtlpExporter(options =>
{
options.Endpoint = new Uri("http://localhost:4317");
})
.AddMeter("Microsoft.Orleans");
});
Nota
Konfigurasi pengekspor OTLP default menggunakan gRPC (biasanya port 4317). Untuk mengekspor metrik ke Prometheus, kirim telemetri melalui Pengumpul OpenTelemetry atau konfigurasikan pengaturan OTLP/HTTP sebagai gantinya.
Penelusuran Terdistribusi
Pelacakan terdistribusi adalah serangkaian alat dan praktik untuk memantau dan memecahkan masalah aplikasi terdistribusi. Ini adalah komponen utama pengamatan dan alat penting untuk memahami perilaku aplikasi Anda. Orleans mendukung pelacakan terdistribusi dengan OpenTelemetry.
Terlepas dari pengekspor pelacakan terdistribusi yang Anda pilih, panggil:
- AddActivityPropagation(ISiloBuilder): yang memungkinkan pelacakan terdistribusi untuk silo.
- AddActivityPropagation(IClientBuilder): yang memungkinkan pelacakan terdistribusi untuk klien.
Atau atur EnableDistributedTracing opsi konfigurasi ke true.
Merujuk kembali ke Orleans aplikasi sampel Pelacak GPS, Anda dapat mengekspor jejak terdistribusi menggunakan Protokol OpenTelemetry (OTLP). Untuk menggunakan OpenTelemetry dengan OTLP dan Orleans, instal paket NuGet OpenTelemetry.Exporter.OpenTelemetryProtocol dan panggil metode ekstensi berikut IServiceCollection di 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");
});
});
Pengekspor OTLP bekerja dengan banyak backend pengamatan termasuk Jaeger, Zipkin, Grafana Tempo, dan Azure Monitor. Jejak dapat divisualisasikan dalam alat seperti Jaeger UI:
Untuk informasi selengkapnya, lihat Pelacakan terdistribusi.
Orleans mengeluarkan statistik runtime dan metriknya melalui ITelemetryConsumer antarmuka. Aplikasi Anda dapat mendaftarkan satu atau lebih konsumen telemetri untuk silo dan klien mereka agar menerima statistik dan metrik yang diterbitkan oleh runtime Orleans secara berkala. Ini dapat menjadi pengguna untuk solusi analitik telemetri populer atau yang kustom untuk berbagai tujuan dan destinasi lainnya. Tiga konsumen telemetri saat ini sudah termasuk dalam kode Orleans dasar.
Mereka dirilis sebagai paket NuGet terpisah:
Microsoft.Orleans.OrleansTelemetryConsumers.AI: Untuk penerbitan ke Azure Application Insights.Microsoft.Orleans.OrleansTelemetryConsumers.Counters: Mengirimkan ke penghitung kinerja Windows. Orleans Runtime terus memperbarui banyak di antaranya. Alat CounterControl.exe , yang disertakan dalamMicrosoft.Orleans.CounterControlpaket NuGet, membantu mendaftarkan kategori penghitung kinerja yang diperlukan. Ini harus berjalan dengan hak istimewa yang ditingkatkan. Pantau penghitung kinerja menggunakan alat pemantauan standar apa pun.Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic: Untuk penerbitan ke New Relic.
Untuk mengonfigurasi silo dan klien Anda untuk menggunakan konsumen telemetri, kode konfigurasi silo akan tampil seperti berikut:
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
});
Kode konfigurasi klien terlihat seperti ini:
var clientBuilder = new ClientBuilder();
clientBuilder.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
Untuk menggunakan TelemetryConfiguration yang ditentukan khusus (yang mungkin memiliki TelemetryProcessors, TelemetrySinks, dll.), kode konfigurasi silo terlihat seperti ini:
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);
});
Kode konfigurasi klien terlihat seperti ini:
var clientBuilder = new ClientBuilder();
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
clientBuilder.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);