Azure Service Bus の監視データのリファレンス

Azure Service Bus の監視データの収集と分析の詳細については、「Azure Service Bus の監視」を参照してください。

Note

Azure Monitor から Azure Storage、Azure Event Hubs、Log Analytics などの宛先に送信されるエクスポートされたメトリック データに、ディメンションは含まれません。

メトリック

このセクションでは、Azure Service Bus 用に自動的に収集されるすべてのプラットフォーム メトリックを示します。 これらのメトリックのリソース プロバイダーは Microsoft.ServiceBus/namespaces です。

要求のメトリック

データおよび管理操作要求の数をカウントします。

メトリックの名前 診断設定を使用したエクスポートが可能 ユニット 集計の種類 説明 Dimensions
受信要求 はい Count 合計 指定された期間にわたって Service Bus サービスに対して実行された要求の数。 EntityName
成功した要求 いいえ Count 合計 指定された期間にわたって Service Bus サービスに対して実行された成功した要求の数。 エンティティ名
OperationResult
サーバー エラー いいえ Count 合計 指定された期間にわたって Service Bus サービスでエラーのために処理されなかった要求の数。 エンティティ名
OperationResult
User Errors いいえ Count 合計 指定された期間にわたってユーザー エラーのために処理されなかった要求の数。 エンティティ名
調整された要求数 いいえ Count 合計

使用量を超えたため調整された要求の数。

MessagingErrorSubCode ディメンションの有効な値は次のとおりです。

  • CPU: CPU 調整
  • Storage (ストレージ): 保留中のチェックポイント操作が原因の調整を示します
  • Namespace (名前空間): 名前空間の操作の調整。
  • Unknown (不明): その他のリソースの調整。
エンティティ名
MessagingErrorSubCode
保留中のチェックポイント操作数 いいえ count Average 名前空間での保留中のチェックポイント操作数。 保留中のチェックポイントの操作数が (500,000 + (500,000 * メッセージング ユニット)) の制限を超えた場合、サービスは調整を開始します。 このメトリックは、premium レベルを使用する名前空間にのみ適用されます。 MessagingErrorSubCode
サーバー送信の待機時間 いいえ ミリ秒 Average Service Bus サービスが要求を完了するために要した時間。 エンティティ名

次の 2 種類のエラーは、ユーザー エラーとして分類されます。

  1. クライアント側のエラー (HTTP では 400 エラー)。
  2. MessageLockLostException など、メッセージの処理中に発生するエラー。

メッセージのメトリック

メトリックの名前 診断設定を使用したエクスポートが可能 ユニット 集計の種類 説明 Dimensions
受信メッセージ はい Count 合計 指定された期間にわたって Service Bus に送信されたイベントまたはメッセージの数。 Basic および Standard レベルでは、受信した自動転送メッセージはこのメトリックに含まれます。 そして Premium レベルでは、それらは含まれません。 エンティティ名
送信メッセージ はい Count 合計 指定された期間にわたって Service Bus から受信されたイベントまたはメッセージの数。 送信自動転送メッセージは、このメトリックには含まれません。 エンティティ名
メッセージ いいえ Count Average キュー/トピック内のメッセージの数。 このメトリックには、アクティブ、配信不能、スケジュールなど、さまざまな状態のメッセージがすべて含まれます。 エンティティ名
アクティブなメッセージ いいえ Count Average キュー/トピック内のアクティブなメッセージの数。 アクティブなメッセージは、アクティブな状態で配信の準備ができている、キューまたはサブスクリプション内のメッセージです。 これらのメッセージは受信できます。 エンティティ名
配信不能メッセージ いいえ Count Average キュー/トピック内の配信不能メッセージの数。 エンティティ名
スケジュール設定されたメッセージ いいえ Count Average キュー/トピック内のスケジュール済みメッセージの数。 エンティティ名
完了したメッセージ はい Count 合計 指定した期間に完了したメッセージの数。 エンティティ名
破棄されたメッセージ はい Count 合計 指定した期間に破棄されたメッセージの数。 エンティティ名
サイズ いいえ バイト Average エンティティ (キューまたはトピック) のサイズ (バイト単位)。 エンティティ名

重要

アクティブ、配信不能、スケジュール済み、完了、破棄済みのメッセージの値は、特定の時点の値です。 その時点の直後に使用された受信メッセージは、これらのメトリックに反映されない場合があります。

注意

クライアントでキューまたはトピックに関する情報を取得しようとすると、Service Bus サービスから、名前、最終更新時刻、作成時刻、セッションが必要かどうかなどの静的な情報と、メッセージ数などの動的な情報が返されます。 要求が調整された場合、サービスから静的情報と空の動的情報が返されます。 そのため、名前空間が調整されている場合、メッセージ数は 0 と表示されます。 この動作は仕様です。

接続のメトリック

