Melalui halaman pemantauan Metrik, kita boleh mengetahui status berjalan dan pelbagai penunjuk sumber semasa (seperti Redis). Bagaimana jika kita perlu memuat turun penunjuk secara setempat atau menjana data JSON dan mengimportnya ke platform pemantauan pihak ketiga? Bolehkah Azure mengeksport pelbagai data penunjuk melalui kod Python atau skrip Powershell?
Ya! Arahan PowerShell boleh menggunakan Get-AzMetric atau arahan senarai metrik monitor az untuk mendapatkan nilai Metrik sumber.
Get-AzMetric: Dapatkan nilai metrik sumber https://docs.microsoft.com/en-us/powershell /module /az.monitor/get-azmetric?view=azps-5.4.0&viewFallbackFrom=azps-5.2.0
senarai metrik az monitor: Senaraikan metrik nilai untuk sumber https://docs.microsoft.com/en-us/cli/azure/monitor/metrics?view=azure-cli-latest#az_monitor_metrics_list
Menggunakan kod Python, anda boleh menggunakan API REST Metrik untuk melaksanakan
Metrik – Senarai: Menyenaraikan nilai metrik untuk sumber . https://docs .microsoft.com/en-us/rest/api/monitor/metrics/list
Daftarkan aplikasi dalam AAD untuk mendapatkan Token Akses untuk mengakses Redis Metrics dalam kod Python: (Gunakan Program ini didaftarkan ke platform identiti Microsoft: https://docs.azure.cn/zh-cn/active-directory/develop/quickstart-register-app)
Nota: Anda mesti log masuk ke Azure terlebih dahulu untuk menggunakan Powershell. Gunakan arahan Connect-AzAccount -Environment AzureChinaCloud atau az cloud set –nama AzureChinaCloud dan log masuk az.
Untuk menggunakan kod Python, anda perlu mendapatkan Token untuk mengakses Redis Metrics terlebih dahulu. Untuk mendapatkan Token, anda boleh mendaftarkan aplikasi dalam Azure AD, dan kemudian memberi aplikasi kebenaran pembaca dalam kawalan akses Redis untuk membaca data Metris.
Log masuk ke platform Azure, masukkan halaman AAD, klik Pendaftaran apl: https://portal.azure.cn/?l=en.en-us#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
Klik butang "Pendaftaran Baharu", masukkan nama aplikasi, biarkan nilai lain sebagai lalai, klik Simpan
Selepas penciptaan berjaya, masukkan halaman aplikasi , import ke halaman "Sijil & rahsia", buat Rahsia Pelanggan yang anda perlu gunakan dan salinnya Langkah ketiga memerlukan penggunaan
untuk menyalinnya pada halaman aplikasi ID Penyewa, ID Aplikasi perlu digunakan dalam langkah ketiga kod
Proses operasi khusus ditunjukkan dalam animasi berikut:
Dalam Akses kawalan (IAM) halaman Redis, cari melalui nama aplikasi dalam langkah 1 dan berikan kebenaran Pembaca Pemantauan
Nota: Jika kebenaran tidak diberikan, ralat serupa akan dilaporkan dalam kod:
Kandungan Respons: b'{"error ":{"code":"AuthorizationFailed","message":"Pelanggan 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ' dengan id objek 'xxxxxxxx-xxxx-xxxx-xxxx-36166b5f7276' tidak mempunyai kebenaran untuk melakukan tindakan 'microsoft.insights/metrics/read' melalui skop '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxx -rg/providers/Microsoft.Cache/Redis/xxxx/providers/microsoft.insights' atau skop tidak sah jika akses telah diberikan baru-baru ini, sila muat semula kelayakan anda."}}' |
Terdapat dua bahagian utama dalam kod: satu adalah untuk mendapatkan Token Akses, dan satu lagi adalah untuk mendapatkan Data Metrik
Kandungan yang diserlahkan perlu digantikan dengan maklumat sumber yang sepadan dan maklumat yang disediakan dalam langkah pertama
Selepas memperoleh Token Akses Dalam kandungan Badan, grant_type ialah nilai tetap, iaitu client_credentials. Nilai sumber ialah titik akhir pengurusan Azure di China: https://management.chinacloudapi.cn
import requestsimport json##Part 1: Get Access Tokenaadurl="https://login.chinacloudapi.cn/<your aad tenant id>/oauth2/token"aadbody={'grant_type':'client_credentials','client_id':'your aad client id','client_secret':'your aad client secret','resource':'https://management.chinacloudapi.cn'} rtoken= requests.post(aadurl, data=aadbody)##print(rtoken)objtoken = json.loads(rtoken.text)##print(obj['access_token'])##Part 2: Get the Metrics Value by Tokenheaders = {'content-type': "application/json", 'Authorization': 'Bearer '+objtoken['access_token'] } url= "https://management.chinacloudapi.cn/subscriptions/<subscriptions>/resourceGroups/<resourceGroups>/providers/Microsoft.Cache/Redis/<your redis name>/providers/microsoft.insights/metrics?api-version=2018-01-01&metricnames=expiredkeys,usedmemory"r = requests.get(url, headers=headers)print('Status Code: ' + str(r))print('Response Content: ' + str(r.content))
Kesan operasi adalah seperti berikut :
Log masuk ke azure
Sediakan az arahan senarai metrik pantau
az cloud set --name AzureChinaCloud az login az monitor metrics list --resource /subscriptions/<your subscriptions>/resourceGroups/<resourceGroups>/providers/Microsoft.Cache/Redis/<your redis name> --metric usedmemory --aggregation Maximum --interval PT1M
Kesan pelaksanaan adalah seperti berikut:
Atas ialah kandungan terperinci Cara menggunakan kod Python untuk mendapatkan nilai penunjuk pemantauan Azure Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!