Cara mengintegrasikan API Management Azure dengan Application Insights Azure
BERLAKU UNTUK: Semua tingkatAN API Management
Anda dapat dengan mudah mengintegrasikan Azure Application Insights dengan Azure API Management. Azure Application Insights adalah layanan yang dapat diperluas untuk pengembang web yang membangun dan mengelola aplikasi di berbagai platform. Dalam panduan ini, Anda akan:
- Telusuri integrasi Application Insights ke API Management.
- Pelajari strategi untuk mengurangi dampak performa pada instans layanan API Management Anda.
Prasyarat
Anda memerlukan instans API Management Azure. Buat instans terlebih dahulu.
Untuk menggunakan Application Insights, buat instans layanan Application Insights. Untuk membuat instans menggunakan portal Microsoft Azure, lihat Sumber daya Application Insights berbasis ruang kerja.
Catatan
Sumber daya Application Insights dapat berada di langganan yang berbeda atau bahkan penyewa yang berbeda dengan sumber daya API Management.
Jika Anda berencana untuk mengonfigurasi identitas terkelola untuk digunakan API Management dengan Application Insights, Anda perlu menyelesaikan langkah-langkah berikut:
Aktifkan identitas terkelola yang ditetapkan sistem atau pengguna untuk API Management di instans API Management Anda.
- Jika Anda mengaktifkan identitas terkelola yang ditetapkan pengguna, catat ID Klien identitas.
Tetapkan identitas peran Penerbit Metrik Pemantauan, yang terlingkup ke sumber daya Application Insights. Untuk menetapkan peran, gunakan portal Azure atau alat Azure lainnya.
Gambaran umum skenario
Berikut ini adalah langkah-langkah tingkat tinggi untuk skenario ini.
Pertama, Anda membuat koneksi antara Application Insights dan API Management
Anda dapat membuat koneksi antara Application Insights dan API Management Anda menggunakan portal Azure, REST API, atau alat Azure terkait. API Management mengonfigurasi sumber daya pencatat untuk koneksi.
Catatan
Jika sumber daya Application Insights Anda berada di penyewa yang berbeda, maka Anda harus membuat pencatat menggunakan REST API.
Penting
Saat ini, di portal, API Management hanya mendukung koneksi ke Application Insights menggunakan kunci instrumentasi Application Insights. Untuk menggunakan string koneksi Application Insights atau identitas terkelola API Management, gunakan templat REST API, Bicep, atau ARM untuk membuat pencatat. Pelajari selengkapnya tentang string koneksi Application Insights.
Kedua, Anda mengaktifkan pengelogan Application Insights untuk API atau API Anda.
Dalam artikel ini, Anda mengaktifkan pengelogan Application Insights untuk API Anda menggunakan portal Azure. API Management mengonfigurasi sumber daya diagnostik untuk API.
Membuat koneksi menggunakan portal Azure
Ikuti langkah-langkah ini untuk menggunakan portal Azure untuk membuat koneksi antara Application Insights dan API Management.
Navigasikan ke instans layanan Azure API Management Anda di portal Azure.
Pilih Application Insights dari menu di sebelah kiri.
Pilih + Tambah.
Pilih instans Application Insights yang Anda buat sebelumnya dan berikan deskripsi singkat.
Untuk mengaktifkan pemantauan ketersediaan instans API Management di Application Insights, pilih kotak centang Tambahkan pemantauan.
- Pengaturan ini secara rutin memvalidasi apakah titik akhir gateway API Management merespons.
- Hasil muncul di panel Ketersediaan instans Application Insights.
Pilih Buat.
Periksa apakah pencatat Application Insights baru sekarang muncul dalam daftar.
Catatan
Di balik layar, entitas pencatat dibuat di instans API Management Anda, yang berisi kunci instrumentasi instans Application Insights.
Tip
Jika Anda perlu memperbarui kunci instrumentasi yang dikonfigurasi di pencatat Application Insights, pilih baris pencatat dalam daftar (bukan nama pencatat). Masukkan kunci instrumentasi, dan pilih Simpan.
Membuat koneksi menggunakan rest API, Bicep, atau templat ARM
Ikuti langkah-langkah ini untuk menggunakan templat REST API, Bicep, atau ARM untuk membuat koneksi antara Application Insights dan API Management. Anda dapat mengonfigurasi pencatat yang menggunakan string koneksi, identitas terkelola yang ditetapkan sistem, atau identitas terkelola yang ditetapkan pengguna.
Pencatat dengan kredensial string koneksi
String koneksi Application Insights muncul di bagian Gambaran Umum sumber daya Application Insights Anda.
Gunakan API Management REST API dengan isi permintaan berikut.
{
"properties": {
"loggerType": "applicationInsights",
"description": "adding a new logger with connection string",
"credentials": {
"connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;..."
}
}
}
Pencatat dengan kredensial identitas terkelola yang ditetapkan sistem
Lihat prasyarat untuk menggunakan identitas terkelola API Management.
Gunakan API Management REST API dengan isi permintaan berikut.
{
"properties": {
"loggerType": "applicationInsights",
"description": "adding a new logger with system-assigned managed identity",
"credentials": {
"connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;...",
"identityClientId":"SystemAssigned"
}
}
}
Pencatat dengan kredensial identitas terkelola yang ditetapkan pengguna
Lihat prasyarat untuk menggunakan identitas terkelola API Management.
Gunakan API Management REST API dengan isi permintaan berikut.
{
"properties": {
"loggerType": "applicationInsights",
"description": "adding a new logger with user-assigned managed identity",
"credentials": {
"connectionString":"InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://xxxx.applicationinsights.azure.com/;...",
"identityClientId":"<ClientID>"
}
}
}
Aktifkan pencatatan Application Insights untuk API Anda
Gunakan langkah-langkah berikut untuk mengaktifkan pengelogan Application Insights untuk API. Anda juga dapat mengaktifkan pengelogan Application Insights untuk semua API.
Navigasikan ke instans layanan Azure API Management Anda di portal Azure.
Pilih API dari menu di sebelah kiri.
Klik pada API Anda, dalam hal ini Demo Conference API. Jika dikonfigurasi, pilih versi.
Tip
Untuk mengaktifkan pengelogan untuk semua API, pilih Semua API.
Buka tab Pengaturan dari bilah atas.
Gulir ke bawah ke bagian Log Diagnostik.
Centang kotak Aktifkan.
Pilih pencatat Anda yang terlampir di menu tarik-turun Tujuan.
Masukkan 100 sebagai Pengambilan Sampel (%) dan pilih kotak centang Selalu catat kesalahan.
Biarkan pengaturan lainnya apa adanya. Untuk detail tentang pengaturan, lihat Referensi pengaturan log diagnostik.
Peringatan
Mengesampingkan Jumlah byte payload default ke nilai log 0 dapat secara signifikan menurunkan performa API Anda.
Pilih Simpan.
Di belakang layar, entitas Diagnostik bernama
applicationinsights
dibuat pada tingkat API.
Catatan
Permintaan berhasil setelah API Management mengirimkan seluruh respons ke klien.
Pencatat untuk satu API atau semua API
Anda dapat menentukan pencatat pada tingkat yang berbeda:
- Pencatat API tunggal
- Pencatat untuk semua API
Menentukan keduanya:
- Secara default, pencatat API tunggal (tingkat yang lebih terperinci) mengambil alih satu untuk semua API.
- Jika pencatat yang dikonfigurasi di dua tingkat berbeda, dan Anda memerlukan kedua pencatat untuk menerima telemetri (multiplexing), silakan hubungi Dukungan Microsoft. Harap dicatat bahwa multiplexing tidak didukung jika Anda menggunakan pencatat yang sama (tujuan Application Insights) di tingkat "Semua API" dan tingkat API tunggal. Agar multipleks berfungsi dengan benar, Anda harus mengonfigurasi pencatat yang berbeda di "Semua API" dan tingkat API individual dan meminta bantuan dari dukungan Microsoft untuk mengaktifkan multipleks untuk layanan Anda.
Data apa yang ditambahkan ke Application Insights
Application Insights menerima:
Item telemetri | Deskripsi |
---|---|
Permintaan | Untuk setiap permintaan masuk:
|
Dependensi | Untuk setiap permintaan yang diteruskan ke layanan backend:
|
Pengecualian | Untuk setiap permintaan yang gagal:
|
Jejak | Jika Anda mengonfigurasi kebijakan jejak. Pengaturan severity di kebijakan trace harus sama dengan atau lebih besar dari pengaturan verbosity di pengelogan Application Insights. |
Catatan
Lihat batas Application Insights untuk informasi tentang ukuran maksimum dan jumlah metrik dan peristiwa per contoh Application Insights.
Mengeluarkan metrik kustom
Anda dapat memancarkan metrik kustom ke Application Insights dari instans API Management Anda. API Management memancarkan metrik kustom menggunakan kebijakan emit-metric .
Catatan
Metrik kustom adalah fitur pratinjau dari Azure Monitor dan tunduk pada batasan.
Untuk memancarkan metrik kustom, lakukan langkah-langkah konfigurasi berikut.
Aktifkan Metrik kustom (Pratinjau) dengan dimensi kustom di instans Application Insights Anda.
- Navigasikan ke instans Application Insights Anda di portal.
- Di menu sebelah kiri, pilih Penggunaan dan perkiraan biaya.
- Pilih Metrik kustom (Pratinjau)>Dengan dimensi.
- Pilih OK.
"metrics": true
Tambahkan properti keapplicationInsights
entitas diagnostik yang dikonfigurasi dalam API Management. Saat ini Anda harus menambahkan properti ini menggunakan API Management Diagnostic - Create atau Update REST API. Contohnya:PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ApiManagement/service/{APIManagementServiceName}/diagnostics/applicationinsights { [...] { "properties": { "loggerId": "/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.ApiManagement/service/{APIManagementServiceName}/loggers/{ApplicationInsightsLoggerName}", "metrics": true [...] } }
Pastikan bahwa pencatat Application Insights dikonfigurasi pada cakupan yang ingin Anda keluarkan metrik kustom (baik semua API, atau satu API). Untuk informasi selengkapnya, lihat Mengaktifkan pengelogan Application Insights untuk API Anda, sebelumnya di artikel ini.
Konfigurasikan
emit-metric
kebijakan pada cakupan tempat pengelogan Application Insights dikonfigurasi (baik semua API, atau satu API) dan diaktifkan untuk metrik kustom. Untuk detail kebijakan, lihatemit-metric
referensi kebijakan.
Batas metrik kustom
Azure Monitor memberlakukan batas penggunaan untuk metrik kustom yang dapat memengaruhi kemampuan Anda untuk memancarkan metrik dari API Management. Misalnya, Azure Monitor saat ini menetapkan batas 10 kunci dimensi per metrik, dan batas 50.000 total rangkaian waktu aktif per wilayah dalam langganan (dalam periode 12 jam).
Batas ini memiliki implikasi berikut untuk mengonfigurasi metrik kustom di API Management:
Anda dapat mengonfigurasi maksimum 10 dimensi kustom per
emit-metric
kebijakan.Jumlah rangkaian waktu aktif yang dihasilkan oleh
emit-metric
kebijakan dalam periode 12 jam adalah produk dari jumlah nilai unik dari setiap dimensi yang dikonfigurasi selama periode tersebut. Misalnya, jika tiga dimensi kustom dikonfigurasi dalam kebijakan, dan setiap dimensi memiliki 10 nilai yang mungkin dalam periode tersebut,emit-metric
kebijakan akan berkontribusi 1.000 (10 x 10 x 10) rangkaian waktu aktif.Jika Anda mengonfigurasi
emit-metric
kebijakan dalam beberapa instans API Management yang berada di wilayah yang sama dalam langganan, semua instans dapat berkontribusi pada batas rangkaian waktu aktif regional.
Implikasi kinerja dan pengambilan sampel log
Peringatan
Mencatat semua peristiwa bisa memiliki implikasi kinerja yang serius, bergantung pada tingkat permintaan yang masuk.
Berdasarkan tes muatan internal, mengaktifkan fitur pencatatan menyebabkan penurunan throughput 40% -50% ketika tingkat permintaan melebihi 1.000 permintaan per detik. Application Insights dirancang untuk menilai performa aplikasi menggunakan analisis statistik. Ini bukan:
- Dimaksudkan untuk menjadi sistem audit.
- Cocok untuk mencatat setiap permintaan individu untuk API volume tinggi.
Anda dapat memanipulasi jumlah permintaan yang dicatat dengan menyesuaikan pengaturan Pengambilan Sampel. Nilai 100 % berarti semua permintaan dicatat, sedangkan 0 % mencerminkan tidak ada pengelogan.
Pengambilan Sampel membantu mengurangi volume telemetri, secara efektif mencegah degradasi performa yang signifikan sambil tetap membawa manfaat pengelogan.
Untuk meningkatkan masalah performa, lewati:
- Header permintaan dan respons.
- Pengelogan isi.
Video
Pemecahan Masalah
Mengatasi masalah aliran data telemetri dari API Management ke Application Insights:
- Selidiki apakah sumber daya Azure Monitor Private Link Scope (AMPLS) tertaut ada dalam VNet tempat sumber daya API Management terhubung. Sumber daya AMPLS memiliki cakupan global di seluruh langganan dan bertanggung jawab untuk mengelola kueri dan penyerapan data untuk semua sumber daya Azure Monitor. Ada kemungkinan bahwa AMPLS telah dikonfigurasi dengan mode akses Privat-Saja khusus untuk penyerapan data. Dalam kasus tersebut, sertakan sumber daya Application Insights dan sumber daya Analitik Log terkait di AMPLS. Setelah penambahan ini dibuat, data API Management akan berhasil diserap ke dalam sumber daya Application Insights, menyelesaikan masalah transmisi data telemetri.
Langkah berikutnya
- Pelajari lebih lanjut tentang Azure Application Insights.
- Pertimbangkan untuk mencatat dengan Azure Event Hubs.
- Pelajari tentang memvisualisasikan data dari Application Insights menggunakan Azure Managed Grafana