使用計量、警示和診斷來監視 Azure Digital Twins

Azure Digital Twins 與 Azure 監視器 整合,以提供計量和診斷資訊,讓您可用來監視 Azure Digital Twins 資源。 計量預設會啟用,並提供 Azure 訂用帳戶中 Azure Digital Twins 資源狀態的相關資訊。 警示 可以在計量資料中找到特定條件時主動通知您。 您也可以收集 服務實例的診斷記錄 ,以監視其效能、存取和其他資料。

這些監視功能可協助您評估 Azure Digital Twins 服務的整體健康情況,以及與其連線的資源。 您可以使用它們來瞭解 Azure Digital Twins 實例中發生的情況,並分析問題的根本原因,而不需要連絡Azure 支援。

您可以從 Azure 入口網站 存取它們,並分組在 Azure Digital Twins 資源的 [監視] 標題下

Screenshot of the Azure portal showing the Monitoring options.

計量與警示

如需檢視 Azure 資源 計量的 一般資訊,請參閱 Azure 監視器檔中的開始使用計量總管 。 如需設定 Azure 計量警示 的一般資訊,請參閱 建立新的警示規則

本節的其餘部分說明每個 Azure Digital Twins 實例所追蹤的計量,以及每個計量與實例的整體狀態有何關聯。

追蹤服務限制的計量

您可以設定這些計量,以追蹤何時接近 解決方案某些層面的已發佈服務限制

若要設定追蹤,請使用 Azure 監視器中的警示 功能。 您可以定義這些計量的閾值,以便在計量達到其發佈限制的特定百分比時收到警示。

計量 計量顯示名稱 單位 彙總類型 描述 維度
TwinCount 對應項計數 (預覽) 計數 總數 Azure Digital Twins 執行個體中的對應項總數。 使用此計量來判斷您是否接近 每個實例允許之對應項數目上限的服務限制
ModelCount 模型計數 (預覽) 計數 總數 Azure Digital Twins 執行個體中的模型總數。 使用此計量來判斷您是否接近 每個實例所允許模型數目上限的服務限制

API 要求計量

計量必須與 API 要求相關:

計量 計量顯示名稱 單位 彙總類型 描述 維度
ApiRequests API 要求 計數 總數 針對 Digital Twins 讀取、寫入、刪除和查詢作業所做的 API 要求數目。 認證
操作
協定
狀態碼、
狀態碼類別,
狀態文字
ApiRequestsFailureRate API 要求失敗率 Percent 平均 服務針對實例收到的 API 要求百分比,該要求會為 Digital Twins 讀取、寫入、刪除和查詢作業提供內部錯誤 (500) 回應碼。 認證
操作
協定
狀態碼、
狀態碼類別,
狀態文字
ApiRequestsLatency API 要求延遲 毫秒 平均 API 要求的回應時間。 這個值是指 Azure Digital Twins 收到要求的時間,直到服務傳送 Digital Twins 讀取、寫入、刪除和查詢作業的成功/失敗結果為止。 認證
操作
通訊協定

計費計量

計量與計費相關:

計量 計量顯示名稱 單位 彙總類型 描述 維度
BillingApiOperations 計費 API 作業 計數 總數 針對針對 Azure Digital Twins 服務提出的所有 API 要求計數計費計量。 計量識別碼
BillingMessagesProcessed 已處理帳單訊息 計數 總數 從 Azure Digital Twins 傳送至外部端點之訊息數目的計費計量。

若要將單一訊息視為計費用途,承載不得大於 1 KB。 大於此限制的承載會以 1 KB 遞增計算額外的訊息(因此,介於 1 KB 到 2 KB 之間的訊息會計算為 2 則訊息,介於 2 KB 到 3 KB 之間將會是 3 則訊息等等)。
這項限制也適用于回應,因此在回應本文中傳回 1.5 KB 的呼叫,例如,會以 2 個作業計費。
計量識別碼
BillingQueryUnits 計費查詢單位 計數 總數 查詢單位數目,這是服務資源使用量的內部計算量值,用來執行查詢。 也有協助程式 API 可用於測量查詢單位: QueryChargeHelper 類別 計量識別碼

如需 Azure Digital Twins 計費方式的詳細資訊,請參閱 Azure Digital Twins 定價

輸入計量

計量與資料輸入有關:

計量 計量顯示名稱 單位 彙總類型 描述 維度
IngressEvents 輸入事件 計數 總數 Azure Digital Twins 中的傳入裝置遙測事件數目。 結果
IngressEventsFailureRate 輸入事件失敗率 Percent 平均 服務傳回內部錯誤 (500) 回應碼的連入裝置遙測事件百分比。 結果
IngressEventsLatency 輸入事件延遲 毫秒 平均 從事件到達準備由 Azure Digital Twins 輸出的事件到該時間點,服務就會傳送成功/失敗的結果。 結果

