Application Insights 與 Log Analytics 整合,並將遙測數據傳送至常見的 Log Analytics 工作區。 此設定可提供對 Log Analytics 功能的完整存取權,將記錄整合在單一位置,並允許統一的 Azure 角色型存取控制,因此不需要跨應用程式/工作區查詢。
增強的功能包括:
本文說明如何建立及設定Application Insights資源。 除了 Application Insights 資源本身,您還可以新增各種設定,例如設定 每日 上限和 定價方案。 您也可以建立 可用性測試、設定 計量警示,以及使用 Azure Resource Manager 將程式自動化。
備註
工作區型 Application Insights 資源的資料內嵌和保留會透過資料所在的 Log Analytics 工作區來計費。 若要深入瞭解計費,請參閱 Azure 監視器記錄定價詳細數據。
先決條件
- 有效的 Azure 訂用帳戶。
- 建立資源所需的許可權。
其他需求
若要存取 Application Insights Azure CLI 命令,您必須先執行:
az extension add -n application-insights
如果你沒有執行 az extension add 指令,就會看到顯示如下的錯誤訊息:az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'。
您可以透過 Azure CLI、Azure PowerShell 和 Azure 入口網站來部署 Bicep 範本。 檢查各個標籤頁以了解額外要求。
您可以透過 Azure CLI、Azure PowerShell 和 Azure 入口網站來部署 ARM 範本。 檢查各個標籤頁以了解額外要求。
建立 Application Insights 資源
備註
如果您在資源建立期間未連線到現有的Log Analytics工作區,系統會自動建立新的Log Analytics資源與Application Insights 資源。
當你建立或更新一個基於工作空間的 Application Insights 資源,並將其連結到不同訂閱中的 Log Analytics 工作區時,執行該操作的身份必須擁有目標工作空間Microsoft.OperationalInsights/workspaces/sharedKeys/action的權限。 即使兩個訂閱都在同一個 Microsoft Entra 租戶中,這項要求依然適用。 若身份沒有此權限,操作可能會因錯誤而失敗 403 (Forbidden) 。 授與在目標工作區上包括此動作權限的最低權限角色,或使用與 Application Insights 資源位於同一訂用帳戶中的工作區。
- 登入 Azure 入口網站。
- 選擇 "建立資源"。
- 開啟 [監視與診斷] 類別,然後選取 [Application Insights]。
- 輸入所有相關信息,然後 檢閱 + 建立 Application Insights 資源。
建立資源之後,您可以在 [Application Insights 概 觀] 窗格中找到對應的工作區資訊。
選取藍色連結文字,移至相關聯的 Log Analytics 工作區,您可以在其中利用新的整合工作區查詢環境。
備註
我們仍會為您的 Application Insights 傳統資源查詢、活頁簿和記錄型警示提供完整的回溯相容性。 若要查詢或檢視 以工作區為基礎的新數據表結構或架構,您必須先移至 Log Analytics 工作區。 選取 [Application Insights] 窗格中的 [記錄 (分析)],可讓您存取傳統 Application Insights 查詢體驗。
以下Azure CLI範例使用 az monitor app-insights component create 指令。
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
azureRegion="<AzureRegion>"
workspaceName="<WorkspaceName>"
# Get the subscription ID from the current Azure CLI context
subscriptionId=$(az account show --query id --output tsv)
# Build the full resource ID for the Log Analytics workspace
workspaceResourceId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/$workspaceName"
# Create a workspace-based Application Insights resource
az monitor app-insights component create \
--app "$resourceName" \
--location "$azureRegion" \
--resource-group "$resourceGroupName" \
--kind web \
--application-type web \
--workspace "$workspaceResourceId"
備註
Azure CLI指令使用目前 CLI 上下文中的Azure Resource Manager端點,因此 management.azure.com 不需要在命令語法中指定。
以下Azure PowerShell範例使用 New-AzApplicationInsights cmdlet。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$azureRegion = "<AzureRegion>"
$workspaceName = "<WorkspaceName>"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Build the full resource ID for the Log Analytics workspace
$workspaceResourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/$workspaceName"
# Define the parameters for the Application Insights resource
$newAzApplicationInsightsParams = @{
ResourceGroupName = $resourceGroupName
Name = $resourceName
Location = $azureRegion
Kind = "web"
ApplicationType = "web"
WorkspaceResourceId = $workspaceResourceId
}
# Create a workspace-based Application Insights resource
New-AzApplicationInsights @newAzApplicationInsightsParams
備註
Azure PowerShell 指令匣會使用目前 Az 上下文中的Azure Resource Manager端點,因此 management.azure.com 不需要在指令本語法中指定。
以下 REST 範例使用元件 - 建立或更新 REST API 操作。
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/components/{ResourceName}?api-version=2020-02-02
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"kind": "web",
"location": "<AzureRegion>",
"properties": {
"Application_Type": "web",
"WorkspaceResourceId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<WorkspaceName>"
}
}
下列 Bicep 範例使用 Microsoft.Insights/components 資源類型。
param subscriptionId string = '<SubscriptionId>'
param resourceGroupName string = '<ResourceGroupName>'
param resourceName string = '<ResourceName>'
param azureRegion string = '<AzureRegion>'
param workspaceName string = '<WorkspaceName>'
var workspaceResourceId = '/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/${workspaceName}'
resource applicationInsightsComponent 'Microsoft.Insights/components@2020-02-02' = {
name: resourceName
location: azureRegion
kind: 'web'
properties: {
Application_Type: 'web'
WorkspaceResourceId: workspaceResourceId
}
}
以下 ARM(JSON) 範例使用 Microsoft。洞察/元件資源類型。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"defaultValue": "<SubscriptionId>"
},
"resourceGroupName": {
"type": "string",
"defaultValue": "<ResourceGroupName>"
},
"resourceName": {
"type": "string",
"defaultValue": "<ResourceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
}
},
"variables": {
"workspaceResourceId": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.OperationalInsights/workspaces/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('workspaceName'))]"
},
"resources": [
{
"type": "Microsoft.Insights/components",
"apiVersion": "2020-02-02",
"name": "[parameters('resourceName')]",
"location": "[parameters('azureRegion')]",
"kind": "web",
"properties": {
"Application_Type": "web",
"WorkspaceResourceId": "[variables('workspaceResourceId')]"
}
}
]
}
建立 Application Insights 資源之後,您可以設定監視。
取得連接字串
連接字串會識別您想要與遙測數據建立關聯的資源。 您也可以將其用來修改您資源將用作遙測目的地的端點。 您必須複製連接字串,並將其新增至應用程式的程式碼或新增至環境變數。
若要取得 Application Insights 資源的連接字串:
- 在 Azure 入口網站中開啟 Application Insights 資源。
- 在 [基本資訊] 區段中的 [概觀] 窗格中,尋找 [連接字串]。
- 如果您將滑鼠停留在連接字串上方,則會出現一個圖示,可讓您將它複製到剪貼簿。
以下Azure CLI範例使用了 az monitor app-insights component show 指令。
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
# Retrieve the Application Insights component
az monitor app-insights component show \
--resource-group "$resourceGroupName" \
--app "$resourceName"
在 JSON 回應中尋找 connectionString 欄位。
以下Azure PowerShell範例使用 Get-AzApplicationInsights cmdlet。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
# Define parameters for Get-AzApplicationInsights
$getAzApplicationInsightsParams = @{
ResourceGroupName = $resourceGroupName
Name = $resourceName
}
# Retrieve the Application Insights component
Get-AzApplicationInsights @getAzApplicationInsightsParams
在輸出中,尋找 ConnectionString 屬性。
以下 REST 範例使用 Components - Get REST API 操作。
GET https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/components/{ResourceName}?api-version=2020-02-02
Authorization: Bearer {AccessToken}
在 JSON 回應中尋找 properties.connectionString 欄位。
使用 OpenTelemetry 的應用程式監視
使用 OpenTelemetry 監控應用程式時,安裝適當的 Azure 監視器 OpenTelemetry 發行版,並將 連接字串 指向你新建立的資源。
關於如何使用 OpenTelemetry 設定應用程式監控的資訊,請參閱以下語言專屬文件:
自動檢測
針對 Azure Functions 和 Azure App 服務 等監視服務,您可以先建立 Application Insights 資源,然後在啟用監視時指向它。 或者,您可以在啟用程序期間建立新的 Application Insights 資源。
修改相關聯的工作區
建立 Application Insights 資源之後,您可以修改相關聯的 Log Analytics 工作區。
這很重要
REST 呼叫、ARM 範本與 Bicep 範本皆使用建立或更新(PUT)語意。 當你用這些方法更新 Application Insights 元件時,請包含你想保留的必要屬性。 未包含的屬性可能會被重置或移除。
在您的 Application Insights 資源中,選取 屬性>變更工作區>Log Analytics 工作區。
以下Azure CLI範例使用 az monitor app-insights component update 指令。
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
workspaceName="<WorkspaceName>"
# Get the subscription ID from the current Azure CLI context
subscriptionId=$(az account show --query id --output tsv)
# Build the full resource ID for the Log Analytics workspace
workspaceResourceId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/$workspaceName"
# Update a workspace-based Application Insights resource
az monitor app-insights component update \
--resource-group "$resourceGroupName" \
--app "$resourceName" \
--workspace "$workspaceResourceId"
以下Azure PowerShell範例使用 Update-AzApplicationInsights cmdlet。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$workspaceName = "<WorkspaceName>"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Build the full resource ID for the Log Analytics workspace
$workspaceResourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/$workspaceName"
# Define the parameters for the Application Insights resource
$updateAzApplicationInsightsParams = @{
ResourceGroupName = $resourceGroupName
Name = $resourceName
WorkspaceResourceId = $workspaceResourceId
}
# Update a workspace-based Application Insights resource
Update-AzApplicationInsights @updateAzApplicationInsightsParams
以下 REST 範例使用元件 - 建立或更新 REST API 操作。
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/components/{ResourceName}?api-version=2020-02-02
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"location": "<AzureRegion>",
"kind": "web",
"properties": {
"Application_Type": "web",
"WorkspaceResourceId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<WorkspaceName>"
}
}
下列 Bicep 範例使用 Microsoft.Insights/components 資源類型。
param subscriptionId string = '<SubscriptionId>'
param resourceGroupName string = '<ResourceGroupName>'
param resourceName string = '<ResourceName>'
param azureRegion string = '<AzureRegion>'
param workspaceName string = '<WorkspaceName>'
var workspaceResourceId = '/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/${workspaceName}'
resource applicationInsightsComponent 'Microsoft.Insights/components@2020-02-02' = {
name: resourceName
location: azureRegion
kind: 'web'
properties: {
Application_Type: 'web'
WorkspaceResourceId: workspaceResourceId
}
}
以下 ARM(JSON) 範例使用 Microsoft。Insights 元件資源類型。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"defaultValue": "<SubscriptionId>"
},
"resourceGroupName": {
"type": "string",
"defaultValue": "<ResourceGroupName>"
},
"resourceName": {
"type": "string",
"defaultValue": "<ResourceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
}
},
"variables": {
"workspaceResourceId": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.OperationalInsights/workspaces/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('workspaceName'))]"
},
"resources": [
{
"type": "Microsoft.Insights/components",
"apiVersion": "2020-02-02",
"name": "[parameters('resourceName')]",
"location": "[parameters('azureRegion')]",
"kind": "web",
"properties": {
"Application_Type": "web",
"WorkspaceResourceId": "[variables('workspaceResourceId')]"
}
}
]
}
匯出遙測
工作區型資源不支援傳統的連續匯出功能。 請改用 診斷設定。
在您的 Application Insights 資源中,選取 [ 診斷設定>][新增診斷設定]。
您可以選取要封存到記憶體帳戶的所有資料表或資料表子集。 您也可以串流至事件中樞。
下列 Azure CLI 範例使用 az monitor diagnostic-settings create 命令。 它建立一個診斷設定,將 Application Insights 資源的日誌和指標傳送到儲存帳號。
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
storageAccountName="<StorageAccountName>"
diagnosticSettingName="<DiagnosticSettingName>"
# Get the subscription ID from the current Azure CLI context
subscriptionId=$(az account show --query id --output tsv)
# Build the full resource ID for the Application Insights component
resourceId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Insights/components/$resourceName"
# Build the full resource ID for the storage account
storageAccountId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
# Create the diagnostic setting
az monitor diagnostic-settings create \
--name "$diagnosticSettingName" \
--resource "$resourceId" \
--storage-account "$storageAccountId" \
--logs '[{"category":"AppRequests","enabled":true}]' \
--metrics '[{"category":"AllMetrics","enabled":true}]'
以下Azure PowerShell範例使用 New-AzDiagnosticSetting cmdlet。 它建立一個診斷設定,將 Application Insights 資源的日誌和指標傳送到儲存帳號。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$storageAccountName = "<StorageAccountName>"
$diagnosticSettingName = "<DiagnosticSettingName>"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Build the full resource ID for the Application Insights component
$resourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Insights/components/$resourceName"
# Build the full resource ID for the storage account
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"
# Create log and metric settings objects
$log = New-AzDiagnosticSettingLogSettingsObject `
-Category 'AppRequests' `
-Enabled $true
$metric = New-AzDiagnosticSettingMetricSettingsObject `
-Category 'AllMetrics' `
-Enabled $true
# Define parameters for New-AzDiagnosticSetting
$newAzDiagnosticSettingParams = @{
Name = $diagnosticSettingName
ResourceId = $resourceId
StorageAccountId = $storageAccountId
Log = @($log)
Metric = @($metric)
}
# Create the diagnostic setting
New-AzDiagnosticSetting @newAzDiagnosticSettingParams
以下 REST 範例使用 診斷設定 - 建立或更新 REST API 操作。 它建立一個診斷設定,將 Application Insights 資源的日誌和指標傳送到儲存帳號。
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/components/{ResourceName}/providers/Microsoft.Insights/diagnosticSettings/{DiagnosticSettingName}?api-version=2021-05-01-preview
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"storageAccountId": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<StorageAccountName>",
"logs": [
{
"category": "AppRequests",
"enabled": true
}
],
"metrics": [
{
"category": "AllMetrics",
"enabled": true
}
]
}
}
以下 Bicep 範例使用 Microsoft.Insights diagnosticSettings 資源類型。 它建立一個診斷設定,將 Application Insights 資源的日誌和指標傳送到儲存帳號。
param subscriptionId string = '<SubscriptionId>'
param resourceGroupName string = '<ResourceGroupName>'
param resourceName string = '<ResourceName>'
param storageAccountName string = '<StorageAccountName>'
param diagnosticSettingName string = '<DiagnosticSettingName>'
resource applicationInsightsComponent 'Microsoft.Insights/components@2020-02-02' existing = {
name: resourceName
}
var storageAccountId = '/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Storage/storageAccounts/${storageAccountName}'
resource diagnosticSetting 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
name: diagnosticSettingName
scope: applicationInsightsComponent
properties: {
storageAccountId: storageAccountId
logs: [
{
category: 'AppRequests'
enabled: true
}
]
metrics: [
{
category: 'AllMetrics'
enabled: true
}
]
}
}
以下 ARM 範本範例使用 Microsoft。Insights diagnosticSettings資源類型。 它建立一個診斷設定,將 Application Insights 資源的日誌和指標傳送到儲存帳號。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"defaultValue": "<SubscriptionId>"
},
"resourceGroupName": {
"type": "string",
"defaultValue": "<ResourceGroupName>"
},
"resourceName": {
"type": "string",
"defaultValue": "<ResourceName>"
},
"storageAccountName": {
"type": "string",
"defaultValue": "<StorageAccountName>"
},
"diagnosticSettingName": {
"type": "string",
"defaultValue": "<DiagnosticSettingName>"
}
},
"variables": {
"storageAccountId": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Storage/storageAccounts/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('storageAccountName'))]"
},
"resources": [
{
"type": "Microsoft.Insights/components/providers/diagnosticSettings",
"apiVersion": "2021-05-01-preview",
"name": "[format('{0}/Microsoft.Insights/{1}', parameters('resourceName'), parameters('diagnosticSettingName'))]",
"properties": {
"storageAccountId": "[variables('storageAccountId')]",
"logs": [
{
"category": "AppRequests",
"enabled": true
}
],
"metrics": [
{
"category": "AllMetrics",
"enabled": true
}
]
}
}
]
}
設定資料保留
您可以在相關聯的 Log Analytics 工作區中設定 Application Insights 資源的數據保留期。
如需詳細資訊,請參閱 設定分析數據表的預設互動式保留期間。
您可以在相關聯的 Log Analytics 工作區中設定 Application Insights 資源的數據保留期。
如需詳細資訊,請參閱 設定分析數據表的預設互動式保留期間。
您可以在相關聯的 Log Analytics 工作區中設定 Application Insights 資源的數據保留期。
如需詳細資訊,請參閱 設定分析數據表的預設互動式保留期間。
您可以在相關聯的 Log Analytics 工作區中設定 Application Insights 資源的數據保留期。
如需詳細資訊,請參閱 設定分析數據表的預設互動式保留期間。
以下 Bicep 範例使用 Microsoft.OperationalInsights workspaces 資源類型。 它設定了相關 Log Analytics 工作區的資料保留期限。
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
param retentionInDays int = <RetentionInDays>
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
retentionInDays: retentionInDays
}
}
以下 ARM(JSON) 範例使用 Microsoft。OperationalInsights workspaces資源類型。 它設定了相關 Log Analytics 工作區的資料保留期限。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"retentionInDays": {
"type": "int",
"defaultValue": <RetentionInDays>
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('azureRegion')]",
"properties": {
"retentionInDays": "[parameters('retentionInDays')]"
}
}
]
}
設定每日上限
每日上限必須針對Application Insights和基礎Log Analytics工作區獨立設定。 有效的每日上限是兩個設定的最小值。
備註
目前,Azure 不會提供透過 Azure CLI 設定 Application Insights 每日上限的方法。
Log Analytics:
下列 Azure CLI 範例使用的是 az monitor log-analytics workspace update 命令。
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
dailyCapInGb="<DailyCapInGb>"
# Update the daily cap for the Log Analytics workspace
az monitor log-analytics workspace update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--set workspaceCapping.dailyQuotaGb=$dailyCapInGb
以下Azure PowerShell範例使用 Set-AzApplicationInsightsDailyCap 與 Set-AzOperationalInsightsWorkspace cmdlet。
應用洞察:
以下Azure PowerShell範例使用 Set-AzApplicationInsightsDailyCap cmdlet。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$dailyCapInGb = "<DailyCapInGb>"
# Define the parameters for the daily cap
$setAzApplicationInsightsDailyCapParams = @{
ResourceGroupName = $resourceGroupName
Name = $resourceName
DailyCapGB = $dailyCapInGb
}
# Set the daily cap for the Application Insights resource
Set-AzApplicationInsightsDailyCap @setAzApplicationInsightsDailyCapParams
Log Analytics:
以下Azure PowerShell範例使用 Set-AzOperationalInsightsWorkspace cmdlet。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$dailyCapInGb = "<DailyCapInGb>"
# Define the parameters for the daily cap
$setAzOperationalInsightsWorkspaceParams = @{
ResourceGroupName = $resourceGroupName
Name = $workspaceName
DailyQuotaGb = $dailyCapInGb
}
# Set the daily cap for the Log Analytics workspace
Set-AzOperationalInsightsWorkspace @setAzOperationalInsightsWorkspaceParams
備註
目前 Azure 並沒有提供透過 REST API 設定 Application Insights 的每日上限。
Log Analytics:
以下 REST 範例使用 Workspaces - Update REST API 操作。
PATCH https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}?api-version=2025-07-01
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"workspaceCapping": {
"dailyQuotaGb": <DailyCapInGb>
}
}
}
備註
目前,Azure 不提供使用 Bicep 範本設定 Application Insights 每日上限的方法。
Log Analytics:
以下 Bicep 範例使用 Microsoft.OperationalInsights workspaces 資源類型。
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
param dailyCapInGb int
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
workspaceCapping: {
dailyQuotaGb: dailyCapInGb
}
}
}
備註
目前,Azure 不提供使用 ARM 範本設定 Application Insights 每日上限的方法。
Log Analytics:
以下 ARM(JSON) 範例使用 Microsoft。OperationalInsights workspaces資源類型。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"dailyCapInGb": {
"type": "int"
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('azureRegion')]",
"properties": {
"workspaceCapping": {
"dailyQuotaGb": "[parameters('dailyCapInGb')]"
}
}
}
]
}
設定定價方案
您可以在相關聯的 Log Analytics 工作區中設定 Application Insights 資源的定價方案。 如需可用定價方案的詳細資訊,請參閱 Azure 監視器記錄成本計算和選項。
備註
如果您在 Application Insights 中看到非預期的費用或高成本,本指南可協助您。 它涵蓋常見的原因,例如高遙測數據量、數據擷取高峰,以及取樣設置錯誤。 如果您要針對成本尖峰、遙測量、取樣無法運作、資料上限、高擷取量或非預期計費等相關問題進行疑難排解,此方式特別實用。 若要開始使用,請參閱 Application Insights 中高資料匯入的疑難排解。
下列 Azure CLI 的範例會使用 az monitor log-analytics workspace update 命令。
隨用隨付:
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
# Set the pricing plan to pay-as-you-go
az monitor log-analytics workspace update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--set PerGB2018
承諾等級:
# Set variables
resourceGroupName="<ResourceGroupName>"
workspaceName="<WorkspaceName>"
capacityReservationInGb="<CapacityReservationInGb>"
# Set the pricing plan to commitment tier
az monitor log-analytics workspace update \
--resource-group "$resourceGroupName" \
--workspace-name "$workspaceName" \
--set CapacityReservation \
--level "$capacityReservationInGb"
以下Azure PowerShell範例使用 Set-AzOperationalInsightsWorkspace cmdlet。
隨用隨付:
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
# Define the parameters for the pricing plan
$setAzOperationalInsightsWorkspaceParams = @{
ResourceGroupName = $resourceGroupName
Name = $workspaceName
Sku = "PerGB2018"
}
# Set the pricing plan to pay-as-you-go
Set-AzOperationalInsightsWorkspace @setAzOperationalInsightsWorkspaceParams
承諾等級:
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$workspaceName = "<WorkspaceName>"
$capacityReservationInGb = "<CapacityReservationInGb>"
# Define the parameters for the pricing plan
$setAzOperationalInsightsWorkspaceParams = @{
ResourceGroupName = $resourceGroupName
Name = $workspaceName
Sku = "CapacityReservation"
SkuCapacity = $capacityReservationInGb
}
# Set the pricing plan to commitment tier
Set-AzOperationalInsightsWorkspace @setAzOperationalInsightsWorkspaceParams
以下 REST 範例使用 Pricing Plan - Update REST API 作業。
隨用隨付:
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}/pricingPlans/current?api-version=2017-10-01
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"sku": {
"name": "pergb2018"
}
}
}
承諾等級:
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.OperationalInsights/workspaces/{WorkspaceName}/pricingPlans/current?api-version=2017-10-01
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"properties": {
"sku": {
"name": "capacityreservation",
"capacityReservationLevel": <CapacityReservationInGb>
}
}
}
下列 Bicep 範例使用 Microsoft.OperationalInsights workspaces 的資源類型。
隨用隨付:
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
sku: {
name: 'pergb2018'
}
}
}
承諾等級:
param workspaceName string = '<WorkspaceName>'
param azureRegion string = '<AzureRegion>'
param capacityReservationInGb int
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2025-07-01' = {
name: workspaceName
location: azureRegion
properties: {
sku: {
name: 'capacityreservation'
capacityReservationLevel: capacityReservationInGb
}
}
}
以下 ARM(JSON)範例使用 Microsoft。OperationalInsights workspaces資源類型。
隨用隨付:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('azureRegion')]",
"properties": {
"sku": {
"name": "pergb2018"
}
}
}
]
}
承諾等級:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "string",
"defaultValue": "<WorkspaceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"capacityReservationInGb": {
"type": "int"
}
},
"resources": [
{
"type": "Microsoft.OperationalInsights/workspaces",
"apiVersion": "2025-07-01",
"name": "[parameters('workspaceName')]",
"location": "[parameters('azureRegion')]",
"properties": {
"sku": {
"name": "capacityreservation",
"capacityReservationLevel": "[parameters('capacityReservationInGb')]"
}
}
}
]
}
停用IP遮罩
根據預設,Application Insights 不會儲存IP位址。 若要瞭解如何停用IP遮罩,請參閱 地理位置和IP位址處理。
建立其他資源
建立可用性測試
以下Azure CLI範例使用 az monitor app-insights web-test create 指令。 它會以預設設定建立標準可用性測試。
# Set variables
resourceGroupName="<ResourceGroupName>"
resourceName="<ResourceName>"
azureRegion="<AzureRegion>"
webTestName="<WebTestName>"
requestUrl="<RequestUrl>"
# Get the subscription ID from the current Azure CLI context
subscriptionId=$(az account show --query id --output tsv)
# Create a standard availability test
az monitor app-insights web-test create \
--resource-group "$resourceGroupName" \
--location "$azureRegion" \
--web-test-kind standard \
--name "$webTestName" \
--defined-web-test-name "$webTestName" \
--request-url "$requestUrl" \
--retry-enabled true \
--ssl-check true \
--ssl-lifetime-check 7 \
--frequency 300 \
--locations Id="us-ca-sjc-azr" \
--locations Id="apac-sg-sin-azr" \
--locations Id="us-il-ch1-azr" \
--locations Id="us-va-ash-azr" \
--locations Id="emea-au-syd-edge" \
--http-verb GET \
--timeout 120 \
--expected-status-code 200 \
--enabled true \
--tags "hidden-link:/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/microsoft.insights/components/$resourceName=Resource"
備註
Web 測試區域 (--location) 與地理位置(--locations請注意複數形式)不同,可以選取多個。
--location 是指建立和裝載 Web 測試的 Azure 區域,同時 --locations 參考執行 Web 測試的地理位置或位置。 如需所有地理位置的完整清單,請參閱 Application Insights 可用性測試。
以下Azure PowerShell範例使用 New-AzApplicationInsightsWebTest cmdlet。 它會以預設設定建立標準可用性測試。
# Set variables
$resourceGroupName = "<ResourceGroupName>"
$resourceName = "<ResourceName>"
$azureRegion = "<AzureRegion>"
$webTestName = "<WebTestName>"
$requestUrl = "<RequestUrl>"
# Get the subscription ID from the current Azure PowerShell context
$subscriptionId = (Get-AzContext).Subscription.Id
# Define the geographic locations from which the web test is executed
$geoLocation = @()
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "us-ca-sjc-azr"
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "apac-sg-sin-azr"
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "us-il-ch1-azr"
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "us-va-ash-azr"
$geoLocation += New-AzApplicationInsightsWebTestGeolocationObject -Location "emea-au-syd-edge"
# Define parameters for New-AzApplicationInsightsWebTest
$newAzApplicationInsightsWebTestParams = @{
ResourceGroupName = $resourceGroupName
Location = $azureRegion
Name = $webTestName
TestName = $webTestName
Kind = "standard"
RequestUrl = $requestUrl
RetryEnabled = $true
RuleSslCheck = $true
RuleSslCertRemainingLifetimeCheck = 7
Frequency = 300
GeoLocation = $geoLocation
RequestHttpVerb = "GET"
Timeout = 120
RuleExpectedHttpStatusCode = 200
Enabled = $true
Tag = @{
"hidden-link:/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/microsoft.insights/components/$resourceName" = "Resource"
}
}
# Create a standard availability test
New-AzApplicationInsightsWebTest @newAzApplicationInsightsWebTestParams
備註
Web 測試區域 (-Location) 與可以選取多個的地理位置 (-GeoLocation) 不同。
-Location 是指建立和裝載 Web 測試的 Azure 區域,同時 -GeoLocation 參考執行 Web 測試的地理位置或位置。 如需所有地理位置的完整清單,請參閱 Application Insights 可用性測試。
以下 REST 範例使用 Web Tests - 建立或更新 REST API 操作。 它會以預設設定建立標準可用性測試。
PUT https://management.azure.com/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Insights/webtests/{WebTestName}?api-version=2022-06-15
Authorization: Bearer {AccessToken}
Content-Type: application/json
{
"location": "<AzureRegion>",
"tags": {
"hidden-link:/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/microsoft.insights/components/<ResourceName>": "Resource"
},
"properties": {
"Name": "<WebTestName>",
"SyntheticMonitorId": "<WebTestName>",
"Enabled": true,
"Frequency": 300,
"Timeout": 120,
"Kind": "standard",
"RetryEnabled": true,
"Request": {
"RequestUrl": "<RequestUrl>",
"HttpVerb": "GET"
},
"ValidationRules": {
"ExpectedHttpStatusCode": 200,
"SSLCheck": true,
"SSLCertRemainingLifetimeCheck": 7
},
"Locations": [
{ "Id": "us-ca-sjc-azr" },
{ "Id": "apac-sg-sin-azr" },
{ "Id": "us-il-ch1-azr" },
{ "Id": "us-va-ash-azr" },
{ "Id": "emea-au-syd-edge" }
]
}
}
備註
Web 測試區域 (location) 與地理位置(Locations請注意複數形式)不同,可以選取多個。
location 是指建立和裝載 Web 測試的 Azure 區域,同時 Locations 參考執行 Web 測試的地理位置或位置。 如需所有地理位置的完整清單,請參閱 Application Insights 可用性測試。
以下 Bicep 範例使用 Microsoft.Insights webtests 資源類型。 它會以預設設定建立標準可用性測試。
param subscriptionId string = '<SubscriptionId>'
param resourceGroupName string = '<ResourceGroupName>'
param resourceName string = '<ResourceName>'
param azureRegion string = '<AzureRegion>'
param webTestName string = '<WebTestName>'
param requestUrl string = '<RequestUrl>'
resource webTest 'Microsoft.Insights/webtests@2022-06-15' = {
name: webTestName
location: azureRegion
tags: {
'hidden-link:/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/microsoft.insights/components/${resourceName}': 'Resource'
}
properties: {
SyntheticMonitorId: webTestName
Name: webTestName
Enabled: true
Frequency: 300
Timeout: 120
Kind: 'standard'
RetryEnabled: true
Locations: [
{ Id: 'us-ca-sjc-azr' }
{ Id: 'apac-sg-sin-azr' }
{ Id: 'us-il-ch1-azr' }
{ Id: 'us-va-ash-azr' }
{ Id: 'emea-au-syd-edge' }
]
Request: {
RequestUrl: requestUrl
HttpVerb: 'GET'
}
ValidationRules: {
ExpectedHttpStatusCode: 200
SSLCheck: true
SSLCertRemainingLifetimeCheck: 7
}
}
}
備註
Web 測試區域 (location) 與可以選取多個的地理位置 (Locations) 不同。
location 是指建立和裝載 Web 測試的 Azure 區域,同時 Locations 參考執行 Web 測試的地理位置或位置。 如需所有地理位置的完整清單,請參閱 Application Insights 可用性測試。
如需使用 Bicep 建立可用性測試的詳細資訊,請參閱 Microsoft.Insights Webtests。
以下 ARM(JSON) 範例使用 Microsoft。Insights 網路測試資源類型。 它會以預設設定建立標準可用性測試。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"defaultValue": "<SubscriptionId>"
},
"resourceGroupName": {
"type": "string",
"defaultValue": "<ResourceGroupName>"
},
"resourceName": {
"type": "string",
"defaultValue": "<ResourceName>"
},
"azureRegion": {
"type": "string",
"defaultValue": "<AzureRegion>"
},
"webTestName": {
"type": "string",
"defaultValue": "<WebTestName>"
},
"requestUrl": {
"type": "string",
"defaultValue": "<RequestUrl>"
}
},
"resources": [
{
"type": "Microsoft.Insights/webtests",
"apiVersion": "2022-06-15",
"name": "[parameters('webTestName')]",
"location": "[parameters('azureRegion')]",
"tags": {
"[format('hidden-link:/subscriptions/{0}/resourceGroups/{1}/providers/microsoft.insights/components/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('resourceName'))]": "Resource"
},
"properties": {
"SyntheticMonitorId": "[parameters('webTestName')]",
"Name": "[parameters('webTestName')]",
"Enabled": true,
"Frequency": 300,
"Timeout": 120,
"Kind": "standard",
"RetryEnabled": true,
"Locations": [
{ "Id": "us-ca-sjc-azr" },
{ "Id": "apac-sg-sin-azr" },
{ "Id": "us-il-ch1-azr" },
{ "Id": "us-va-ash-azr" },
{ "Id": "emea-au-syd-edge" }
],
"Request": {
"RequestUrl": "[parameters('requestUrl')]",
"HttpVerb": "GET"
},
"ValidationRules": {
"ExpectedHttpStatusCode": 200,
"SSLCheck": true,
"SSLCertRemainingLifetimeCheck": 7
}
}
}
]
}
備註
Web 測試區域 (location) 與可以選取多個的地理位置 (Locations) 不同。
location 是指建立和裝載 Web 測試的 Azure 區域,同時 Locations 參考執行 Web 測試的地理位置或位置。 如需所有地理位置的完整清單,請參閱 Application Insights 可用性測試。
新增度量警示
小提示
每個 Application Insights 資源都隨附現成可用的計量。 如果個別元件會回報給相同的 Application Insights 資源,則針對這些計量發出警示可能沒有意義。
若要自動建立計量警示,請參閱 計量警示範本 一文。
建立更多 Application Insights 資源
我應該部署多少 Application Insights 資源?
當您開發下一個版本的 Web 應用程式時,您不希望將新版本和已發布版本的 Application Insights 遙測數據混在一起。
為了避免混淆,請將不同開發階段的遙測,以個別的連接字串傳送到個別的 Application Insights 資源。
如果您的系統是 Azure 雲端服務的實例,則有 另一個設定個別連接字串的方法。
使用單一 Application Insights 資源的時機
使用單一 Application Insights 資源以:
- 簡化部署在一起之應用程式的 DevOps/ITOps 管理,通常是由同一個小組開發及管理。
- 預設會在儀表板中集中處理關鍵效能指標,例如回應時間和失敗率。 視需要在計量總管中依角色名稱區隔。
- 當應用程式元件之間不需要不同的 Azure 角色型存取控制管理時。
- 當相同的計量警示準則、連續匯出和跨元件計費/配額管理都足夠時。
- 當 API 金鑰可以平等存取所有元件的資料,且 10 個 API 金鑰符合所有元件的需求時。
- 當相同的智慧偵測和工作項目整合設定適用於所有角色時。
備註
如果您要合併多個 Application Insights 資源,您可以將現有應用程式元件指向新的合併 Application Insights 資源。 儲存在您舊資源的遙測不會傳輸到新的資源。 只有在新資源中有足夠的遙測資料以確保業務持續性時,才刪除舊資源。
其他考量
若要啟用入口網站體驗,請新增自定義程式代碼,以將有意義的值指派給 Cloud_RoleName 屬性。 如果沒有這些值,入口網站功能就無法運作。
對於 Azure Service Fabric 應用程式和經典雲端服務,SDK 會透過讀取 Azure 角色環境來自動設定服務。 針對其他應用程式類型,您通常需要明確設定它。
即時計量無法依角色名稱分割資料。
版本和版次追蹤
當您發佈新版本的應用程式時,您想要能夠將遙測與不同的組建分開。 您可以設定 [應用程式版本] 屬性,以便篩選 搜尋 和 計量總管 結果。
設定 [應用程式版本] 屬性有幾種不同的方法。
選項 1: 直接設定版本
對於以 OpenTelemetry 為基礎的檢測,請使用資源屬性一致地設定應用程式中繼資料。
選項 2: 在 中 BuildInfo.config 設定版本(僅限 ASP.NET)
Application Insights Web 模組會從 BuildLabel 節點挑選版本。 在您的專案中包含此檔案,而且記得要在方案總管中設定 [永遠複製] 屬性。
<?xml version="1.0" encoding="utf-8"?>
<DeploymentEvent xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/DeploymentEvent/2013/06">
<ProjectName>AppVersionExpt</ProjectName>
<Build type="MSBuild">
<MSBuild>
<BuildLabel kind="label">1.0.0.2</BuildLabel>
</MSBuild>
</Build>
</DeploymentEvent>
在Microsoft組建引擎中自動產生 BuildInfo.config 。 將下列幾行新增至您的 .csproj 檔案:
<PropertyGroup>
<GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>
<IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
</PropertyGroup>
此步驟會產生名為 yourProjectName.BuildInfo.config 的檔案。 發佈程序會將這個檔案重新命名為 BuildInfo.config。
當您使用 Visual Studio 組建時,組建標籤會包含預留位置 (*AutoGen_...*)。 使用 Microsoft 組建引擎建置時,佔位元元會填入正確的版本號碼。
若要允許 Microsoft Build Engine 產生版本號碼,請在 1.0.* 中設定類似 AssemblyReference.cs 的版本。
版本註釋
如果您使用 Azure DevOps,每當發行新版本時,就可以在圖表中新增 標記。
自動化資源建立過程
您可以使用 Bicep 或 JSON 範本搭配 Azure Resource Manager 來自動化資源建立程式。 您可以將數個資源封裝在一起,以在一個部署中加以建立。 例如,您可以使用可用性測試、計量警示和診斷設定來建立 Application Insights 資源,以將遙測傳送至 Azure 記憶體帳戶。
在 Azure 入口網站中產生範本
您可以從現有的資源產生範本。
僅限 Application Insights
- 移至 Azure 入口網站中的 Application Insights 資源。
- 在左側導覽列的 [自動化] 底下開啟 [導出] 範本。
- (選擇性):若要使用您自己的參數,請取消核取 [包含參數]。
-
下載 範本檔案,或直接在 Azure 入口網站中 加以部署 。
多個資源
- 移至 Application Insights 資源的資源群組。
- 在 [ 概觀] 窗格中,標示您想要包含在範本中的所有資源,然後選取頂端導覽列中的 [導出範本 ]。
- (選擇性):若要使用您自己的參數,請取消核取 [包含參數]。
-
下載 範本檔案,或直接在 Azure 入口網站中 加以部署 。
從頭開始建立範本
若要瞭解如何從頭開始建立 ARM 範本,請流覽 ARM 範本檔 ,其中包含 建立範本、 新增資源、 新增參數等教學課程。
您可以在 Azure 資源參考檔中找到 Application Insights、可用性測試、計量警示、診斷設定和其他資源的可用屬性,請參閱參考>>節點底下的 Azure 資源參考檔。
下一步