共用方式為


使用資料收集規則匯出計量 (預覽)

資料收集規則 (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 時,kindlocationidentity 會作為引數傳遞,而且必須從 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 字串 計量的單位。

例如:

AzureMetricsV2 資料表記錄分析查詢的螢幕擷取畫面。

儲存體帳戶

下列範例顯示匯出至儲存體帳戶的資料:

{
    "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"
    }

下一步