大量作業計量(來自作業 API)

必須從作業 API 進行大量作業的 計量

計量 計量顯示名稱 單位 彙總類型 描述 維度
ImportJobLatency 匯入作業延遲 毫秒 平均 匯入作業完成所花費的總時間。 操作
認證
通訊協定
ImportJobEntityCount 匯入作業實體計數 計數 總數 匯入作業所處理的對應項、模型或關聯性數目。 操作
結果
DeleteJobLatency 刪除作業延遲 毫秒 平均 刪除作業完成所花費的總時間。 操作
認證
通訊協定
DeleteJobEntityCount 刪除作業實體計數 計數 總數 刪除作業一部分刪除的模型、對應項和/或關聯性數目。 操作
結果

路由計量

計量與路由有關:

計量 計量顯示名稱 單位 彙總類型 描述 維度
MessagesRouted 路由的訊息 計數 總數 路由至端點 Azure 服務 (例如事件中樞、服務匯流排或事件方格) 的訊息數目。 端點類型,
結果
RoutingFailureRate 路由失敗率 Percent 平均 從 Azure Digital Twins 路由傳送至端點 Azure 服務時,導致錯誤的百分比,例如事件中樞、服務匯流排或事件方格。 端點類型,
結果
RoutingLatency 路由延遲 毫秒 平均 事件從 Azure Digital Twins 路由傳送至事件張貼至端點 Azure 服務的時間,例如事件中樞、服務匯流排或事件方格。 端點類型,
結果

計量維度

維度可協助識別計量的更多詳細資料。 某些路由計量會提供每個端點的資訊。 下表列出這些維度的可能值。

維度
驗證 OAuth
作業 (API 要求) Microsoft.DigitalTwins/digitaltwins/delete、
Microsoft.DigitalTwins/digitaltwins/write,
Microsoft.DigitalTwins/digitaltwins/read、
Microsoft.DigitalTwins/eventroutes/read,
Microsoft.DigitalTwins/eventroutes/write,
Microsoft.DigitalTwins/eventroutes/delete,
Microsoft.DigitalTwins/models/read,
Microsoft.DigitalTwins/models/write,
Microsoft.DigitalTwins/models/delete,
Microsoft.DigitalTwins/query/action
端點類型 事件方格、
事件中樞,
服務匯流排
通訊協定 HTTPS
結果 成功
失敗
狀態碼 200、404、500 等等。
狀態碼類別 2xx、4xx、5xx 等等。
狀態文字 內部伺服器錯誤、找不到等等。

診斷記錄

如需 Azure 診斷設定的一般資訊,包括如何啟用這些設定 ,請參閱 Azure 監視器 中的診斷設定。 如需使用 Log Analytics 查詢診斷記錄的相關資訊,請參閱 Azure 監視器 中的 Log Analytics 概觀。

本節的其餘部分說明 Azure Digital Twins 可以收集的診斷記錄類別及其架構。

記錄類別

以下是 Azure Digital Twins 所收集各種記錄的詳細資料。

記錄類別 描述
ADTModelsOperation 記錄所有與模型相關的 API 呼叫
ADTQueryOperation 記錄所有與查詢相關的 API 呼叫
ADTEventRoutesOperation 將所有與事件路由和事件從 Azure Digital Twins 輸出相關的 API 通話記錄到事件方格、事件中樞和服務匯流排
ADTDigitalTwinsOperation 記錄與個別對應項相關的所有 API 呼叫

每個記錄類別都包含寫入、讀取、刪除和動作的操作。 這些類別會對應至 REST API 呼叫,如下所示:

事件類型 REST API 操作
寫入 PUT 和 PATCH
參閱 GET
刪除 DELETE
動作 POST

以下是記錄在每個類別中之作業和對應的 Azure Digital Twins REST API 呼叫 的完整清單。

注意

每個記錄類別都包含數個操作/REST API 呼叫。 在下表中,每個記錄類別都會對應至其底下的所有作業/REST API 呼叫,直到列出下一個記錄類別為止。

