監視 Azure IoT 中樞資料參考
若要開始使用 Azure 監視,請參閱監視 Azure IoT 中樞,以了解如何收集和分析Azure IoT 中樞的監視資料。
本文是實作 Azure 監視的參考。
本參考文章中的主要章節:
計量:依主題區分的 IoT 中樞平台計量清單
計量維度:路由和事件方格計量的維度
資源記錄:依類別類型和針對Azure IoT 中樞收集的架構記錄
Azure 監視器記錄資料表:討論 Azure 監視器記錄 Kusto 資料表
或者,直接移至 Azure 監視器記錄資料表參考。
計量
本節列出為 Azure IoT 中樞自動收集的所有平台計量。 IoT 中樞計量的資源提供者命名空間是 Microsoft.Devices,而命名空間類型為 IoTHubs。
下列子區段會依一般類別顯示IoT 中樞平台計量,並依 Azure 入口網站中指派的顯示名稱列出計量。
您也可以在 Azure 監視器文件中的 Microsoft.Devices/IotHubs 底下依計量名稱列出所有 IoT 中樞平台計量的單一資料表。 此資料表並未提供所有資訊,例如在本文中某些計量支援的彙總。
如要深入了解 Azure 入口網站中支援的計量,請參閱 Azure 監視器所支援的計量。
本節主題
選取主題以跳至此頁面上的資訊。
- 支援的彙總
- 雲端傳送至裝置命令計量
- 雲端傳送至裝置直接方法計量
- 雲端傳送至裝置對應項作業計量
- 組態計量
- 每日配額計量
- 裝置計量
- 裝置遙測計量
- 裝置傳送至雲端對應項作業計量
- 事件方格計量
- 作業計量
- 路由計量
- 對應項查詢計量
支援的彙總
每個資料表中的 [彙總類型] 資料行會對應至選取圖表或警示計量時所使用的預設彙總。
對於大部分的計量而言,所有匯總類型皆為有效;不過,對於單位資料行值為計數的計數計量,只有一些彙總有效。 計數計量可以是下列兩種類型之一:
針對單一點計數計量,IoT 中樞每次測量作業時,都會註冊單一資料點 (基本上是 1 個)。 接著,Azure 監視器會將這些資料點加總至指定的細微性。 單一點計量的範例包括已傳送的「遙測」訊息,以及 已完成的 C2D 訊息傳遞。 對於這些計量,唯一相關的匯總類型為 Total (Sum)。 入口網站可讓您選擇最小值、最大值和平均值;不過,這些值一律為 1。
針對快照集計數計量,IoT 中樞在測量作業發生時註冊總計計數。 目前,IoT 中樞發出的快照集計量有三個:使用的訊息總數、裝置總計,以及連線裝置。 由於這些計量會在每次發出時呈現「總計」數量,因此在指定的資料細微性上加總它們並無意義。 Azure 監視器會限制您為這些計量選取匯總類型的平均、最小值和最大值。
雲端傳送至裝置命令計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
已過期的 C2D 訊息 | C2DMessagesExpired | Count | 總計 | 已過期的雲端到裝置訊息數目 | 無 |
已完成的 C2D 訊息傳遞 | c2d.commands.egress.complete.success | Count | 總計 | 裝置成功完成的雲端到裝置訊息傳遞數目 | 無 |
已放棄的 C2D 訊息 | c2d.commands.egress.abandon.success | Count | 總計 | 裝置放棄的雲端到裝置訊息數目 | 無 |
已拒絕的 C2D 訊息 | c2d.commands.egress.reject.success | Count | 總計 | 裝置拒絕的雲端至裝置訊息數目 | 無 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
雲端傳送至裝置直接方法計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
失敗直接方法叫用 | c2d.methods.failure | Count | 總計 | 所有失敗直接方法呼叫的計數。 | 無 |
直接方法叫用的要求大小 | c2d.methods.requestSize | 位元組 | Average | 所有成功直接方法要求的計數。 | 無 |
直接方法叫用的回應大小 | c2d.methods.responseSize | 位元組 | Average | 所有成功直接方法回應的計數。 | 無 |
成功直接方法叫用 | c2d.methods.success | Count | 總計 | 所有成功直接方法呼叫的計數。 | 無 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
雲端傳送至裝置對應項作業計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
後端的失敗對應項讀取 | c2d.twin.read.failure | Count | 總計 | 後端起始的所有失敗對應項讀取的計數。 | 無 |
後端的失敗對應項更新 | c2d.twin.update.failure | Count | 總計 | 後端起始的所有失敗對應項更新的計數。 | 無 |
後端的對應項讀取回應大小 | c2d.twin.read.size | 位元組 | Average | 後端起始的所有成功對應項讀取的計數。 | 無 |
後端的對應項更新大小 | c2d.twin.update.size | 位元組 | Average | 後端起始的所有成功對應項更新的總大小。 | 無 |
後端的成功對應項讀取 | c2d.twin.read.success | Count | 總計 | 後端起始的所有成功對應項讀取的計數。 | 無 |
後端的成功對應項更新 | c2d.twin.update.success | Count | 總計 | 後端起始的所有成功對應項更新的計數。 | 無 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
組態計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
設定計量 | 組態 | Count | 總計 | 在一組目標裝置上,針對裝置組態和 IoT Edge 部署所執行的 CRUD 作業總數。 這包括因為這些設定而修改裝置對應項或模組對應項的作業數目。 | 無 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
每日配額計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
裝置資料使用量總計 | deviceDataUsage | 位元組 | 總計 | 傳輸至任何已連線至 IotHub 之裝置或從該裝置傳出的位元組數 | 無 |
裝置資料使用量總計 (預覽) | deviceDataUsageV2 | 位元組 | 總計 | 傳輸至任何已連線至 IotHub 之裝置或從該裝置傳出的位元組數 | 無 |
已使用的訊息總數 | dailyMessageQuotaUsed | Count | Average | 今日已使用的總訊息數。 此累計值會在每天的 00:00 UTC 重設為零。 | 無 |
針對使用的訊息總數,僅支援最小值、最大值和平均彙總。 如需詳細資訊,請參閱 支援的彙總。
裝置計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
裝置總計 (已淘汰) | devices.totalDevices | Count | 總計 | 向 IoT 中樞註冊的裝置數目 | 無 |
連接的裝置 (已淘汰) | devices.connectedDevices.allProtocol | Count | 總計 | 連接至 IoT 中樞的裝置數目 | 無 |
裝置總計 | totalDeviceCount | Count | Average | 向 IoT 中樞註冊的裝置數目 | 無 |
已連線的裝置 | connectedDeviceCount | Count | Average | 連接至 IoT 中樞的裝置數目 | 無 |
對於 [裝置總計 (已淘汰)] 和 [連線裝置 (已淘汰)],只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
對於裝置總計和連線裝置,只有最小、最大值和平均彙總為有效。 如需詳細資訊,請參閱 支援的彙總。
無法透過診斷設定匯出裝置總數和連線裝置。
裝置遙測計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
節流錯誤數目 | d2c.telemetry.ingress.sendThrottle | Count | 總計 | 因裝置輸送量節流而導致的節流錯誤數目 | 無 |
遙測「訊息傳送」嘗試 | d2c.telemetry.ingress.allProtocol | Count | 總計 | 要嘗試傳送至您 IoT 中樞的裝置到雲端遙測訊息數目 | 無 |
已傳送的遙測訊息 | d2c.telemetry.ingress.success | Count | 總計 | 成功傳送至您 IoT 中樞的裝置到雲端遙測訊息數目 | 無 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
裝置傳送至雲端對應項作業計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
裝置的失敗對應項讀取 | d2c.twin.read.failure | Count | 總計 | 裝置起始的所有失敗對應項讀取的計數。 | 無 |
裝置的失敗對應項更新 | d2c.twin.update.failure | Count | 總計 | 裝置起始的所有失敗對應項更新的計數。 | 無 |
裝置的對應項讀取回應大小 | d2c.twin.read.size | 位元組 | Average | 所有裝置起始的成功對應項讀取數目。 | 無 |
裝置的對應項更新大小 | d2c.twin.update.size | 位元組 | Average | 所有裝置起始的成功對應項更新數目。 | 無 |
裝置的成功對應項讀取 | d2c.twin.read.success | Count | 總計 | 裝置起始的所有成功對應項讀取的計數。 | 無 |
裝置的成功對應項更新 | d2c.twin.update.success | Count | 總計 | 裝置起始的所有成功對應項更新的計數。 | 無 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
事件方格計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
事件方格傳遞 | EventGridDeliveries | Count | 總計 | 發佈至事件方格的 IoT 中樞事件數目。 針對成功和失敗的要求數目的使用「結果」維度。 EventType 維度會顯示事件類型 (https://aka.ms/ioteventgrid)。 | Result, EventType 如需詳細資訊,請參閱 計量維度。 |
事件方格延遲 | EventGridLatency | 毫秒 | Average | 從產生 IoT 中樞事件到事件發佈至事件方格的平均延遲 (以毫秒為單位)。 此數值是所有事件類型之間的平均值。 使用 EventType 維度來查看特定事件類型的延遲。 | EventType 如需詳細資訊,請參閱 計量維度。 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
作業計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
已完成的工作 | jobs.completed | Count | 總計 | 所有已完成的作業計數。 | 無 |
呼叫列出作業失敗 | jobs.listJobs.failure | Count | 總計 | 所有呼叫列出作業失敗的計數。 | 無 |
建立失敗的方法叫用作業 | jobs.createDirectMethodJob.failure | Count | 總計 | 所有建立失敗的直接方法叫用作業計數。 | 無 |
建立失敗的對應項更新作業 | jobs.createTwinUpdateJob.failure | Count | 總計 | 所有建立失敗的對應項更新作業計數。 | 無 |
取消作業失敗 | jobs.cancelJob.failure | Count | 總計 | 所有呼叫取消作業失敗的計數。 | 無 |
失敗作業查詢 | jobs.queryJobs.failure | Count | 總計 | 所有呼叫查詢作業失敗的計數。 | 無 |
失敗作業 | jobs.failed | Count | 總計 | 所有失敗作業計數。 | 無 |
成功呼叫列出作業 | jobs.listJobs.success | Count | 總計 | 所有成功呼叫列出作業的計數。 | 無 |
成功建立的方法叫用作業 | jobs.createDirectMethodJob.success | Count | 總計 | 所有成功建立的直接方法叫用作業計數。 | 無 |
成功建立的對應項更新作業 | jobs.createTwinUpdateJob. 成功 |
Count | 總計 | 所有成功建立的對應項更新作業計數。 | 無 |
成功取消作業 | jobs.cancelJob.success | Count | 總計 | 所有成功呼叫取消作業的計數。 | 無 |
成功作業查詢 | jobs.queryJobs.success | Count | 總計 | 所有成功呼叫查詢作業的計數。 | 無 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
路由計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
路由傳遞 (預覽) | RoutingDeliveries | Count | 總計 | 路由傳遞計量。 使用維度來識別特定端點或特定路由來源的傳遞狀態。 | Result, RoutingSource, endpointType, FailureReasonCategory, EndpointName 如需詳細資訊,請參閱 計量維度。 |
路由傳遞訊息大小 (以位元組為單位) (預覽) | RoutingDataSizeInBytesDelivered | 位元組 | 總計 | IoT 中樞路由傳送至自訂端點和內建端點的位元組總數。 使用維度來識別特定端點或特定路由來源的傳遞狀態。 | RoutingSource, EndpointType EndpointName 如需詳細資訊,請參閱 計量維度。 |
路由傳遞延遲 (預覽) | RoutingDeliveryLatency | 毫秒 | Average | 路由傳遞延遲計量。 使用維度來識別特定端點或特定路由來源的傳遞狀態。 | RoutingSource, endpointType, EndpointName 如需詳細資訊,請參閱 計量維度。 |
路由:傳遞至儲存體的 BLOB | d2c.endpoints.egress.storage.blobs | Count | 總計 | IoT 中樞路由將 BLOB 傳遞至儲存體端點的次數。 | 無 |
路由:傳遞至儲存體的資料 | d2c.endpoints.egress.storage.bytes | 位元組 | 總計 | IoT 中樞路由傳遞至儲存體端點的資料量 (位元組)。 | 無 |
路由:事件中樞的訊息延遲 | d2c.endpoints.latency.eventHubs | 毫秒 | Average | 訊息輸入到 IoT 中樞與訊息輸入到自訂端點之間的平均延遲 (以毫秒計)。 不包括訊息路由至內建端點 (事件)。 | 無 |
路由:服務匯流排佇列的訊息延遲 | d2c.endpoints.latency.serviceBusQueues | 毫秒 | Average | 訊息輸入到 IoT 中樞與遙測訊息輸入到「服務匯流排」佇列端點間的平均延遲 (以毫秒計)。 | 無 |
路由:服務匯流排主題的訊息延遲 | d2c.endpoints.latency.serviceBusTopics | 毫秒 | Average | 訊息輸入到 IoT 中樞與遙測訊息輸入到「服務匯流排」佇列端點間的平均延遲 (以毫秒計)。 | 無 |
路由:訊息/事件的訊息延遲 | d2c.endpoints.latency.builtIn.events | 毫秒 | Average | 訊息輸入到 IoT 中樞與遙測訊息輸入至內建端點 (訊息/事件) 與後援路由間的平均延遲 (以毫秒計)。 | 無 |
路由:儲存體的訊息延遲 | d2c.endpoints.latency.storage | 毫秒 | Average | 訊息輸入到 IoT 中樞與遙測訊息輸入到儲存體端點間的平均延遲 (以毫秒計)。 | 無 |
路由:傳遞至事件中樞的訊息 | d2c.endpoints.egress.eventHubs | Count | 總計 | IoT 中樞路由成功將訊息傳遞至自訂端點事件中樞類型的數目。 不包括訊息路由至內建端點 (事件)。 | 無 |
路由:傳遞至服務匯流排佇列的訊息 | d2c.endpoints.egress.serviceBusQueues | Count | 總計 | IoT 中樞路由成功將訊息傳遞至服務匯流排佇列端點的次數。 | 無 |
路由:傳遞至服務匯流排主題的訊息 | d2c.endpoints.egress.serviceBusTopics | Count | 總計 | IoT 中樞路由成功將訊息傳遞至服務匯流排主題端點的次數。 | 無 |
路由:傳遞至後援的訊息 | d2c.telemetry.egress.fallback | Count | 總計 | IoT 中樞路由傳遞訊息至與後援路由相關聯之端點的次數。 | 無 |
路由:傳遞至訊息/事件的訊息 | d2c.endpoints.egress.builtIn.events | Count | 總計 | IoT 中樞路由成功將訊息傳遞至內建端點 (訊息/事件) 與後援路由間的數目。 | 無 |
路由:傳遞至儲存體的訊息 | d2c.endpoints.egress.storage | Count | 總計 | IoT 中樞路由成功將訊息傳遞至儲存體端點的次數。 | 無 |
路由:已傳遞的遙測訊息 | d2c.telemetry.egress.success | Count | 總計 | 使用 IoT 中樞路由成功地將訊息傳遞到所有端點的次數。 如果將訊息路由至多個端點,這個值會為每一次成功傳遞加 1。 如果將訊息多次傳遞到同一個端點,這個值會為每一次成功傳遞加 1。 | 無 |
路由:已捨棄的遙測訊息 | d2c.telemetry.egress.dropped | Count | 總計 | IoT 中樞路由因為端點無效而捨棄訊息的次數。 這個值不會計算傳遞到後援路由的訊息,因為捨棄的訊息不會傳遞到那裡。 | 無 |
路由:不相容的遙測訊息 | d2c.telemetry.egress.invalid | Count | 總計 | IoT 中樞路由因為與端點不相容而無法傳遞訊息的次數。 當 Iot 中樞嘗試將訊息傳遞至端點時,訊息與端點不相容,並且敗於發生非暫時性錯誤。 不重試不正確訊息。 這個值不包含重試次數。 | 無 |
路由:已遺棄的遙測訊息 | d2c.telemetry.egress.orphaned | Count | 總計 | IoT 中樞路由因為訊息不符合任何路由查詢 (當後援路由遭停用) 而遺棄訊息的次數。 | 無 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
對應項查詢計量
計量顯示名稱 | 計量 | 單位 | 彙總類型 | 描述 | 維度 |
---|---|---|---|---|---|
失敗對應項查詢 | twinQueries.failure | Count | 總計 | 所有失敗對應項查詢的計數。 | 無 |
成功對應項查詢 | twinQueries.success | Count | 總計 | 所有成功對應項查詢的計數。 | 無 |
對應項查詢結果大小 | twinQueries.resultSize | 位元組 | Average | 所有成功對應項查詢結果的總大小。 | 無 |
對於 [計數] 值為 [單位] 的計量,只有總計 (總和) 彙總為有效。 最小值、最大值和平均彙總一律會傳回 1。 如需詳細資訊,請參閱 支援的彙總。
載入計量維度
Azure IoT 中樞具有下列維度,與部分路由和事件方格計量相關聯。
維度名稱 | 描述 |
---|---|
EndpointName | 端點名稱 |
EndpointType | eventHubs、serviceBusQueues、cosmosDB、serviceBusTopics。 builtin 或 blobStorage |
EventType | Microsoft.Devices.DeviceCreated. Microsoft.Devices.DeviceDeleted、Microsoft.Devices.DeviceConnected、Microsoft.Devices.DeviceDisconnected 或 Microsoft.Devices.DeviceTelemetry 如需詳細資訊,請參閱事件類型。 |
FailureReasonCategory | 下列其中一項:無效、卸除、孤立或Null。 |
結果 | 成功或失敗 |
RoutingSource | 裝置訊息 對應項變更事件 裝置生命週期事件 |
如要深入瞭解計量維度,請參閱多維度計量。
資源記錄
本節列出針對 Azure IoT 中樞收集的所有資源記錄類別目錄類型和結構描述。 所有 IoT 中樞記錄的資源提供者和類型都是 Microsoft.Devices/IotHubs。 系統只會針對一些類別中的錯誤發出事件。
本節主題
連接
連線類別會追蹤來自 IoT 中樞的裝置連線和中斷連線事件以及錯誤。 此類別對於識別未經授權的連線嘗試,及/或在遺失裝置連線時發出警示非常有用。
如需裝置的可靠連線狀態,請參閱監視裝置連線狀態。
{
"records":
[
{
"time": " UTC timestamp",
"resourceId": "Resource Id",
"operationName": "deviceConnect",
"category": "Connections",
"level": "Information",
"properties": "{\"deviceId\":\"<deviceId>\",\"sdkVersion\":\"<sdkVersion>\",\"protocol\":\"<protocol>\",\"authType\":\"{\\\"scope\\\":\\\"device\\\",\\\"type\\\":\\\"sas\\\",\\\"issuer\\\":\\\"iothub\\\",\\\"acceptingIpFilterRule\\\":null}\",\"maskedIpAddress\":\"<maskedIpAddress>\"}",
"location": "Resource location"
}
]
}
如需使用連線記錄來監視裝置連線的詳細資訊,請參閱 監視、診斷和疑難排解裝置連線能力至 Azure IoT 中樞。
裝置遙測
裝置遙測類別會追蹤在 IoT 中樞發生,且與遙測管線相關的錯誤。 此類別包括在傳送遙測事件 (例如節流) 和接收遙測事件 (例如未經授權的讀取器) 時所發生的錯誤。 這個類別無法捕捉裝置本身所執行之程式碼所造成的錯誤。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "ingress",
"category": "DeviceTelemetry",
"level": "Error",
"resultType": "Event status",
"resultDescription": "MessageDescription",
"properties": "{\"deviceId\":\"<deviceId>\",\"batching\":\"0\",\"messageSizeInBytes\":\"<messageSizeInBytes>\",\"EventProcessedUtcTime\":\"<UTC timestamp>\",\"EventEnqueuedUtcTime\":\"<UTC timestamp>\",\"partitionId\":\"1\"}",
"location": "Resource location"
}
]
}
雲端到裝置的命令
雲端到裝置的命令類別會追蹤在 IoT 中樞發生,且與雲端到裝置訊息管線相關的錯誤。 此類別包括發生自下列動作的錯誤:
- 傳送雲端到裝置訊息 (例如未經授權的寄件者錯誤)、
- 接收雲端到裝置訊息 (例如已超過傳遞計數錯誤),以及
- 接收雲端到裝置訊息意見反應 (例如意見反應已過期的錯誤)。
當雲端到裝置訊息成功傳遞但裝置未正確處理時,此類別不會攔截錯誤。
{
"records":
[
{
"time": " UTC timestamp",
"resourceId": "Resource Id",
"operationName": "messageExpired",
"category": "C2DCommands",
"level": "Error",
"resultType": "Event status",
"resultDescription": "MessageDescription",
"properties": "{\"deviceId\":\"<deviceId>\",\"messageId\":\"<messageId>\",\"messageSizeInBytes\":\"<messageSize>\",\"protocol\":\"Amqp\",\"deliveryAcknowledgement\":\"<None, NegativeOnly, PositiveOnly, Full>\",\"deliveryCount\":\"0\",\"expiryTime\":\"<timestamp>\",\"timeInSystem\":\"<timeInSystem>\",\"ttl\":<ttl>, \"EventProcessedUtcTime\":\"<UTC timestamp>\",\"EventEnqueuedUtcTime\":\"<UTC timestamp>\", \"maskedIpAddress\": \"<maskedIpAddress>\", \"statusCode\": \"4XX\"}",
"location": "Resource location"
}
]
}
裝置身分識別作業
裝置身分識別作業類別會追蹤您嘗試在其 IoT 中樞的身分識別登錄中建立、更新或刪除項目時所發生的錯誤。 佈建案例就很適合追蹤此類別。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "get",
"category": "DeviceIdentityOperations",
"level": "Error",
"resultType": "Event status",
"resultDescription": "MessageDescription",
"properties": "{\"maskedIpAddress\":\"<maskedIpAddress>\",\"deviceId\":\"<deviceId>\", \"statusCode\":\"4XX\"}",
"location": "Resource location"
}
]
}
檔案上傳作業
檔案上傳類別會追蹤在 IoT 中樞發生且與檔案上傳功能相關的錯誤。 此類別包括︰
SAS URI 所發生的錯誤,例如當它在裝置通知中樞已完成上傳之前就到期時。
裝置所報告的失敗上傳。
IoT 中樞通知訊息建立期間在儲存體中找不到檔案時所發生的錯誤。
此類別無法捕捉直接發生在裝置將檔案上傳到儲存體時的錯誤。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "ingress",
"category": "FileUploadOperations",
"level": "Error",
"resultType": "Event status",
"resultDescription": "MessageDescription",
"durationMs": "1",
"properties": "{\"deviceId\":\"<deviceId>\",\"protocol\":\"<protocol>\",\"authType\":\"{\\\"scope\\\":\\\"device\\\",\\\"type\\\":\\\"sas\\\",\\\"issuer\\\":\\\"iothub\\\",\\\"acceptingIpFilterRule\\\":null}\",\"blobUri\":\"http//bloburi.com\"}",
"location": "Resource location"
}
]
}
路由
訊息路由類別會在訊息路由評估期間追蹤發生的錯誤以及 IoT 中樞所認知的端點健康情況。 此類別包括下列事件,例如:
- 規則評估為「未定義」、
- IoT 中樞將端點標示為無效,或
- 從端點收到的任何錯誤。
此類別不包含有關訊息本身的特定錯誤 (例如裝置節流錯誤),這些是在「裝置遙測」類別下報告。
{
"records":
[
{
"time":"2019-12-12T03:25:14Z",
"resourceId":"/SUBSCRIPTIONS/91R34780-3DEC-123A-BE2A-213B5500DFF0/RESOURCEGROUPS/ANON-TEST/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/ANONHUB1",
"operationName":"endpointUnhealthy",
"category":"Routes",
"level":"Error",
"resultType":"403004",
"resultDescription":"DeviceMaximumQueueDepthExceeded",
"properties":"{\"deviceId\":null,\"endpointName\":\"anon-sb-1\",\"messageId\":null,\"details\":\"DeviceMaximumQueueDepthExceeded\",\"routeName\":null,\"statusCode\":\"403\"}",
"location":"westus"
}
]
}
以下是路由資源記錄的詳細資料:
裝置到雲端對應項作業
裝置到雲端對應項作業類別會追蹤裝置對應項上裝置起始的事件。 這些作業可能包括取得對應項、更新回報的屬性,以及訂閱所需的屬性。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "update",
"category": "D2CTwinOperations",
"level": "Information",
"durationMs": "1",
"properties": "{\"deviceId\":\"<deviceId>\",\"protocol\":\"<protocol>\",\"authenticationType\":\"{\\\"scope\\\":\\\"device\\\",\\\"type\\\":\\\"sas\\\",\\\"issuer\\\":\\\"iothub\\\",\\\"acceptingIpFilterRule\\\":null}\"}",
"location": "Resource location"
}
]
}
雲端到裝置對應項作業
雲端到裝置對應項作業類別會追蹤裝置對應項上服務起始的事件。 這些作業可能包括取得對應項、更新或取代標記,以及更新或取代所需的屬性。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "read",
"category": "C2DTwinOperations",
"level": "Information",
"durationMs": "1",
"properties": "{\"deviceId\":\"<deviceId>\",\"sdkVersion\":\"<sdkVersion>\",\"messageSize\":\"<messageSize>\"}",
"location": "Resource location"
}
]
}
對應項查詢
對應項查詢類別會針對在雲端中起始之裝置對應項的查詢要求,進行回報。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "query",
"category": "TwinQueries",
"level": "Information",
"durationMs": "1",
"properties": "{\"query\":\"<twin query>\",\"sdkVersion\":\"<sdkVersion>\",\"messageSize\":\"<messageSize>\",\"pageSize\":\"<pageSize>\", \"continuation\":\"<true, false>\", \"resultSize\":\"<resultSize>\"}",
"location": "Resource location"
}
]
}
作業的操作
作業操作類別會針對用來更新裝置對應項或對多部裝置叫用直接方法的作業要求,進行回報。 這些要求是在雲端中起始的。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "jobCompleted",
"category": "JobsOperations",
"level": "Information",
"durationMs": "1",
"properties": "{\"jobId\":\"<jobId>\", \"sdkVersion\": \"<sdkVersion>\",\"messageSize\": <messageSize>,\"filter\":\"DeviceId IN ['1414ded9-b445-414d-89b9-e48e8c6285d5']\",\"startTimeUtc\":\"Wednesday, September 13, 2017\",\"duration\":\"0\"}",
"location": "Resource location"
}
]
}
直接方法
直接方法類別會追蹤傳送給個別裝置的「要求-回應」互動。 這些要求是在雲端中起始的。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "send",
"category": "DirectMethods",
"level": "Information",
"durationMs": "1",
"properties": "{\"deviceId\":<messageSize>, \"RequestSize\": 1, \"ResponseSize\": 1, \"sdkVersion\": \"2017-07-11\"}",
"location": "Resource location"
}
]
}
分散式追蹤 (預覽)
分散式追蹤類別會追蹤相互關聯識別碼,以尋找帶有追蹤內容標頭的訊息。 為完全啟用這些記錄,用戶端的程式碼必須更新,方法請遵循 使用 IoT 中樞分散式追蹤 (預覽版) 對 IoT 應用程式進行端對端分析和診斷。
correlationId
符合 W3C 追蹤內容提議,也就是會包含 trace-id
以及 span-id
。
IoT 中樞 D2C (裝置到雲端) 記錄
當包含有效追蹤屬性的訊息抵達 IoT 中樞,IoT 中樞便會記下這個記錄。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "DiagnosticIoTHubD2C",
"category": "DistributedTracing",
"correlationId": "00-8cd869a412459a25f5b4f31311223344-0144d2590aacd909-01",
"level": "Information",
"resultType": "Success",
"resultDescription":"Receive message success",
"durationMs": "",
"properties": "{\"messageSize\": 1, \"deviceId\":\"<deviceId>\", \"callerLocalTimeUtc\": : \"2017-02-22T03:27:28.633Z\", \"calleeLocalTimeUtc\": \"2017-02-22T03:27:28.687Z\"}",
"location": "Resource location"
}
]
}
在這裡,durationMs
不會進行計算,因為 IoT 中樞的時鐘可能未與裝置的時鐘同步,因此計算持續時間可能會產生誤導。 建議您使用 properties
區段中的時間戳記來撰寫邏輯,以擷取暴增的裝置到雲端延遲。
屬性 | 類型 | Description |
---|---|---|
messageSize | 整數 | 裝置到雲端訊息的大小 (以位元組為單位) |
deviceId | 由 ASCII 7 位元英數字元組成的字串 | 裝置的身分識別 |
callerLocalTimeUtc | UTC 時間戳記 | 裝置本機時鐘所報告的訊息建立時間 |
calleeLocalTimeUtc | UTC 時間戳記 | IoT 中樞服務端時鐘所報告、訊息抵達 IoT 中樞閘道的時間 |
IoT 中樞輸入記錄
當包含有效追蹤屬性的訊息寫入到內部或內建的事件中樞時,IoT 中樞便會記下這個記錄。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "DiagnosticIoTHubIngress",
"category": "DistributedTracing",
"correlationId": "00-8cd869a412459a25f5b4f31311223344-349810a9bbd28730-01",
"level": "Information",
"resultType": "Success",
"resultDescription":"Ingress message success",
"durationMs": "10",
"properties": "{\"isRoutingEnabled\": \"true\", \"parentSpanId\":\"0144d2590aacd909\"}",
"location": "Resource location"
}
]
}
在記錄的properties
區段中,包含關於訊息輸入的其他資訊。
屬性 | 類型 | Description |
---|---|---|
isRoutingEnabled | String | 可為 true 或 false,會指出 IoT 中樞是否已啟用訊息路由 |
parentSpanId | String | 父代訊息的範圍識別碼,在此案例中會是 D2C 訊息追蹤 |
IoT 中樞輸出記錄
當路由已啟用且有訊息寫入到端點時,IoT 中樞便會記下這個記錄。 如果路由未啟用,IoT 中樞則不會記下這個記錄。
{
"records":
[
{
"time": "UTC timestamp",
"resourceId": "Resource Id",
"operationName": "DiagnosticIoTHubEgress",
"category": "DistributedTracing",
"correlationId": "00-8cd869a412459a25f5b4f31311223344-98ac3578922acd26-01",
"level": "Information",
"resultType": "Success",
"resultDescription":"Egress message success",
"durationMs": "10",
"properties": "{\"endpointType\": \"EventHub\", \"endpointName\": \"myEventHub\", \"parentSpanId\":\"349810a9bbd28730\"}",
"location": "Resource location"
}
]
}
在記錄的properties
區段中,包含關於訊息輸入的其他資訊。
屬性 | 類型 | Description |
---|---|---|
endpointName | String | 路由端點的名稱 |
endpointType | String | 路由端點的類型 |
parentSpanId | String | 父代訊息的範圍識別碼,在此案例中會是 IoT 中樞輸入訊息追蹤 |
設定
IoT 中樞組態記錄會追蹤自動裝置管理功能集的事件和錯誤。
{
"records":
[
{
"time": "2019-09-24T17:21:52Z",
"resourceId": "Resource Id",
"operationName": "ReadManyConfigurations",
"category": "Configurations",
"resultType": "",
"resultDescription": "",
"level": "Information",
"durationMs": "17",
"properties": "{\"configurationId\":\"\",\"sdkVersion\":\"2018-06-30\",\"messageSize\":\"0\",\"statusCode\":null}",
"location": "southcentralus"
}
]
}
裝置串流 (預覽版)
裝置串流類別會追蹤傳送至個別裝置「要求-回應」的互動。
{
"records":
[
{
"time": "2019-09-19T11:12:04Z",
"resourceId": "Resource Id",
"operationName": "invoke",
"category": "DeviceStreams",
"resultType": "",
"resultDescription": "",
"level": "Information",
"durationMs": "74",
"properties": "{\"deviceId\":\"myDevice\",\"moduleId\":\"myModule\",\"sdkVersion\":\"2019-05-01-preview\",\"requestSize\":\"3\",\"responseSize\":\"5\",\"statusCode\":null,\"requestName\":\"myRequest\",\"direction\":\"c2d\"}",
"location": "Central US"
}
]
}
Azure 監視器記錄資料表
本節參考所有與 IoT 中樞相關的 Azure 監視器記錄 Kusto 資料表,並可供 Log Analytics 查詢。 如需這些資料表的清單,以及 IoT 中樞資源類型詳細資訊的連結,請參閱 Azure 監視器記錄資料表參考中的 IoT 中樞。
如需所有 Azure 監視器記錄/Log Analytics 資料表的參考,請參閱 Azure 監視器記錄資料表參考。
另請參閱
- 如需監視 Azure IoT 中樞的描述,請參閱 監視 Azure IoT 中樞。
- 如需監視 Azure 資源的詳細資訊,請參閱使用 Azure 監視器來監視 Azure 資源。
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: