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.
Gunakan Azure Monitor untuk mengumpulkan log, metrik, dan pemberitahuan di seluruh aplikasi JavaScript Anda dan layanan Azure yang bergantung padanya. Azure Monitor adalah layanan platform pusat yang mengumpulkan dan menyimpan telemetri Anda. Anda dapat melengkapi aplikasi Anda dengan Application Insights. Anda harus memantau layanan aplikasi yang dihosting, layanan Azure yang diintegrasikan aplikasi, dan kode sumber aplikasi itu sendiri.
Memahami log, metrik, dan pemberitahuan
Telemetri adalah data yang dikumpulkan dari aplikasi dan layanan Anda untuk memantau kesehatan, performa, dan penggunaannya. Dalam Azure, telemetri dikategorikan ke dalam log, metrik, dan pemberitahuan.
Azure menawarkan empat jenis telemetri:
| Jenis telemetri | Apa yang diberikannya kepada Anda | Tempat menemukannya untuk setiap layanan |
|---|---|---|
| Metode pengukuran | Numerik, data rangkaian waktu (CPU, memori, dll.) |
Metrik di portal atau az monitor metrics CLI |
| Notifikasi | Pemberitahuan proaktif saat ambang mencapai |
Pemberitahuan di portal atau az monitor metrics alert CLI |
| Catatan | Peristiwa dan diagnostik berbasis teks (web, aplikasi) | Log Layanan Aplikasi, Pemantauan Fungsi, Diagnostik Aplikasi Kontainer |
| Log kustom | Telemetri aplikasi Anda sendiri melalui App Insights | Tabel Log (Penelusuran) dari sumber daya Application Insights Anda |
Pilih telemetri yang tepat untuk pertanyaan Anda:
| Skenario | Gunakan log... | Gunakan metrik... | Gunakan pemberitahuan... |
|---|---|---|---|
| Apakah aplikasi web saya sudah aktif dan merespons? | Log server web App Service (Log) | Tidak tersedia | Tidak tersedia |
| Apakah fungsi saya kedaluwarsa atau gagal? | Log pemanggilan fungsi (Monitor) | Metrik waktu eksekusi fungsi | Peringatan pada "Kesalahan Fungsi >0" |
| Seberapa padat layanan saya dan apakah layanan tersebut dapat ditingkatkan skalanya? | Tidak tersedia | Throughput/CPU layanan dalam Metrik | Pemberitahuan skala otomatis pada CPU% > 70% |
| "Apa pengecualian yang dilemparkan oleh kode saya?" | Log Jejak Kustom di Application Insights | Tidak tersedia | Pemberitahuan tentang "ServerExceptions >0" |
| "Apakah saya telah melebihi batas transaksi atau kuota saya?" | Tidak tersedia | Metrik terkait kuota (Transaksi, Pembatasan laju) | Peringatan pada "ThrottlingCount >0" |
Pengoptimalan biaya
Anda dapat secara signifikan mengurangi biaya untuk Azure Monitor dengan memahami praktik terbaik untuk opsi konfigurasi dan peluang guna mengurangi jumlah data yang dikumpulkannya.
Mengaktifkan pengelogan dan metrik untuk semua sumber daya Azure
Setiap layanan di Azure memiliki kemampuan pengelogan dan metriknya sendiri. Aktifkan pengelogan pada setiap sumber daya Azure untuk memastikan Anda memiliki telemetri yang Anda butuhkan untuk memantau seluruh aplikasi end to end Anda.
Membuat sumber daya Azure Monitor
Anda dapat membuat sumber daya Azure Monitor untuk mengumpulkan log dan metrik dari sumber daya Azure Anda. Sumber daya ini biasanya merupakan ruang kerja Log Analytics, yang merupakan tempat log dan metrik disimpan.
Anda dapat membuat sumber daya ini dengan beberapa cara:
- portal Azure: Gunakan portal Azure untuk membuat ruang kerja Log Analytics dan mengonfigurasi pengaturan diagnostik untuk sumber daya Anda.
- Azure CLI: Gunakan Azure CLI untuk membuat ruang kerja Log Analytics dan mengonfigurasi pengaturan diagnostik untuk sumber daya Anda.
- PowerShell: Gunakan PowerShell untuk membuat ruang kerja Log Analytics dan mengonfigurasi pengaturan diagnostik untuk sumber daya Anda.
- Bicep: Gunakan templat Bicep untuk menentukan dan menyebarkan sumber daya Azure Monitor Anda secara deklaratif.
Membuat ruang kerja Log Analytics menggunakan Azure CLI
Gunakan Azure CLI untuk membuat ruang kerja Log Analytics, di mana log dan metrik disimpan. Contoh:
# Variables
resourceGroup="myResourceGroup"
location="eastus"
workspaceName="myWorkspace"
webAppName="myWebApp"
diagName="${webAppName}/appServiceLogging"
SUBSCRIPTION_ID=$(az account show --query id -o tsv)
# 1) Create a Log Analytics workspace
workspaceId=$(az monitor log-analytics workspace create \
--resource-group $resourceGroup \
--workspace-name $workspaceName \
--location $location \
--query id -o tsv)
# 2) Enable diagnostic settings on your App Service
az monitor diagnostic-settings create \
--name "$diagName" \
--resource "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$resourceGroup/providers/Microsoft.Web/sites/$webAppName" \
--workspace $workspaceId \
--logs '[{"category": "Administrative", "enabled": true},{"category":"AppServiceConsoleLogs","enabled":true},{"category":"AppServiceHTTPLogs","enabled":true}]' \
--metrics '[{"category":"AllMetrics","enabled":true}]'
Membuat ruang kerja Log Analytics menggunakan Bicep
Gunakan Bicep untuk menentukan dan menyebarkan sumber daya Azure Monitor Anda secara deklaratif. Contoh ini membuat ruang kerja Log Analytics dan mengonfigurasi pengaturan diagnostik untuk App Service.
Sertakan pencatatan, metrik, dan pemberitahuan dalam templat IaC Anda dengan referensi sumber daya Bicep diagnosticSettings. Contoh (Bicep):
param webAppName string
resource webApp 'Microsoft.Web/sites@2022-09-01' existing = {
name: webAppName
}
resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2022-10-01' = {
name: 'myWorkspace'
location: resourceGroup().location
}
resource diagSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
name: '${webApp.name}/appServiceLogging'
properties: {
workspaceId: logAnalytics.id
logs: [
{ category: 'AppServiceConsoleLogs'; enabled: true }
{ category: 'AppServiceHTTPLogs'; enabled: true }
]
metrics: [
{ category: 'AllMetrics'; enabled: true }
]
}
}
Membuat pemberitahuan untuk sumber daya Anda
Anda dapat menyiapkan pemberitahuan untuk metrik di portal Azure atau dengan menggunakan Azure CLI. Pemberitahuan dapat mencakup metrik tertentu, aliran komunikasi (seperti email), dan frekuensi.
Gunakan contoh berikut untuk membuat pemberitahuan metrik di portal atau secara terprogram:
- Azure CLI: penyiapan cepat melalui
az monitor metrics alert - Bicep: Definisi IaC deklaratif untuk
Microsoft.Insights/metricAlerts
Pemberitahuan dapat menentukan metrik target, saluran pemberitahuan (email, webhook), tingkat keparahan, frekuensi evaluasi, dan grup tindakan.
az monitor metrics alert create \
--name HighCpuAlert \
--resource-group MyResourceGroup \
--scopes /subscriptions/{sub}/resourceGroups/MyResourceGroup/providers/Microsoft.Web/sites/myApp \
--condition "avg CpuPercentage > 70" \
--description "Alert when CPU goes above 70%" \
--severity 2 \
--window-size 5m \
--evaluation-frequency 1m \
--action /subscriptions/{sub}/resourceGroups/MyResourceGroup/providers/microsoft.insights/actionGroups/MyActionGroup
resource cpuAlert 'Microsoft.Insights/metricAlerts@2018-03-01' = {
name: 'highCpuAlert'
location: resourceGroup().location
properties: {
description: 'Alert when CPU goes above 70%'
severity: 2
enabled: true
scopes: [
webApp.id
]
evaluationFrequency: 'PT1M'
windowSize: 'PT5M'
criteria: {
allOf: [
{
criterionType: 'StaticThresholdCriterion'
name: 'HighCpu'
metricName: 'CpuPercentage'
metricNamespace: 'Microsoft.Web/sites'
operator: 'GreaterThan'
threshold: 70
timeAggregation: 'Average'
}
]
}
autoMitigate: false
actions: [
{
actionGroupId: '/subscriptions/{sub}/resourceGroups/MyResourceGroup/providers/microsoft.insights/actionGroups/MyActionGroup'
}
]
}
}
Menampilkan data log
Untuk melihat data log di portal Azure, navigasikan ke ruang kerja Log Analytics Anda dan pilih Logs. Anda dapat menjalankan kueri Kusto Query Language (KQL) terhadap log.
Catatan Aliran
Gunakan tabel berikut untuk mempelajari selengkapnya tentang cara melakukan streaming log.
Azure MCP Server
Saat mengembangkan secara lokal, Anda dapat menggunakan Azure MCP Servermonitor alat untuk mengkueri log tanpa meninggalkan IDE Anda. Setelah Anda instal server, contoh perintah Copilot meliputi:
- Mencantumkan ruang kerja: "Perlihatkan saya semua ruang kerja Log Analytics di langganan saya."
- Temukan tabel: "Cantumkan semua tabel di ruang kerja saya 'security-logs'"
- Kueri kompleks: "Tampilkan tren penggunaan CPU untuk server web saya selama 24 jam terakhir"
Menambahkan pengelogan ke kode Anda
Untuk pengelogan aplikasi, Application Insights dapat menyediakan:
- Pengelogan standar di layanan Azure dan dalam kode sumber Anda, tergantung pada inisialisasi.
- Pengelogan kustom dari alur penyebaran Anda dan di kode sumber Anda.
Pengelogan konsol standar (stdout/stderr)
Azure aplikasi web dan Azure Functions secara otomatis menyediakan pengelogan kustom untuk stdout dan stderr, jika Anda menggunakan fungsi pengelogan yang benar:
- Aplikasi web menggunakan
console.log('your message here'). - Aplikasi fungsi menggunakan
context.log('your message here').
Menambahkan pencatatan log kustom Application Insights
Anda dapat menambahkan pengelogan kustom yang lebih kaya dengan menggunakan Wawasan Aplikasi di Azure Monitor. Application Insights menawarkan skenario server (Node.js) dan klien (browser):
- Tambahkan Application Insights SDK ke kode sumber Anda.
- Log dari Node.js melalui paket npm.
- Pastikan untuk mengonfigurasi SDK Node.js dengan
enableAutoCollectConsole: trueuntuk mengumpulkan log konsol kustom.
- Pastikan untuk mengonfigurasi SDK Node.js dengan
- Log dari kode klien Anda dengan menggunakan paket npm.
- Masuk dari kluster Kubernetes atau Azure mesin virtual.
Aktifkan log alur SDK (@Azure/logger)
Kontrol verbositas SDK dengan menggunakan AZURE_LOG_LEVEL variabel lingkungan atau @azure/logger paket npm:
import { setLogLevel } from "@azure/logger";
// Options: 'error', 'warning', 'info', 'verbose'
setLogLevel(process.env.AZURE_LOG_LEVEL || "info");
Konfigurasi SDK Application Insights Node.js
Mulailah Application Insights untuk Node.js SDK dengan penyampelan, pengumpulan dependensi, dan pengambilan log konsol:;
import appInsights from "applicationinsights";
appInsights
.setup(process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR_CONNECTION_STRING>")
.setAutoCollectConsole(true, true) // collect console.log
.setAutoCollectDependencies(true) // track outgoing requests
.setInternalLogging(false, true) // SDK internal logs
.start();
// Optional: add custom properties to all telemetry
appInsights.defaultClient.commonProperties = { serviceName: "my-service" };
Menambahkan korelasi dan pelacakan terdistribusi
Application Insights SDK secara otomatis menyuntikkan ID operasi dan korelasi ke dalam permintaan. Untuk menambahkan korelasi atau properti kustom:
appInsights.defaultClient.trackTrace({
message: "Custom trace",
properties: { userId: user.id }
});
Pelajari lebih lanjut: panduan pelacakan terdistribusi
Bersihkan telemetri dalam skrip pengembangan
Pastikan log dikirim sebelum proses keluar selama pengembangan lokal:
appInsights.defaultClient.flush({
callback: () => process.exit(0)
});
Penyiapan telemetri sisi klien
Untuk aplikasi klien, gunakan @microsoft/applicationinsights-web paket :
import { ApplicationInsights } from "@microsoft/applicationinsights-web";
const ai = new ApplicationInsights({ config: {
connectionString: "<YOUR_CONNECTION_STRING>",
enableAutoRouteTracking: true
}});
ai.loadAppInsights();
Konten terkait
- Gambaran umum Azure Data Explorer (Kusto)
- Aktifkan pembuatan log diagnostik untuk aplikasi di Azure App Service
- Pelajari cara bekerja dengan log platform Azure
- Alat pemantau Azure MCP Server