Menyerap metrik kustom untuk sumber daya Azure menggunakan REST API
Artikel ini memperlihatkan kepada Anda cara mengirim metrik kustom untuk sumber daya Azure ke penyimpanan metrik Azure Monitor melalui REST API. Saat metrik berada di Azure Monitor, Anda dapat melakukan semua hal dengan metrik standar yang Anda lakukan dengan metrik standar. Misalnya, Anda dapat membuat bagan dan pemberitahuan dan merutekan metrik ke alat eksternal lainnya.
Catatan
REST API hanya mengizinkan pengiriman metrik kustom untuk sumber daya Azure. Untuk mengirim metrik untuk sumber daya di lingkungan lain atau lokal, gunakan Application Insights.
Mengirim permintaan REST untuk menyerap metrik kustom
Saat Anda mengirim metrik kustom ke Azure Monitor, setiap poin data, atau nilai, yang dilaporkan pada metrik harus menyertakan informasi berikut.
- Token autentikasi
- Subjek
- Wilayah
- Stempel waktu
- Namespace Layanan
- Nama
- Kunci dimensi
- Nilai dimensi
- Nilai metrik
Autentikasi
Untuk mengirimkan metrik kustom ke Azure Monitor, entitas yang mengirimkan metrik memerlukan token Microsoft Entra yang valid di header Pembawa permintaan. Cara yang didukung untuk mendapatkan token pembawa yang valid meliputi:
Identitas terkelola untuk sumber daya Azure. Anda dapat menggunakan identitas terkelola untuk memberikan izin sumber daya untuk melakukan operasi tertentu. Contohnya adalah mengizinkan sumber daya untuk memancarkan metrik tentang metrik itu sendiri. Sumber daya, atau identitas terkelola, dapat diberikan izin Penerbit Metrik Pemantauan pada sumber daya lain. Dengan izin ini, identitas terkelola juga dapat memancarkan metrik untuk sumber daya lainnya.
Perwakilan layanan Microsoft Entra. Dalam skenario ini, aplikasi atau layanan Microsoft Entra, dapat diberi izin untuk memancarkan metrik tentang sumber daya Azure. Untuk mengautentikasi permintaan, Azure Monitor memvalidasi token aplikasi dengan menggunakan kunci publik Microsoft Entra. Peran Penerbit Metrik Pemantauan yang ada sudah memiliki izin ini. Peran tersedia di portal Azure.
Perwakilan layanan, bergantung pada sumber daya yang menghasilkan metrik kustom, dapat diberikan peran Penerbit Metrik Pemantauan pada cakupan yang diperlukan. Contohnya adalah langganan, grup sumber daya, atau sumber daya tertentu.
Tip
Saat Anda meminta token Microsoft Entra untuk memancarkan metrik kustom, pastikan audiens atau sumber daya yang diminta token adalah https://monitoring.azure.com/
. Pastikan untuk menyertakan akhiran garis miring.
Mendapatkan token otorisasi
Setelah membuat identitas terkelola atau perwakilan layanan dan izin Penerbit Metrik Pemantauan yang ditetapkan, Anda bisa mendapatkan token otorisasi.
Saat meminta token, tentukan resource: https://monitoring.azure.com
.
Dapatkan token autentikasi menggunakan salah satu metode berikut:
- CLI
- REST API
- SDK
Saat meminta token, Anda harus memberikan resource
parameter. Parameter resource
adalah URL sumber daya yang ingin Anda akses.
Sumber daya meliputi:
https://management.azure.com
https://api.loganalytics.io
https://monitoring.azure.com
Mendapatkan token menggunakan permintaan REST
Gunakan panggilan REST API berikut untuk mendapatkan token. Permintaan ini menggunakan ID klien dan rahasia klien untuk mengautentikasi permintaan. ID klien dan rahasia klien diperoleh saat Anda mendaftarkan aplikasi Anda dengan ID Microsoft Entra. Untuk informasi selengkapnya, lihat Mendaftarkan Aplikasi untuk meminta token otorisasi dan bekerja dengan API
curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource=https://monitoring.azure.com'
Isi respons muncul dalam format berikut:
{
"token_type": "Bearer",
"expires_in": "86399",
"ext_expires_in": "86399",
"expires_on": "1672826207",
"not_before": "1672739507",
"resource": "https://monitoring.azure.com",
"access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}
Simpan token akses dari respons untuk digunakan dalam permintaan HTTP berikut.
Subjek
Properti subjek ini mengambil ID sumber daya Azure di mana metrik kustom dilaporkan. Informasi ini dikodekan dalam URL panggilan API. Setiap API hanya dapat mengirimkan nilai metrik untuk satu sumber daya Azure.
Catatan
Anda tidak dapat memancarkan metrik kustom terhadap ID sumber daya dari grup sumber daya atau langganan.
Wilayah
Properti wilayah menangkap wilayah Azure tempat sumber daya yang Anda pancarkan metriknya disebarkan. Metrik harus dipancarkan ke titik akhir regional Azure Monitor yang sama dengan wilayah tempat sumber daya disebarkan. Misalnya, metrik kustom untuk VM yang disebarkan di US Barat harus dikirim ke titik akhir Azure Monitor regional WestUS. Informasi wilayah juga dikodekan dalam URL panggilan API.
Tanda Waktu
Setiap poin data yang dikirim ke Azure Monitor harus ditandai dengan tanda waktu. Tanda waktu ini mengambil tanggal dan waktu di mana nilai metrik diukur atau dikumpulkan. Azure Monitor menerima data metrik dengan tanda waktu sejauh 20 menit di masa lalu dan 5 menit di masa mendatang. Tanda waktu harus dalam format ISO 8601.
Ruang nama
Namespace adalah cara untuk mengategorikan atau mengelompokkan metrik yang serupa. Dengan menggunakan namespace, Anda dapat mencapai isolasi antara kelompok metrik yang mungkin mengumpulkan insight atau indikator performa yang berbeda. Misalnya, Anda dapat memiliki namespace yang disebut contosomemorymetrics yang melacak metrik penggunaan memori yang membuat profil aplikasi Anda. Namespace lain yang disebut contosoapptransaction dapat melacak semua metrik tentang transaksi pengguna di aplikasi Anda.
Nama
Properti nama adalah nama metrik yang dilaporkan. Biasanya, nama cukup deskriptif untuk membantu mengidentifikasi apa yang diukur. Contohnya adalah metrik yang mengukur jumlah byte memori yang digunakan pada VM tertentu. Nama mungkin memiliki nama metrik seperti Byte Memori Dalam Penggunaan.
Kunci dimensi
Dimensi adalah pasangan kunci/nilai yang membantu menjelaskan karakteristik lain tentang metrik yang sedang dikumpulkan. Dengan menggunakan karakteristik lain, Anda dapat mengumpulkan lebih banyak informasi tentang metrik, yang memungkinkan insight yang lebih dalam.
Misalnya, metrik Byte Memori Dalam Penggunaan mungkin memiliki kunci dimensi yang disebut Proses yang mengambil berapa banyak byte memori yang digunakan setiap proses pada VM. Dengan menggunakan kunci ini, Anda dapat memfilter metrik untuk melihat berapa banyak proses khusus memori yang digunakan atau untuk mengidentifikasi lima proses teratas berdasarkan penggunaan memori.
Dimensi bersifat opsional, dan tidak semua metrik memiliki dimensi. Metrik kustom dapat memiliki hingga 10 dimensi.
Nilai dimensi
Saat Anda melaporkan titik data metrik, untuk setiap kunci dimensi pada metrik yang dilaporkan, ada nilai dimensi yang sesuai. Misalnya, Anda mungkin ingin melaporkan memori yang digunakan ContosoApp di VM Anda:
- Nama metrik adalah Byte Memori dalam Penggunaan.
- Kunci dimensi adalah Proses.
- Nilai dimensi adalah ContosoApp.exe.
Saat memublikasikan nilai metrik, Anda hanya dapat menentukan satu nilai dimensi per kunci dimensi. Jika Anda mengumpulkan penggunaan memori yang sama untuk beberapa proses di VM, Anda dapat melaporkan beberapa nilai metrik untuk tanda waktu tersebut. Setiap nilai metrik akan menentukan nilai dimensi yang berbeda untuk kunci dimensi Proses.
Meskipun dimensi bersifat opsional, jika pos metrik menentukan kunci dimensi, nilai dimensi yang sesuai adalah wajib.
Nilai metrik
Azure Monitor menyimpan semua metrik pada interval granuralitas 1 menit. Selama menit tertentu, metrik mungkin perlu diambil sampelnya beberapa kali. Contohnya adalah pemanfaatan CPU. Atau metrik mungkin perlu diukur untuk banyak peristiwa terpisah, seperti latensi transaksi masuk.
Untuk membatasi jumlah nilai mentah yang harus Anda keluarkan dan bayar di Azure Monitor, agregat secara lokal dan keluarkan nilai agregat:
- Min: Nilai minimum yang diamati dari semua sampel dan pengukuran selama satu menit.
- Maks: Nilai pengamatan maksimum dari semua sampel dan pengukuran selama satu menit.
- Jumlah: Penjumlahan semua nilai yang diamati dari semua sampel dan pengukuran selama satu menit.
- Hitung: Jumlah sampel dan pengukuran yang dilakukan selama satu menit.
Catatan
Azure Monitor tidak mendukung penentuan Unit untuk metrik kustom.
Misalnya, jika ada empat transaksi kredensial masuk ke aplikasi Anda selama satu menit, latensi terukur yang dihasilkan untuk masing-masing mungkin:
Transaksi 1 | Transaksi 2 | Transaksi 3 | Transaksi 4 |
---|---|---|---|
7 mdtk | 4 mdtk | 13 mdtk | 16 mdtk |
Maka publikasi metrik yang dihasilkan ke Azure Monitor akan menjadi:
- Min: 4
- Maks: 16
- Jumlah: 40
- Hitung: 4
Jika aplikasi Anda tidak dapat melakukan pra-agregat secara lokal dan perlu memancarkan setiap sampel atau peristiwa diskrit segera setelah pengumpulan, Anda dapat memancarkan nilai ukuran mentah. Misalnya, setiap kali transaksi rincian masuk terjadi di aplikasi, Anda menerbitkan metrik ke Azure Monitor hanya dengan satu pengukuran. Jadi, untuk transaksi masuk yang memakan waktu 12 milidetik, publikasi metriknya akan menjadi:
- Minimal: 12
- Maks: 12
- Jumlah: 12
- Hitung: 1
Dengan proses ini, Anda dapat memancarkan beberapa nilai untuk kombinasi metrik/dimensi yang sama selama menit tertentu. Azure Monitor kemudian mengambil semua nilai mentah yang dipancarkan untuk menit tertentu dan menggabungkannya.
Publikasi metrik kustom sampel
Dalam contoh berikut, buat metrik kustom yang disebut Byte Memori di Gunakan di bawah Profil Memori namespace metrik untuk komputer virtual. Metrik memiliki satu dimensi yang disebut Proses. Untuk tanda waktu, nilai metrik dikeluarkan untuk dua proses.
Simpan JSON berikut dalam file yang disebut custommetric.json di komputer lokal Anda. Perbarui parameter waktu sehingga dalam 20 menit terakhir. Anda tidak dapat memasukkan metrik ke dalam toko yang berusia lebih dari 20 menit.
{
"time": "2024-01-07T11:25:20-7:00",
"data": {
"baseData": {
"metric": "Memory Bytes in Use",
"namespace": "Memory Profile",
"dimNames": [
"Process"
],
"series": [
{
"dimValues": [
"ContosoApp.exe"
],
"min": 10,
"max": 89,
"sum": 190,
"count": 4
},
{
"dimValues": [
"SalesApp.exe"
],
"min": 10,
"max": 23,
"sum": 86,
"count": 4
}
]
}
}
}
Kirim permintaan HTTP POST berikut dengan menggunakan variabel berikut:
location
: Wilayah penyebaran sumber daya yang Anda keluarkan metriknya.resourceId
: ID sumber daya sumber daya Azure yang Anda lacak metriknya.accessToken
: Token otorisasi yang diperoleh dari langkah Dapatkan token otorisasi.curl -X POST 'https://<location>.monitoring.azure.com/<resourceId>/metrics' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <accessToken>' \ -d @custommetric.json
Melihat metrik Anda
Masuk ke portal Azure.
Di menu di sebelah kiri, pilih Pantau.
Pada halaman Monitor, pilih Metrics.
Ubah periode agregasi menjadi Jam terakhir.
Di daftar dropdown Cakupan, pilih sumber daya yang Anda kirim metriknya.
Di daftar dropdown Namespace Metrik, pilih Profil Memori.
Di daftar dropdown Metrik, pilih Byte Memori dalam Penggunaan.
Pemecahan Masalah
Jika Anda menerima pesan kesalahan dengan beberapa bagian dari proses, pertimbangkan informasi pemecahan masalah berikut:
- Jika Anda tidak dapat mengeluarkan metrik terhadap langganan atau grup sumber daya, atau sumber daya, periksa apakah aplikasi atau perwakilan layanan Anda memiliki peran Penerbit Metrik Pemantauan yang ditetapkan dalam Kontrol akses (IAM).
- Periksa apakah jumlah nama dimensi cocok dengan jumlah nilai.
- Periksa apakah Anda memancarkan metrik ke titik akhir regional Azure Monitor yang benar. Misalnya, jika sumber daya Anda disebarkan di US Barat, Anda harus memancarkan metrik ke titik akhir regional US Barat.
- Periksa apakah tanda waktu dalam 20 menit terakhir.
- Periksa apakah tanda waktu dalam format ISO 8601.
- Periksa apakah nama metrik valid. Misalnya, tidak boleh berisi spasi.
Langkah berikutnya
Pelajari selengkapnya tentang metrik kustom.