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.
Penyusun API Data (DAB) mendukung OpenTelemetry untuk pelacakan dan metrik terdistribusi, memungkinkan Anda memantau dan mendiagnosis perilaku di seluruh REST, GraphQL, operasi database, dan middleware internal.
Prasyarat
- File konfigurasi DAB yang ada.
- Menjalankan pengumpul OpenTelemetry atau backend (misalnya, Azure Monitor atau Jaeger).
- CLI pembangun API Data. Menginstal CLI
Jalankan alat
Gunakan dab add-telemetry untuk menambahkan pengaturan OpenTelemetry ke konfigurasi Anda.
Pastikan Anda memiliki file konfigurasi. Jika Anda perlu membuatnya, jalankan:
dab init \ --database-type mssql \ --connection-string "<sql-connection-string>"Tambahkan pengaturan OpenTelemetry ke file konfigurasi Anda.
dab add-telemetry \ -c dab-config.json \ --otel-enabled true \ --otel-endpoint "http://localhost:4317" \ --otel-protocol "grpc" \ --otel-service-name "dab"Memulai DAB.
dab start
Lakukan pengujian pada backend telemetri Anda
Buka backend OpenTelemetry atau antarmuka pengguna kolektor Anda.
Pastikan bahwa tracing dan metrik diterima untuk panggilan REST, GraphQL, atau database.
Nota
Dasbor .NET Aspire adalah bagian ideal dari perulangan pengembang. Ini mencakup tampilan bawaan untuk pelacakan dan metrik OpenTelemetry.
Jejak penyusun API Data
DAB membuat "aktivitas" dari OpenTelemetry untuk:
- Permintaan HTTP masuk (titik akhir REST)
- Operasi GraphQL
- Kueri database (per entitas)
- Langkah-langkah middleware internal (misalnya, penanganan permintaan, pelacakan kesalahan)
- Eksekusi alat MCP (setiap panggilan alat bahasa manipulasi data (DML) dan pemanggilan alat kustom)
Nota
Fungsionalitas penyusun API Data yang dijelaskan di bagian ini tersedia di versi 2.0 dan yang lebih baru. Untuk informasi selengkapnya, lihat Apa yang baru dalam versi 2.0.
Setiap aktivitas mencakup tag terperinci (metadata), seperti:
-
http.method,http.url,http.querystring,status.code -
action.type(CRUD, operasi GraphQL) -
user.role,user-agent -
data-source.type,data-source.name -
api.type(REST atau GraphQL)
Kesalahan dan pengecualian juga ditelusuri dengan info terperinci.
Metrik API Pembangun Data
DAB memancarkan metrik OpenTelemetry seperti:
- Total Permintaan: Penghitung, diberi label menurut metode HTTP, status, endpoint, dan jenis API.
- Kesalahan: Penghitung, diberi label berdasarkan jenis kesalahan, metode HTTP, status, titik akhir, dan jenis API.
- Durasi Permintaan: Histogram (dalam milidetik), dilabeli oleh metode HTTP, status, titik akhir, dan jenis API.
- Permintaan Aktif: Penghitung naik/turun untuk permintaan bersamaan.
Metrik menggunakan .NET Meter API dan OpenTelemetry SDK.
Configuration
open-telemetry Tambahkan bagian di bawah runtime.telemetry dalam file konfigurasi Anda.
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": true,
"endpoint": "http://otel-collector:4317",
"service-name": "dab",
"exporter-protocol": "grpc"
}
}
}
}
Command-line
Konfigurasikan OpenTelemetry melalui dab add-telemetry.
--otel-enabled--otel-endpoint--otel-protocol--otel-service-name--otel-headers
Example
dab add-telemetry \
-c dab-config.json \
--otel-enabled true \
--otel-endpoint "http://localhost:4317" \
--otel-protocol "grpc" \
--otel-service-name "dab"
Konfigurasi yang dihasilkan
Nota
Opsi OpenTelemetry tidak tersedia di dab configure.
{
"runtime": {
"telemetry": {
"open-telemetry": {
"enabled": true,
"endpoint": "http://localhost:4317",
"service-name": "dab",
"exporter-protocol": "grpc"
}
}
}
}
Ekspor dan visualisasi
Telemetri diekspor melalui .NET OpenTelemetry SDK ke back end yang dikonfigurasi seperti Azure Monitor atau Jaeger. Pastikan back end Anda berjalan dan dapat dijangkau pada alamat yang ditentukan endpoint. Anda dapat menggunakan back end yang kompatibel dengan OpenTelemetry untuk visualisasi.
OpenTelemetry SDK mengontrol waktu ekspor. Ini mengekspor jejak ketika aktivitas selesai. Ini mengekspor metrik pada interval berkala yang dikonfigurasi oleh SDK. Jika Anda tidak mengatur interval, SDK menggunakan defaultnya.
Nota
Kontainer sementara yang dimatikan dengan cepat dapat keluar sebelum ekspor selesai. Izinkan jendela penghentian yang mulus dan menghindari penghentian agresif sehingga telemetri yang tertunda dapat dikirimkan.
Catatan implementasi
- Jejak dan metrik mencakup semua operasi REST, GraphQL, MCP, dan database
- Middleware dan pengendali kesalahan juga memancarkan telemetri
- Konteks disebarluaskan melalui permintaan