記錄類別 作業 REST API 呼叫和其他事件
ADTModelsOperation Microsoft.DigitalTwins/models/write 數位對應項模型更新 API
Microsoft.DigitalTwins/models/read 數位對應項模型依識別碼和清單 API 取得
Microsoft.DigitalTwins/models/delete 數位對應項模型刪除 API
Microsoft.DigitalTwins/models/action 數位對應項模型新增 API
ADTQueryOperation Microsoft.DigitalTwins/query/action 查詢對應項 API
ADTEventRoutesOperation Microsoft.DigitalTwins/eventroutes/write 事件路由新增 API
Microsoft.DigitalTwins/eventroutes/read 事件路由依識別碼和清單 API 取得
Microsoft.DigitalTwins/eventroutes/delete 事件路由刪除 API
Microsoft.DigitalTwins/eventroutes/action 嘗試將事件發佈至端點服務時失敗(而非 API 呼叫)
ADTDigitalTwinsOperation Microsoft.DigitalTwins/digitaltwins/write Digital Twins 新增、新增關聯性、更新、更新元件
Microsoft.DigitalTwins/digitaltwins/read 數位對應項依識別碼取得、取得元件、依識別碼取得關聯性、列出傳入關聯性、清單關聯性
Microsoft.DigitalTwins/digitaltwins/delete Digital Twins Delete、Delete Relationship
Microsoft.DigitalTwins/digitaltwins/action Digital Twins 傳送元件遙測、傳送遙測

記錄結構描述

每個類別都有一個結構描述,定義該類別中的事件報告方式。 每個個別的記錄項目會儲存為文字,並格式化為 JSON Blob。 下列針對每個記錄類型提供記錄和範例 JSON 主體中的欄位。

ADTDigitalTwinsOperationADTModelsOperationADTQueryOperation 使用一致的 API 記錄架構。 ADTEventRoutesOperation 擴充架構以包含 endpointName 屬性中的欄位。

API 記錄結構描述

、、 ADTModelsOperationADTQueryOperation 的這個記錄架構是一致的 ADTDigitalTwinsOperation 。 相同的架構也會用於 ADTEventRoutesOperation ,但作業名稱除外 Microsoft.DigitalTwins/eventroutes/action (如需該架構的詳細資訊,請參閱下一節 的輸出記錄架構 )。

架構包含 API 呼叫 Azure Digital Twins 實例的相關資訊。

以下說明 API 記錄的欄位和屬性描述。

欄位名稱 資料類型 描述
Time Datetime 此事件的發生日期和時間,以 UTC 為單位
ResourceId String 事件發生之資源的 Azure Resource Manager 資源識別碼
OperationName String 事件期間執行的動作類型
OperationVersion String 事件期間使用的 API 版本
Category String 所發出的資源類型
ResultType String 事件的結果
ResultSignature String 事件的 Http 狀態碼
ResultDescription String 事件的其他詳細資料
DurationMs String 以毫秒為單位執行事件所花費的時間
CallerIpAddress String 事件的遮罩來源 IP 位址
CorrelationId GUID 事件的唯一識別碼
ApplicationId GUID 持有人授權中使用的應用程式識別碼
Level int 事件的記錄嚴重性
Location String 事件發生所在的區域
RequestUri URI 事件期間使用的端點
TraceId String TraceId,做為 W3C 追蹤內容的 一部分 。 用來唯一識別跨系統分散式追蹤之整個追蹤的識別碼。
SpanId String SpanId作為 W3C 追蹤內容的 一部分 。 追蹤中這個要求的識別碼。
ParentId String ParentId作為 W3C 追蹤內容的 一部分 。 沒有父識別碼的要求是追蹤的根目錄。
TraceFlags String TraceFlags作為 W3C 追蹤內容的 一部分 。 控制追蹤旗標,例如取樣、追蹤層級等等。
TraceState String TraceState作為 W3C 追蹤內容的 一部分 。 其他廠商特定的追蹤識別資訊,可跨越不同的分散式追蹤系統。

以下是這些記錄類型的 JSON 主體範例。

