使用資料收集規則匯出計量 (預覽)
資料收集規則 (DCR) 可用來收集來自 Azure 資源的監視資料。 如需資料收集案例的清單,請參閱 資料收集規則 - 概觀。 您現在可以使用 DCR 來收集和匯出平台計量。
目前,您可以使用 DCR 和 [診斷設定] 來收集平台計量。 越來越多的資源支援使用 DCR 匯出計量。 如需支援資源的清單,請參閱 支援的資源和區域。
使用 DCR 匯出計量可提供下列優於診斷設定的好處:
- DCR 設定可讓您匯出維度的計量。
- DCR 設定會根據計量名稱啟用篩選 - 因此您只能匯出所需的計量。
- 相較於 [診斷設定],DCR 更有彈性且可調整。
- DCR 的端對端延遲為 3 分鐘內。 這是 [診斷設定] 的重大改善,計量匯出延遲為 6-10 分鐘。
使用透過 DCR 匯出的計量來連續匯出計量資料。 若要查詢歷程記錄資料,請使用資料平面計量 Batch API。 如需這兩項服務的比較,請參閱 資料平面計量批次 API 查詢和計量匯出的比較。
使用 REST API、Azure CLI 或 Azure PowerShell 建立計量的 DCR。 如需如何建立計量匯出 DCR 的資訊,請參閱 建立計量的資料收集規則。
當您建立 DCR 時,您必須建立資料收集規則關聯 (DCRA),以將 DCR 與要監視的資源產生關聯。 您可以為許多資源類型建立單一 DCR。 如需如何建立 DCRA 的詳細資訊,請參閱 建立資料收集規則關聯。 使用 Azure 入口網站時,會自動建立 DCRA。
注意
可以同時使用 DCR 和 [診斷設定]。 建議您在使用 DCR 時停用計量的診斷設定,以避免重複資料收集。
匯出目的地
計量可以匯出至各 DCR 的下列其中一個目的地:
Log Analytics;工作區。
可以跨區域匯出至 Log Analytics 工作區。 Log Analytics 工作區和 DCR 必須位於相同的區域中,但受監視的資源可以位於任何區域。 傳送至記錄分析工作區的計量會儲存在AzureMetricsV2
資料表中。Azure 儲存體帳戶。
儲存體帳戶、DCR 和受監視的資源必須全部位於相同的區域中。事件中樞。
事件中樞、DCR 和受監視的資源必須全部位於相同的區域中。
如需每個目的地中資料的範例,請參閱 匯出的資料。
注意
匯出計量的延遲大約為 3 分鐘。 在初始設定之後,最多允許 15 分鐘計量才會開始出現在目的地。
限制
計量匯出的 DCR 有下列限制:
- 每個 DCR 只能指定一個目的地類型。
- 單一 Azure 資源最多只能與 5 個 DCR 相關聯。
- DCR 所導出的計量不支援每小時粒紋計量的導出。
支援的資源和區域
下列資源支援使用資料收集規則匯出計量:
資源類型 | 資料流規格 |
---|---|
虛擬機器擴展集 | Microsoft.compute/virtualmachinescalesets |
虛擬機器 | Microsoft.compute/virtualmachines |
Redis 快取 | Microsoft.cache/redis |
IoT 中樞 | Microsoft.devices/iothubs |
金鑰保存庫 | Microsoft.keyvault/vaults |
儲存體帳戶 | Microsoft.storage/storageaccounts Microsoft.storage/Storageaccounts/blobservices Microsoft.storage/storageaccounts/fileservices Microsoft.storage/storageaccounts/queueservices Microsoft.storage/storageaccounts/tableservices |
SQL Server | Microsoft.sql/servers Microsoft.sql/servers/databases |
Operational Insights | Microsoft.operationalinsights/workspaces |
媒體服務 | Microsoft.media/mediaservices Microsoft.media/mediaservices/streamingendpoints Microsoft.media/mediaservices/liveevents |
資料保護 | Microsoft.dataprotection/backupvaults |
Azure Kubernetes Service | Microsoft.ContainerService/managedClusters |
支援的區域
您可以在任何區域中建立計量匯出的 DCR,但您想要匯出計量的資源必須位於下列其中一個區域:
- 澳大利亞東部
- 美國中部
- CentralUsEuap
- 美國中南部
- 美國東部
- 美國東部 2
- Eastus2Euap
- 美國西部
- 美國西部 2
- 北歐
- 西歐
- 英國南部
DCR 規格
資料收集規則是在 JSON 物件中定義。 建立計量匯出的 DCR 需要下列屬性。
屬性 | 說明 |
---|---|
dataSources.platformTelemetry.streams |
列出資源類型和計量。 指定 Metrics-Group-All 以收集資源的所有計量,或指定個別計量。 格式:<resource type>:Metrics-Group-All | <metric name> 例如, Microsoft.Compute/virtualMachines:Percentage CPU |
dataSources.platformTelemetry.name |
資料來源的名稱。 |
destinations |
計量目的地。 每個 DCR 只支援一個目的地。 有效的目的地類型: storageAccounts logAnalytics eventHubs |
dataflows.streams |
依下列格式傳遞至目的地的資料流清單:<resource type>:Metrics-Group-All |<metric name> 例如:Microsoft.Compute/virtualMachines:Percentage CPU" |
dataflows.destinations |
將資料流傳遞至的目的地,如 destinations 屬性中所定義。 |
identity.type |
要用於 DCR 的身分識別類型。 儲存體帳戶目的地的必要項目。 有效值: systemAssigned userAssigned |
kind |
資料收集規則種類。 設定為 PlatformTelemetry 計量匯出。 |
location |
DCR 的位置。 |
注意
每個 DCR 只能指定一個目的地類型。
計量匯出 DCR 的 JSON 格式
使用下列一般 JSON 物件的格式來建立計量匯出的 DCR。 複製範例時,請移除不必要的目的地。
{
"properties": {
"dataSources": {
"platformTelemetry": [
{
"streams": [
// a list of resource types and metrics to collect metrics from
"<resourcetype>:<metric name> | Metrics-Group-All",
"<resourcetype>:<metric name> | Metrics-Group-All"
],
"name": "<data sources name>"
}
]
},
"destinations": {
// Choose a single destination type of either logAnalytics, storageAccounts, or eventHubs
"logAnalytics": [
{
"workspaceResourceId": "workspace Id",
"name": "<destination name>"
}
],
"storageAccounts": [
{
"storageAccountResourceId": "<storage account Id>",
"containerName": "<container name>",
"name": "<destination name>"
}
],
"eventHubs": [
{
"eventHubResourceId": "event hub id",
"name": "<destination name>"
}
], },
"dataFlows": [
{
"streams": [
// a list of resource types and metrics to pass to the destination
"<resourcetype>:<metric name> | Metrics-Group-All",
"<resourcetype>:<metric name> | Metrics-Group-All"
],
"destinations": [
"<destination name>"
]
}
]
},
// identity is required for Storage Account and Event Hubs destinations
"identity": {
"type": "userassigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rg-001/providers/Microsoft.ManagedIdentity/userAssignedIdentities/DRCIdentity": {}
}
},
"kind": "PlatformTelemetry",
"location": "eastus"
}
注意
使用 CLI 建立計量匯出的 DCR 時,kind
、location
和 identity
會作為引數傳遞,而且必須從 JSON 物件中移除。
使用者和系統指派的身分識別
建立 DCR 時,支援使用者和系統指派的身分識別。 儲存體帳戶和事件中樞目的地需要身分識別。 您可以使用系統指派或使用者指派的身分識別。 如需詳細資訊,請參閱 將 Azure 角色指派給受控識別。
若要使用系統指派的身分識別,請新增 identity
物件如下:
"identity": {
"type": "systemAssigned"
},
若要使用使用者指派的身分識別,請新增 identity
物件如下:
"identity": {
"type": "userassigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity name>": {}
}
}
篩選計量
指定要匯出的計量時,您可以依名稱篩選計量,或使用 Metrics-Group-All
要求所有計量。 如需支援的計量清單,請參閱 依資源類型支援的計量和記錄類別。
若要從相同的資源類型指定多個計量,請為每個計量建立個別的資料流項目。
下列範例示範如何依名稱篩選計量。
{
"properties": {
"dataSources": {
"platformTelemetry": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Percentage CPU",
"Microsoft.Compute/virtualMachines:Disk Read Bytes",
"Microsoft.Compute/virtualMachines:Inbound Flows",
"Microsoft.Compute/virtualMachineScaleSets:Percentage CPU",
"Microsoft.Cache/redis:Cache Hits"
],
"name": "myPlatformTelemetryDataSource"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/arg-001/providers/microsoft.operationalinsights/workspaces/loganalyticsworkspace001",
"name": "destinationName"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Percentage CPU",
"Microsoft.Compute/virtualMachines:Disk Read Bytes",
"Microsoft.Compute/virtualMachines:Inbound Flows",
"Microsoft.Compute/virtualMachineScaleSets:Percentage CPU",
"Microsoft.Cache/redis:Cache Hits"
],
"destinations": [
"destinationName"
]
}
]
},
"kind": "PlatformTelemetry",
"location": "eastus"
}
範例計量匯出 JSON 物件
下列範例顯示計量匯出至每個目的地類型的範例 DCR JSON 物件。
Log Analytics 工作區
下列範例顯示計量的資料收集規則,其將特定計量從虛擬機器、虛擬機器擴展集和所有金鑰保存庫計量傳送至 Log Analytics 工作區:
{
"properties": {
"dataSources": {
"platformTelemetry": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Percentage CPU",
"Microsoft.Compute/virtualMachines:Disk Read Bytes",
"Microsoft.Compute/virtualMachines:Inbound Flows",
"Microsoft.Compute/virtualMachineScaleSets:Available Memory Bytes",
"Microsoft.KeyVault/vaults:Metrics-Group-All"
],
"name": "myPlatformTelemetryDataSource"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-001/providers/microsoft.operationalinsights/workspaces/laworkspace001",
"name": "ladestination"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft.Compute/virtualMachines:Percentage CPU",
"Microsoft.Compute/virtualMachines:Disk Read Bytes",
"Microsoft.Compute/virtualMachines:Inbound Flows",
"Microsoft.Compute/virtualMachineScaleSets:Available Memory Bytes",
"Microsoft.KeyVault/vaults:Metrics-Group-All"
],
"destinations": [
"ladestination"
]
}
]
},
"kind": "PlatformTelemetry",
"location": "centralus"
}
建立計量匯出的 DCR
使用 Azure 入口網站、CLI、PowerShell、REST API 或 ARM 範本建立計量匯出的 DCR。 如需詳細資訊,請參閱 建立計量匯出的數據收集規則 (DCR)。
匯出的資料
下列範例顯示匯出至每個目的地的資料。
Log Analytics 工作區
匯出至 Log Analytics 工作區的資料會以下列格式儲存在 Log Analytics 工作區的 AzureMetricsV2
資料表中:
資料行 | 類型 | 描述 |
---|---|---|
平均 | real | 在時間範圍內收集的平均值。 |
_BilledSize | real | 以位元組為單位的記錄大小 |
計數 | real | 在時間範圍內收集的樣本數目。 |
維度 | dynamic | JSON 格式的計量相關聯維度。 |
_IsBillable | 字串 | 指定內嵌資料是否可計費。 當 _IsBillable 為 false 時,擷取不會向您的 Azure 帳戶收費 |
最大值 | real | 在時間範圍內收集的最大值。 |
MetricCategory | 字串 | 計量的類別名稱。 |
MetricName | 字串 | 計量的顯示名稱。 |
MetricResourceType | 字串 | 報告計量的 Azure 資源的資源類型。 |
最小值 | real | 在時間範圍內收集的最小值。 |
_ResourceId | string | 記錄相關資源的唯一識別碼 |
SourceSystem | 字串 | 收集事件的代理程式類型。 例如,適用於 Windows 代理程式的 OpsManager 、直接連線或 Operations Manager、適用於 Linux 的所有 Linux 代理程式,或適用於 Azure 的 Azure 診斷 |
_SubscriptionId | string | 與記錄相關的訂用帳戶唯一識別碼 |
TenantId | 字串 | Log Analytics 工作區識別碼 |
TimeGenerated | Datetime | 產生記錄時的時間戳記 (UTC)。 |
TimeGrain | 字串 | 計量的時間精細度。 |
總數 | real | 時間範圍內所有值的總和。 |
型別 | string | 資料表的名稱 |
UnitName | 字串 | 計量的單位。 |
例如:
儲存體帳戶
下列範例顯示匯出至儲存體帳戶的資料:
{
"Average": "31.5",
"Count": "2",
"Maximum": "52",
"Minimum": "11",
"Total": "63",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-dcrs/providers/microsoft.keyvault/vaults/dcr-vault",
"time": "2024-08-20T14:13:00.0000000Z",
"unit": "MilliSeconds",
"metricName": "ServiceApiLatency",
"timeGrain": "PT1M",
"dimension": {
"ActivityName": "vaultget",
"ActivityType": "vault",
"StatusCode": "200",
"StatusCodeClass": "2xx"
}
}
事件中樞
下列範例顯示匯出至事件中樞的計量。
{
"Average": "1",
"Count": "1",
"Maximum": "1",
"Minimum": "1",
"Total": "1",
"resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-dcrs/providers/microsoft.keyvault/vaults/dcr-vault",
"time": "2024-08-22T13:43:00.0000000Z",
"unit": "Count",
"metricName": "ServiceApiHit",
"timeGrain": "PT1M",
"dimension": {
"ActivityName": "keycreate",
"ActivityType": "key"
},
"EventProcessedUtcTime": "2024-08-22T13:49:17.1233030Z",
"PartitionId": 0,
"EventEnqueuedUtcTime": "2024-08-22T13:46:04.5570000Z"
}