メトリックの名前 診断設定を使用したエクスポートが可能 ユニット 集計の種類 説明 Dimensions
アクティブな接続 いいえ Count 合計 名前空間および名前空間内のエンティティでのアクティブな接続の数。 このメトリックの値は、特定の時点の値です。 その時点の直後にアクティブになった接続は、メトリックに反映されない場合があります。
開かれている接続数 いいえ Count Average 開かれている接続数。 このメトリックの値は集計であり、集計時間枠で開かれたすべての接続が含まれます。 エンティティ名
切断された接続数 いいえ Count Average 切断された接続数。 このメトリックの値は集計であり、集計時間枠で開かれたすべての接続が含まれます。 エンティティ名

リソース使用状況のメトリック

注意

次のメトリックはプレミアム層でのみ使用可能です。

Premium レベルの名前空間の停止を監視するための重要なメトリックは次のとおりです。名前空間ごとの CPU 使用率名前空間 1 つあたりのメモリ サイズ。 Azure Monitor を使用して、これらのメトリックのアラートを設定します。

監視できるもう 1 つのメトリックは、スロットルされた要求です。 これは、名前空間がメモリ、CPU、およびブローカー接続の制限内にある限り、問題にはなりません。 詳細については、「Azure Service Bus Premium レベルでのスロットル」を参照してください。

メトリックの名前 診断設定を使用したエクスポートが可能 ユニット 集計の種類 説明 Dimensions
名前空間あたりの CPU 使用率 いいえ CPU Percent 名前空間の CPU 使用率 (%)。 [レプリカ]
名前空間あたりのメモリ サイズの使用量 いいえ メモリ使用量 Percent 名前空間のメモリ使用率 (%)。 [レプリカ]

エラー メトリック

メトリックの名前 診断設定を使用したエクスポートが可能 ユニット 集計の種類 説明 Dimensions
サーバー エラー いいえ Count 合計 指定された期間にわたって Service Bus サービスでエラーのために処理されなかった要求の数。 エンティティ名

操作の結果
User Errors (ユーザー エラー) いいえ Count 合計 指定された期間にわたってユーザー エラーのために処理されなかった要求の数。 エンティティ名

操作の結果

メトリック ディメンション

Azure Service Bus は、Azure Monitor でのメトリックの次のディメンションをサポートします。 メトリックへのディメンションの追加は省略可能です。 ディメンションを追加しない場合、メトリックは名前空間レベルで指定されます。

ディメンション名 説明
エンティティ名 Service Bus は、名前空間の下のメッセージング エンティティをサポートします。 [受信した要求] メトリックでは、エンティティ名ディメンションにすべてのキューとトピックに加えて、"-NamespaceOnlyMetric-" の値が含まれます。 これは、名前空間レベルで行われた要求を表します。 たとえば、名前空間の下にあるすべてのキューとトピックを一覧表示する要求や、認証または認可に失敗したエンティティへの要求などがあります。

リソース ログ

このセクションでは、Azure Service Bus 用に収集できるリソース ログの種類を示します。

  • 操作ログ
  • 仮想ネットワークと IP フィルターのログ
  • ランタイム監査ログ

Azure Service Bus には、Log Analytics で Azure Diagnostic または リソース固有のテーブルという 2 つの宛先テーブルのいずれかにログをディスパッチする機能が追加されました。 Azure portal で使用可能な切り替えを使用して、変換先テーブルを選択できます。

ターゲット テーブル設定するダイアログ ボックスのスクリーンショット。

操作ログ

操作ログ エントリには、次の表に示す要素が含まれます。

Name 説明 AzureDiagnostics でサポートされています AZMSOperationalLogs でサポートされています (リソース固有のテーブル)
ActivityId 指定されたアクティビティを識別するために使用される内部 ID はい はい
EventName 工程名 はい はい
ResourceId Azure Resource Manager リソース ID はい はい
SubscriptionId サブスクリプション ID はい はい
EventtimeString 作業の時間 はい いいえ
TimeGenerated [UTC] 実行された操作の時刻 (UTC) いいえ はい
EventProperties 操作プロパティ はい はい
Status 操作の状態 はい はい
Caller 操作の呼び出し元 (Azure portal または管理クライアント) はい はい
Provider ログを出力するサービスの名前 (ServiceBus など) いいえ はい
Type 出力されるログの種類 いいえ はい
Category ログのカテゴリ はい いいえ

操作ログの 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 Service Bus 名前空間上で実行されるすべての管理操作がキャプチャされます。 Azure Service Bus 上では大量のデータ操作が実行されるため、データ操作は取り込まれません。

注意

データ操作をより適切に追跡できるように、クライアント側のトレースを使用することをお勧めします。

操作ログでは、以下の管理操作がキャプチャされます。

Scope 操作
名前空間 ‐ 名前空間の作成
‐ 名前空間の更新
‐ 名前空間の削除
‐ 名前空間の更新
‐ 名前空間の取得
- SharedAccess ポリシー
キュー - キューの作成
‐ キューの更新
‐ キューの削除
‐ キューの削除 (自動削除)
- キューの取得
トピック ‐ トピックの作成
‐ トピックの更新
- トピックの削除
‐ トピックの削除 (自動削除)
- トピックの取得
サブスクリプション - サブスクリプションの作成
‐ サブスクリプションの更新
‐ サブスクリプションの削除
‐ サブスクリプションの削除 (自動削除)
- サブスクリプションの取得

