共用方式為


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

資料收集規則 (DCR) 可用來收集來自 Azure 資源的監視資料。 如需資料收集案例的清單,請參閱 資料收集規則 - 概觀。 您現在可以使用 DCR 來收集和匯出平台計量。

目前,您可以使用 DCR 和 [診斷設定] 來收集平台計量。 越來越多的資源支援使用 DCR 匯出計量。 如需支援資源的清單,請參閱 支援的資源和區域

使用 DCR 匯出計量可提供下列優於診斷設定的好處:

  • DCR 設定使您能匯出具有維度的度量。
  • DCR 設定會根據計量名稱啟用篩選 - 因此您只能匯出所需的計量。
  • 相較於 [診斷設定],DCR 更有彈性且可調整。
  • DCR 的端對端延遲為 3 分鐘內。 這是對[診斷設定]的一項重大改進,使得匯出度量的延遲時間縮短至 6-10 分鐘。

使用透過 DCR 匯出的計量來連續匯出計量資料。 若要查詢歷史資料,請使用資料平面度量批次 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/表格服務
SQL 伺服器 Microsoft.sql/servers
Microsoft.sql/servers/databases
運營洞察 Microsoft.operationalinsights/workspaces
數據保護 Microsoft.dataprotection/backupvaults
Azure Kubernetes Service Microsoft 容器服務/管理的群集

支援的區域

您可以在任何區域中建立計量匯出的 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 角色指派給受控識別 (部分內容可能是機器或 AI 翻譯)。

若要使用系統指派的身分識別,請新增 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 資料表中:

資料行 類型 說明
平均 真實 在時間範圍內收集的平均值。
_BilledSize(帳單大小) 真實 以位元組為單位的記錄大小
計數 真實 在時間範圍內收集的樣本數目。
尺寸 動態的 JSON 格式的計量相關聯維度。
_IsBillable // 是否可計費 字符串 指定輸入數據是否會產生費用。 當 _IsBillable 為 false 時,匯入將不會向您的 Azure 帳戶收費。
最大值 真實 在指定時間範圍內收集的最大數值。
度量類別 字符串 計量的類別名稱。
指標名稱 字符串 計量的顯示名稱。
指標資源類型 字符串 報告計量的 Azure 資源的資源類型。
最小值 真實 在時間範圍內收集的最小值。
_ResourceId(資源識別碼) 字符串 與該記錄相關聯的資源的唯一識別碼
源系統 字符串 事件收集時使用的代理程式類型。 例如,OpsManager 適用於 Windows 代理程式,可透過直接連線或使用 Operations Manager;Linux 適用於所有 Linux 代理程式;Azure 適用於 Azure 診斷。
_SubscriptionId(訂閱識別碼) 字符串 與記錄相關的訂用帳戶唯一識別碼
租戶識別碼 (TenantId) 字符串 Log Analytics 工作區識別碼
TimeGenerated 日期時間 產生記錄時的時間戳記 (UTC)。
TimeGrain 字符串 計量的時間精細度。
總數 真實 時間範圍內所有值的總和。
類型 字符串 資料表的名稱
單元名稱 字符串 計量的單位。

例如:

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

後續步驟