ADTDigitalTwinsOperation
{
  "time": "2020-03-14T21:11:14.9918922Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/digitaltwins/write",
  "operationVersion": "2020-10-31",
  "category": "DigitalTwinOperation",
  "resultType": "Success",
  "resultSignature": "200",
  "resultDescription": "",
  "durationMs": 8,
  "callerIpAddress": "13.68.244.*",
  "correlationId": "2f6a8e64-94aa-492a-bc31-16b9f0b16ab3",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/digitaltwins/factory-58d81613-2e54-4faa-a930-d980e6e2a884?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTModelsOperation
{
  "time": "2020-10-29T21:12:24.2337302Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/models/write",
  "operationVersion": "2020-10-31",
  "category": "ModelsOperation",
  "resultType": "Success",
  "resultSignature": "201",
  "resultDescription": "",
  "durationMs": "80",
  "callerIpAddress": "13.68.244.*",
  "correlationId": "9dcb71ea-bb6f-46f2-ab70-78b80db76882",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/Models?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTQueryOperation
{
  "time": "2020-12-04T21:11:44.1690031Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/query/action",
  "operationVersion": "2020-10-31",
  "category": "QueryOperation",
  "resultType": "Success",
  "resultSignature": "200",
  "resultDescription": "",
  "durationMs": "314",
  "callerIpAddress": "13.68.244.*",
  "correlationId": "1ee2b6e9-3af4-4873-8c7c-1a698b9ac334",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/query?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTEventRoutesOperation

以下是 類型不是 Microsoft.DigitalTwins/eventroutes/action 的範例 JSON 主體 ADTEventRoutesOperation (如需該架構的詳細資訊,請參閱下一節 輸出記錄架構 )。

  {
    "time": "2020-10-30T22:18:38.0708705Z",
    "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
    "operationName": "Microsoft.DigitalTwins/eventroutes/write",
    "operationVersion": "2020-10-31",
    "category": "EventRoutesOperation",
    "resultType": "Success",
    "resultSignature": "204",
    "resultDescription": "",
    "durationMs": 42,
    "callerIpAddress": "212.100.32.*",
    "correlationId": "7f73ab45-14c0-491f-a834-0827dbbf7f8e",
    "identity": {
      "claims": {
        "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
      }
    },
    "level": "4",
    "location": "southcentralus",
    "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/EventRoutes/egressRouteForEventHub?api-version=2020-10-31",
    "properties": {},
    "traceContext": {
      "traceId": "95ff77cfb300b04f80d83e64d13831e7",
      "spanId": "b630da57026dd046",
      "parentId": "9f0de6dadae85945",
      "traceFlags": "01",
      "tracestate": "k1=v1,k2=v2"
    }
  },

輸出記錄結構描述

下列範例是作業名稱專屬記錄的 Microsoft.DigitalTwins/eventroutes/action 架構 ADTEventRoutesOperation 。 這些包含與連線至 Azure Digital Twins 實例之輸出端點相關的例外狀況和 API 作業的相關詳細資料。

欄位名稱 資料類型 描述
Time Datetime 此事件的發生日期和時間,以 UTC 為單位
ResourceId String 事件發生之資源的 Azure Resource Manager 資源識別碼
OperationName String 事件期間執行的動作類型
Category String 所發出的資源類型
ResultDescription String 事件的其他詳細資料
CorrelationId GUID 客戶提供事件的唯一識別碼
ApplicationId GUID 持有人授權中使用的應用程式識別碼
Level int 事件的記錄嚴重性
Location String 事件發生所在的區域
TraceId String TraceId,做為 W3C 追蹤內容的 一部分 。 用來唯一識別跨系統分散式追蹤之整個追蹤的識別碼。
SpanId String SpanId作為 W3C 追蹤內容的 一部分 。 追蹤中這個要求的識別碼。
ParentId String ParentId作為 W3C 追蹤內容的 一部分 。 沒有父識別碼的要求是追蹤的根目錄。
TraceFlags String TraceFlags作為 W3C 追蹤內容的 一部分 。 控制追蹤旗標,例如取樣、追蹤層級等等。
TraceState String TraceState作為 W3C 追蹤內容的 一部分 。 其他廠商特定的追蹤識別資訊,可跨越不同的分散式追蹤系統。
EndpointName String 在 Azure Digital Twins 中建立的輸出端點名稱

以下是 類型的 Microsoft.DigitalTwins/eventroutes/action 範例 JSON 主體 ADTEventRoutesOperation

{
  "time": "2020-11-05T22:18:38.0708705Z",
  "resourceId": "/SUBSCRIPTIONS/BBED119E-28B8-454D-B25E-C990C9430C8F/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/eventroutes/action",
  "operationVersion": "",
  "category": "EventRoutesOperation",
  "resultType": "",
  "resultSignature": "",
  "resultDescription": "Unable to send EventHub message to [myPath] for event Id [f6f45831-55d0-408b-8366-058e81ca6089].",
  "durationMs": -1,
  "callerIpAddress": "",
  "correlationId": "7f73ab45-14c0-491f-a834-0827dbbf7f8e",
  "identity": {
    "claims": {
      "appId": "872cd9fa-d31f-45e0-9eab-6e460a02d1f1"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "",
  "properties": {
    "endpointName": "myEventHub"
  },
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
},

下一步

在 Azure 監視器檔中 深入瞭解 Azure 監視器及其功能