Note

現在、"読み取り" 操作は操作ログで追跡されません。

仮想ネットワークと IP フィルターのログ

Service Bus 仮想ネットワーク (VNet) 接続イベントの JSON には、次の表に示す要素が含まれます。

名前 説明 Azure Diagnostics でサポートされています AZMSVnetConnectionEvents (リソース固有のテーブル) でサポートされています
SubscriptionId Azure サブスクリプション ID はい はい
NamespaceName 名前空間名 はい はい
IPAddress Service Bus サービスに接続しているクライアントの IP アドレス はい はい
AddressIP Service Bus に接続しているクライアントの IP アドレス はい はい
TimeGenerated [UTC] 実行された操作の時刻 (UTC) はい はい
Action 接続要求を評価するときに Service Bus サービスによって実行されたアクション。 サポートされているアクションは、接続の受け入れ接続の拒否です。 はい はい
Reason アクションが実行された理由を提供します はい はい
Count 指定されたアクションの発生回数 はい はい
ResourceId Azure Resource Manager リソース ID。 はい はい
Category ログのカテゴリ はい いいえ
Provider ログを出力するサービスの名前 (ServiceBus など) いいえ はい
Type 出力されるログの種類 いいえ イエス

Note

仮想ネットワーク ログが生成されるのは、名前空間で選択されたネットワークから、または特定の 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"
}

ランタイム監査ログ

ランタイム監査ログは、Service Bus でのさまざまなデータ プレーン アクセス操作 (メッセージの送信や受信など) に関する集約された診断情報をキャプチャします。

注意

現在、ランタイム監査ログは Premium レベルでのみ使用できます。

ランタイム監査ログには、次の表に示す要素が含まれます。

名前 説明 Azure Diagnostics でサポートされます AZMSRuntimeAuditLogs でサポートされます (リソース固有のテーブル)
ActivityId 監査アクティビティの一意性を保証するランダムに生成された UUID。 はい はい
ActivityName ランタイム操作の名前。 はい はい
ResourceId アクティビティに関連付けられているリソース。 はい はい
Timestamp 集計時間。 はい いいえ
time Generated (UTC) 集計時間 いいえ はい
Status アクティビティの状態 (成功または失敗)。 はい はい
Protocol 操作に関連付けられているプロトコルの種類。 はい はい
AuthType 認証の種類 (Microsoft Entra ID または SAS ポリシー)。 はい はい
AuthKey リソースに対する認証に使用される Microsoft Entra アプリケーション ID または SAS ポリシー名。 はい はい
NetworkType ネットワーク アクセスの種類: Public またはPrivate はい はい
ClientIP クライアント アプリケーションの IP アドレス。 はい はい
Count 1 分間の集計時間中に実行された操作の総数。 はい はい
Properties データ プレーン操作に固有のメタデータ。 はい はい
Category ログのカテゴリ はい いいえ
Provider ログを出力するサービスの名前 (ServiceBus など) いいえ はい
Type 出力されるログの種類 いいえ はい

ランタイム監査ログ エントリの例を次に示します。

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 Diagnostics でサポートされています AZMSDiagnosticErrorLogs (リソース固有のテーブル) でサポートされます
ActivityId 監査アクティビティの一意性を保証するランダムに生成された UUID。 はい はい
ActivityName 工程名 はい はい
NamespaceName 名前空間の名前 はい はい
EntityType エンティティの種類 はい はい
EntityName エンティティの名前 はい はい
OperationResult 操作中のエラーの種類 (Clienterror または Serverbusy または quotaexceeded) はい はい
ErrorCount 1 分間の集計期間中の同一エラーの数。 はい はい
ErrorMessage 詳細なエラー メッセージ はい はい
Provider ログを出力するサービスの名前。 使用可能な値: eventhub、relay、servicebus はい はい
Time Generated (UTC) 操作時間 いいえ はい
EventTimestamp 作業の時間 はい いいえ
Category ログのカテゴリ はい いいえ
Type 出力されるログの種類 いいえ はい

診断エラー ログ エントリの例を次に示します。

{
    "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 Service Bus 用の SBMP プロトコルのサポートは終了するため、2026 年 9 月 30 日以降はこのプロトコルを使用できなくなります。 その日付より前に、(重要なセキュリティ更新プログラムと強化された機能が提供される) AMQP プロトコルを使った最新の Azure Service Bus SDK ライブラリに移行してください。

詳細については、サポート廃止のお知らせに関するページを参照してください。

Azure Monitor ログ テーブル

Azure Service Bus では、Azure Monitor ログの Kusto テーブルが使用されます。 これらのテーブルに対して Log Analytics を使用してクエリを実行できます。 サービスで使用される Kusto テーブルの一覧については、Azure Monitor ログ テーブルのリファレンスに関するページを参照してください。

次のステップ