監視 Azure 服務匯流排 數據參考

如需收集和分析 Azure 服務匯流排 監視數據的詳細資訊,請參閱監視 Azure 服務匯流排

注意

Azure 監視器不包含傳送至目的地的導出計量數據維度,例如 Azure 儲存體、Azure 事件中樞、Log Analytics 等。

計量

本節列出針對 Azure 服務匯流排 收集的所有自動收集平台計量。 這些計量的資源提供者是 Microsoft.ServiceBus/namespaces

要求計量

計算數據和管理作業要求的數目。

標準名稱 可透過診斷設定導出 單位 彙總類型 描述 維度
傳入要求 Yes 計數 總數 在指定時段內,向服務匯流排服務提出的要求數目。 EntityName
成功的要求 No 計數 總數 在指定時段內,向服務匯流排服務提出的成功要求數目。 實體名稱
OperationResult
伺服器錯誤 No 計數 總數 在指定的期間內,因「服務匯流排」服務發生錯誤而未處理的要求數目。 實體名稱
OperationResult
User Errors No 計數 總數 在指定的期間內,因使用者錯誤而未處理的要求數目。 實體名稱
節流的要求 No 計數 總數

因為超過使用量而節流的要求數目。

MessagingErrorSubCode 維度具有下列可能的值:

  • CPU: CPU 節流
  • 儲存體:它表示因為擱置的檢查點作業而進行節流
  • Namespace:Namespace 作業節流。
  • 未知: 其他資源節流。
