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.
Gunakan IConfiguration untuk memfilter instrumen untuk pendengar metrik kustom yang terintegrasi dengan injeksi dependensi (DI). Filter ini mengontrol instrumen mana yang dapat dilanggani pendengar, bukan bagaimana pendengar mengagregasikan atau mengekspor pengukuran.
listener metrik
Listener metrik menerima pengukuran dari instrumen, seperti penghitung dan histogram, yang dibuat oleh Meter. Kelas MeterListener ini menyediakan API tingkat rendah untuk menemukan instrumen dan berlangganan pengukurannya secara langsung. Tutorial pengumpulan metrik menunjukkan cara menggunakan API ini.
Antarmuka IMetricsListener memungkinkan listener kustom berintegrasi dengan DI dan filter berbasis konfigurasi. Infrastruktur metrik membuat MeterListener secara internal untuk setiap implementasi IMetricsListener yang terdaftar. Ini menerapkan aturan yang dikonfigurasi sebelum memanggil InstrumentPublished untuk menyediakan mekanisme bagi implementasi. Jika listener menerima instrumen, infrastruktur memberikan pengukuran ke callback yang disediakan implementasi.
Untuk mendaftarkan listener kustom, gunakan AddListener. Konfigurasi dalam artikel ini berlaku untuk listener terdaftar ini, bukan untuk instans MeterListener yang dikonfigurasi secara langsung oleh kode Anda atau kolektor.
Memuat konfigurasi
Generic Host applications yang menggunakan pengaturan penyusun default secara otomatis memanggil AddMetrics dan memuat bagian Metrics dari IConfiguration. Dalam aplikasi DI yang tidak dihosting, panggil AddMetrics dan AddConfiguration(IMetricsBuilder, IConfiguration) secara eksplisit untuk mengikat bagian yang sama:
services.AddMetrics(metrics =>
metrics.AddConfiguration(configuration.GetSection("Metrics")));
Untuk menggunakan metode ekstensi ini, impor namespace Microsoft.Extensions.DependencyInjection dan Microsoft.Extensions.Diagnostics.Metrics.
Important
Konfigurasi Metrics hanya memfilter instrumen untuk implementasi terdaftar IMetricsListener . Ini tidak mendaftarkan listener atau mengaktifkan subscription-nya, membuat metrik, mengagregasi pengukuran, mengekspor data, atau secara otomatis mengonfigurasi OpenTelemetry, Prometheus, dotnet-counters, atau pengumpul lainnya.
Pilih meter dan instrumen
Gunakan bagian berikut untuk memilih meter mana yang dikenai aturan ini:
| Bagian | Berlaku pada |
|---|---|
EnabledMetrics |
Baik meter global maupun lokal. |
EnabledGlobalMetrics |
Meter tanpa cakupan, seperti meter yang dibuat langsung dengan Meter. |
EnabledLocalMetrics |
Meter dicakup dalam kontainer layanan IMeterFactory. |
Bagian EnabledMetrics, EnabledGlobalMetrics, atau EnabledLocalMetrics langsung di bawah Metrics berlaku untuk setiap pendengar terdaftar. Untuk menargetkan satu listener, sarangkan bagian di bawah nilai listener Name, seperti Metrics:MyListener:EnabledMetrics. Nama pendengar dan instrumen memerlukan kecocokan yang tepat tanpa membedakan huruf besar/kecil.
Di bagian mana pun dari bagian-bagian ini, entri meteran Boolean memungkinkan atau menonaktifkan setiap instrumen yang nama meternya cocok. Untuk mengatur aturan tingkat instrumen, gunakan objek dengan nama instrumen sebagai kunci. Entri khusus Default memasok fallback. Entri Boolean Default di tingkat meteran berlaku untuk meteran yang tidak tercocokkan oleh aturan lain. Dalam objek meter, Default berlaku untuk instrumen lain yang tidak tercocokkan. listener tidak menerima instrument jika tidak ada aturan yang cocok dengannya.
Contoh berikut appsettings.json mengaktifkan instrumen dari meteran yang namanya dimulai dengan Contoso.Web, kecuali untuk instrumen bernama request-duration:
{
"Metrics": {
"EnabledMetrics": {
"Contoso.Web": {
"Default": true,
"request-duration": false
}
}
}
}
Pencocokan aturan dan mengatasi konflik
Nama meter menggunakan pencocokan awalan yang tidak peka huruf besar/kecil. Nama meter dapat berisi paling banyak satu * wildcard untuk mencocokkan awalan dan akhiran. Aturan yang lebih spesifik lebih diutamakan dalam urutan ini: aturan khusus listener, pola nama meter yang lebih panjang, aturan khusus instrumen, dan aturan khusus cakupan. Jika aturan yang sama spesifiknya saling bertentangan, aturan terakhir yang dikonfigurasi akan menang.