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.

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 dengan menggunakan permintaan berikut:

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, pra-agregat lokal dan memancarkan 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

  1. Masuk ke portal Azure.

  2. Di menu di sebelah kiri, pilih Pantau.

  3. Pada halaman Monitor, pilih Metrics.

    Screenshot that shows how to select Metrics in the Azure portal.

  4. Ubah periode agregasi menjadi Jam terakhir.

  5. Di daftar dropdown Cakupan, pilih sumber daya yang Anda kirim metriknya.

  6. Di daftar dropdown Namespace Metrik, pilih Profil Memori.

  7. 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.