實體名稱
MessagingErrorSubCode
擱置的檢查點作業計數 No 計數 平均 命名空間上的擱置檢查點作業數目。 當擱置的檢查點計數超過 (500,000 + (500,000 * 傳訊單位) 作業的限制時,服務就會開始節流。 此計量僅適用於使用 進階層 的命名空間。 MessagingErrorSubCode
伺服器傳送延遲 No milliseconds 平均 服務匯流排 服務完成要求所花費的時間。 實體名稱

下列兩種類型的錯誤會分類為 使用者錯誤

  1. 用戶端錯誤(HTTP 中為 400 個錯誤)。
  2. 處理訊息時發生的錯誤,例如 MessageLockLostException

訊息計量

標準名稱 可透過診斷設定導出 單位 彙總類型 描述 維度
傳入訊息 Yes 計數 總數 在指定期間內傳送至 服務匯流排 的事件或訊息數目。 針對基本和標準層,傳入的自動轉送訊息會包含在此計量中。 而且,針對進階層,它們不包含在內。 實體名稱
外送訊息 Yes 計數 總數 在指定期間內從 服務匯流排 接收的事件或訊息數目。 此計量中未包含傳出自動轉寄訊息。 實體名稱
訊息 No 計數 平均 佇列/主題中的訊息計數。 此計量包含所有不同狀態的訊息,例如使用中、寄不出的信件、已排程等。 實體名稱
使用中訊息 No 計數 平均 佇列/主題中的作用中訊息計數。 作用中訊息是處於作用中狀態且可供傳遞之佇列或訂用帳戶中的訊息。 訊息可供接收。 實體名稱
無效訊息 No 計數 平均 佇列/主題中的寄不出的信件訊息計數。 實體名稱
排定的訊息 No 計數 平均 佇列/主題中排程的訊息計數。 實體名稱
已完成的訊息 Yes 計數 總數 在指定期間內完成的訊息數目。 實體名稱
已放棄的郵件 Yes 計數 總數 在指定期間內放棄的訊息數目。 實體名稱
大小 No Bytes 平均 以位元組為單位的實體大小(佇列或主題)。 實體名稱

重要

訊息、使用中、寄不出的信件、已排程、已完成和已放棄訊息的值都是時間點值。 在該時間點之後立即取用的傳入訊息可能不會反映在這些計量中。

注意

當客戶端嘗試取得佇列或主題的相關信息時,服務匯流排 服務會傳回一些靜態資訊,例如名稱、上次更新時間、建立時間、需要會話或否等,以及某些動態資訊,例如訊息計數。 如果要求受到節流處理,服務會傳回靜態資訊和空的動態資訊。 這就是為什麼當命名空間受到節流時,訊息計數會顯示為0。 這是依照設計的行為。

計量連線

標準名稱 可透過診斷設定導出 單位 彙總類型 描述 維度
使用中的連線數 No 計數 總數 命名空間上的作用中連線數目,以及命名空間中的實體連線數目。 此計量的值是時間點值。 在該時間點之後立即處於作用中狀態的連線,可能不會反映在計量中。
已開啟的連線 No 計數 平均 已開啟的連接數目。 此計量的值是匯總,並包含匯總時間範圍中開啟的所有連線。 實體名稱
已關閉的連線 No 計數 平均 已關閉的連接數目。 此計量的值是匯總,並包含匯總時間範圍中開啟的所有連線。 實體名稱

資源使用量計量

注意

下列計量僅適用於 進階層

監視進階層命名空間任何中斷狀況的重要計量包括:每個命名空間的CPU使用量和每個命名空間的記憶體大小。 使用 Azure 監視器設定這些計量的警示

您可以監視的另一個計量是: 節流要求。 只要命名空間停留在其記憶體、CPU 和代理連線限制內,就不應該發生問題。 如需詳細資訊,請參閱 Azure 服務匯流排 進階版 層中的節流

標準名稱 可透過診斷設定導出 單位 彙總類型 描述 維度
每個命名空間的CPU使用量 No CPU Percent 命名空間的CPU使用量百分比。 複本
每個命名空間的記憶體大小使用量 No 記憶體使用量 Percent 命名空間的記憶體使用量百分比。 複本

錯誤指標

標準名稱 可透過診斷設定導出 單位 彙總類型 描述 維度
伺服器錯誤 No 計數 總數 在指定的期間內,因「服務匯流排」服務發生錯誤而未處理的要求數目。 實體名稱

作業結果
User Errors No 計數 總數 在指定的期間內,因使用者錯誤而未處理的要求數目。 實體名稱

作業結果

載入計量維度

Azure 服務匯流排 支援 Azure 監視器中計量的下列維度。 將維度新增至計量是選擇性的。 如果您未新增維度,則會在命名空間層級指定計量。

維度名稱 描述
實體名稱 服務匯流排 支援 命名空間下的傳訊實體。 使用 「傳入要求」計量時,除了所有佇列和主題之外,實體名稱維度還會有 '-NamespaceOnlyMetric-' 的值。 這表示在命名空間層級所做的要求。 範例包括列出命名空間下所有佇列/主題的要求,或要求失敗驗證或授權的實體。

資源記錄

本節列出您可以針對 Azure 服務匯流排 收集的資源記錄類型。

  • 作業記錄
  • 虛擬網路和IP篩選記錄
  • 運行時間稽核記錄

Azure 服務匯流排 現在能夠將記錄分派至兩個目的地數據表之一 - Azure 診斷或Log Analytics 中的資源特定數據表。 您可以使用 Azure 入口網站 上可用的切換來選擇目的地資料表。

設定目的地數據表之對話框的螢幕快照。

作業記錄

工作記錄專案包含下表所列的專案:

名稱 描述 AzureDiagnostics 中支援 AZMSOperationalLogs 中支援 (資源特定數據表)
ActivityId 用來識別指定活動的內部識別碼 Yes Yes
EventName 作業名稱 Yes Yes
ResourceId Azure Resource Manager 資源識別符 Yes Yes
SubscriptionId 訂閱識別碼 Yes Yes
EventtimeString 作業時間 No
TimeGenerated [UTC] 執行作業的時間(UTC) No Yes
EventProperties 作業屬性 Yes Yes
Status 作業狀態 Yes Yes
Caller 作業呼叫者(Azure 入口網站 或管理用戶端) Yes Yes
Provider 發出記錄的服務名稱,例如 ServiceBus No Yes
Type 發出的記錄類型 No Yes
Category 記錄類別 No

以下是作業記錄 JSON 字串的範例:

AzureDiagnostics:


{
  "ActivityId": "0000000000-0000-0000-0000-00000000000000",
  "EventName": "Create Queue",
  "resourceId": "/SUBSCRIPTIONS/<AZURE SUBSCRPTION ID>/RESOURCEGROUPS/<RESOURCE GROUP NAME>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<SERVICE BUS NAMESPACE NAME>",
  "SubscriptionId": "0000000000-0000-0000-0000-00000000000000",
  "EventTimeString": "9/28/2016 8:40:06 PM +00:00",
  "EventProperties": "{\"SubscriptionId\":\"0000000000-0000-0000-0000-00000000000000\",\"Namespace\":\"mynamespace\",\"Via\":\"https://mynamespace.servicebus.windows.net/f8096791adb448579ee83d30e006a13e/?api-version=2016-07\",\"TrackingId\":\"5ee74c9e-72b5-4e98-97c4-08a62e56e221_G1\"}",
  "Status": "Succeeded",
  "Caller": "ServiceBus Client",
  "category": "OperationalLogs"
}


資源特定的數據表專案:


{

  "ActivityId": "0000000000-0000-0000-0000-00000000000000",
  "EventName": "Retrieve Queue",
  "resourceId": "/SUBSCRIPTIONS/<AZURE SUBSCRPTION ID>/RESOURCEGROUPS/<RESOURCE GROUP NAME>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<SERVICE BUS NAMESPACE NAME>",
  "SubscriptionId": "0000000000-0000-0000-0000-00000000000000",
  "TimeGenerated(UTC)": "9/28/2023 8:40:06 PM +00:00",
  "EventProperties": "{\"SubscriptionId\":\"0000000000-0000-0000-0000-00000000000000\",\"Namespace\":\"mynamespace\",\"Via\":\"https://mynamespace.servicebus.windows.net/f8096791adb448579ee83d30e006a13e/?api-version=2016-07\",\"TrackingId\":\"5ee74c9e-72b5-4e98-97c4-08a62e56e221_G1\"}",
  "Status": "Succeeded",
  "Caller": "ServiceBus Client",
  "type": "AZMSOperationalLogs",
  "Provider" : "SERVICEBUS"

}

作業記錄中擷取的事件和作業

作業記錄會擷取 Azure 服務匯流排 命名空間上執行的所有管理作業。 不會擷取數據作業,因為 Azure 服務匯流排 上進行的大量數據作業。

注意

為了協助您更妥善地追蹤數據作業,建議您使用客戶端追蹤。

下列管理作業會在作業記錄中擷取:

範圍 作業
Namespace - 建立命名空間
- 更新命名空間
- 刪除命名空間
- 更新命名空間
- 擷取命名空間
- SharedAccess 原則
佇列 - 建立佇列
- 更新佇列
- 刪除佇列
- 自動刪除刪除佇列
- 擷取佇列
主題 - 建立主題
- 更新主題
- 刪除主題
- 自動刪除刪除主題
- 擷取主題
訂用帳戶 - 建立訂用帳戶
- 更新訂閱
- 刪除訂用帳戶
- 自動刪除刪除訂閱
- 擷取訂用

注意

目前, 作業記錄中不會追蹤讀取 作業。

虛擬網路和IP篩選記錄

服務匯流排 虛擬網路 (VNet) 連線事件 JSON 包含下表所列的元素:

名稱 描述 Azure 診斷 中支援 支援 AZMSVnet 連線 ionEvents (資源特定數據表)
SubscriptionId Azure 訂用帳戶識別碼 Yes Yes
NamespaceName 命名空間名稱 Yes Yes
IPAddress 線上至 服務匯流排 服務的用戶端IP位址 Yes Yes
AddressIP 線上至服務總線的用戶端 IP 位址 Yes Yes
TimeGenerated [UTC] 執行作業的時間(UTC) Yes Yes
Action 評估連線要求時,服務匯流排 服務所執行的動作。 支持的動作為 Accept 連線 ionDeny 連線 ion Yes Yes
Reason 提供動作完成的原因 Yes Yes
Count 指定動作的出現次數 Yes Yes
ResourceId Azure Resource Manager 資源識別碼。 Yes Yes
Category 記錄類別 No
Provider 發出記錄的服務名稱,例如 ServiceBus No Yes
Type 發出的記錄類型 No .是

注意

只有在命名空間允許從選取的網路或特定IP位址存取時,才會產生虛擬網路記錄(IP 篩選規則)。

以下是虛擬網路記錄 JSON 字串的範例:

AzureDiagnostics;

{
    "SubscriptionId": "0000000-0000-0000-0000-000000000000",
    "NamespaceName": "namespace-name",
    "IPAddress": "1.2.3.4",
    "Action": "Accept Connection",
    "Reason": "IP is accepted by IPAddress filter.",
    "Count": 1,
    "ResourceId": "/SUBSCRIPTIONS/<AZURE SUBSCRIPTION ID>/RESOURCEGROUPS/<RESOURCE GROUP NAME>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<SERVICE BUS NAMESPACE NAME>",
    "Category": "ServiceBusVNetConnectionEvent"
}

資源特定的數據表專案:

{
    "SubscriptionId": "0000000-0000-0000-0000-000000000000",
    "NamespaceName": "namespace-name",
    "AddressIp": "1.2.3.4",
    "Action": "Accept Connection",
    "Message": "IP is accepted by IPAddress filter.",
    "Count": 1,
    "ResourceId": "/SUBSCRIPTIONS/<AZURE SUBSCRIPTION ID>/RESOURCEGROUPS/<RESOURCE GROUP NAME>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<SERVICE BUS NAMESPACE NAME>",
    "Provider" : "SERVICEBUS",
    "Type": "AZMSVNetConnectionEvents"
}

執行階段稽核記錄

運行時間稽核記錄會擷取 服務匯流排 中各種數據平面存取作業的匯總診斷資訊(例如傳送或接收訊息)。

注意

運行時間稽核記錄目前僅適用於 進階層

執行時間稽核記錄包含下表所列的元素:

名稱 描述 Azure 診斷 中支援 AZMSRuntimeAuditLogs 中支援 (資源特定數據表)
ActivityId 隨機產生的 UUID,可確保稽核活動的唯一性。 Yes Yes
ActivityName 運行時間作業名稱。 Yes Yes
ResourceId 與活動相關聯的資源。 Yes Yes
Timestamp 匯總時間。 No
time Generated (UTC) 匯總時間 No Yes
Status 活動的狀態(成功或失敗)。 Yes Yes
Protocol 與作業相關聯的通訊協議類型。 Yes Yes
AuthType 驗證類型(Microsoft Entra ID 或 SAS 原則)。 Yes Yes
AuthKey 用來向資源驗證的 Microsoft Entra 應用程式識別碼或 SAS 原則名稱。 Yes Yes
NetworkType 網路存取的類型: PublicPrivate Yes
ClientIP 用戶端應用程式的IP位址。 Yes Yes
Count 在匯總期間 1 分鐘期間執行的作業總數。 Yes Yes
Properties 數據平面作業特有的元數據。 Yes
Category 記錄類別 No
Provider 發出記錄的服務名稱,例如 ServiceBus No Yes
Type 發出的記錄類型 No Yes

以下是執行時間稽核記錄項目的範例:

AzureDiagnostics:

{
    "ActivityId": "<activity id>",
    "ActivityName": "ConnectionOpen | Authorization | SendMessage | ReceiveMessage | PeekLockMessage",
    "ResourceId": "/SUBSCRIPTIONS/xxx/RESOURCEGROUPS/<Resource Group Name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<Service Bus namespace>/servicebus/<service bus name>",
    "Time": "1/1/2021 8:40:06 PM +00:00",
    "Status": "Success | Failure",
    "Protocol": "AMQP | HTTP | SBMP", 
    "AuthType": "SAS | AAD", 
    "AuthKey": "<AAD Application Name| SAS policy name>",
    "NetworkType": "Public | Private", 
    "ClientIp": "x.x.x.x",
    "Count": 1, 
    "Category": "RuntimeAuditLogs"
 }

資源特定的數據表專案:

{
    "ActivityId": "<activity id>",
    "ActivityName": "ConnectionOpen | Authorization | SendMessage | ReceiveMessage | PeekLockMessage",
    "ResourceId": "/SUBSCRIPTIONS/xxx/RESOURCEGROUPS/<Resource Group Name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<Service Bus namespace>/servicebus/<service bus name>",
    "TimeGenerated (UTC)": "1/1/2021 8:40:06 PM +00:00",
    "Status": "Success | Failure",
    "Protocol": "AMQP | HTTP | SBMP", 
    "AuthType": "SAS | AAD", 
    "AuthKey": "<AAD Application Name| SAS policy name>",
    "NetworkType": "Public | Private", 
    "ClientIp": "x.x.x.x",
    "Count": 1, 
    "Provider": "SERVICEBUS",
    "Type"   : "AZMSRuntimeAuditLogs"
 }

診斷錯誤記錄

診斷錯誤記錄會擷取任何用戶端的錯誤訊息、節流和配額超過錯誤。 它們提供錯誤識別的詳細診斷。

診斷錯誤記錄包含下表所欄的元素:

名稱 描述 Azure 診斷 中支援 AZMSDiagnosticErrorLogs 中支持 (資源特定數據表)
ActivityId 隨機產生的 UUID,可確保稽核活動的唯一性。 Yes Yes
ActivityName 作業名稱 Yes Yes
NamespaceName 命名空間的名稱 Yes
EntityType 實體類型 Yes Yes
EntityName 實體的名稱 Yes Yes
OperationResult 作業中的錯誤類型(Clienterror 或 Serverbusy 或 quotaexceeded) Yes Yes
ErrorCount 匯總期間 1 分鐘的相同錯誤計數。 Yes Yes
ErrorMessage 詳細的錯誤訊息 Yes Yes
Provider 發出記錄的服務名稱。 可能的值:eventhub、relay 和 servicebus Yes Yes
Time Generated (UTC) 作業時間 No Yes
EventTimestamp 作業時間 No
Category 記錄類別 No
Type 發出的記錄類型 No Yes

以下是診斷錯誤記錄項目的範例:

{
    "ActivityId": "0000000000-0000-0000-0000-00000000000000",
    "SubscriptionId": "<Azure Subscription Id",
    "NamespaceName": "Name of Service Bus Namespace",
    "EntityType": "Queue",
    "EntityName": "Name of Service Bus Queue",
    "ActivityName": "SendMessage",
    "ResourceId": "/SUBSCRIPTIONS/xxx/RESOURCEGROUPS/<Resource Group Name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<service bus namespace name>",,
    "OperationResult": "ClientError",
    "ErrorCount": 1,
    "EventTimestamp": "3/27/2024 1:02:29.126 PM +00:00",
    "ErrorMessage": "the sessionid was not set on a message, and it cannot be sent to the entity. entities that have session support enabled can only receive messages that have the sessionid set to a valid value.",
    "category": "DiagnosticErrorLogs"
 }

資源特定的數據表專案:

{
    "ActivityId": "0000000000-0000-0000-0000-00000000000000",
    "NamespaceName": "Name of Service Bus Namespace",
    "EntityType": "Queue",
    "EntityName": "Name of Service Bus Queue",
    "ActivityName": "SendMessage",
    "ResourceId": "/SUBSCRIPTIONS/xxx/RESOURCEGROUPS/<Resource Group Name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<service bus namespace name>",,
    "OperationResult": "ClientError",
    "ErrorCount": 1,
    "TimeGenerated [UTC]": "1/27/2024 4:02:29.126 PM +00:00",
    "ErrorMessage": "the sessionid was not set on a message, and it cannot be sent to the entity. entities that have session support enabled can only receive messages that have the sessionid set to a valid value.",
    "Type": "AZMSDiagnosticErrorLogs"
 }

2026 年 9 月 30 日我們將淘汰 Azure 服務匯流排的 SBMP 通訊協定支援,因此您將無法在 2026 年 9 月 30 日之後再使用此通訊協定。 請在該日期之前移轉至使用 AMQP 通訊協定的最新 Azure 服務匯流排 SDK 程式庫,該程式庫提供重要的安全性更新和改進的功能。

如需詳細資訊,請參閱支援淘汰公告

Azure 監視器記錄資料表

Azure 服務匯流排 使用來自 Azure 監視器記錄的 Kusto 數據表。 您可以使用 Log Analytics 查詢這些資料表。 如需服務所使用的 Kusto 資料表清單,請參閱 Azure 監視器記錄資料表參考

下一步