你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

监视 Azure 服务总线数据参考

有关收集和分析 Azure 服务总线监视数据的详细信息,请参阅监视 Azure 服务总线

注意

Azure Monitor 不会将维度包括在在发送到目标(如 Azure 存储、Azure 事件中心、Log Analytics 等)的导出指标数据中。

指标

本部分列出了为 Azure 服务总线自动收集的所有平台指标。 这些指标的资源提供程序是 Microsoft.ServiceBus/namespaces。

请求指标

计算数据量和管理操作请求数。

标准名称 可通过诊断设置导出 计价单位 聚合类型 说明 维度
传入请求数 计数 总计 在指定的期间内向服务总线服务发出的请求数。 EntityName
成功的请求数 计数 总计 在指定的期间内向服务总线服务发出的成功请求数。 实体名称
OperationResult
服务器错误数 计数 总计 由于服务总线服务发生错误,在指定期间内未处理的请求数。 实体名称
OperationResult
用户错误数 计数 总计 由于存在用户错误,在指定期间内未处理的请求数。 实体名称
限制的请求数 计数 总计

由于使用量超标,而被限制的请求数。

MessagingErrorSubCode 维度具有以下可能的值:

  • CPU:CPU 限制
  • 存储:指示因检查点操作挂起而限制
  • 命名空间:命名空间操作限制。
  • 未知:其他资源限制。
实体名称
MessagingErrorSubCode
挂起的检查点操作计数 count 平均值 命名空间上挂起的检查点操作数目。 当挂起的检查点计数超过 (500,000 + (500,000 * 消息传送单元)) 操作数目限制时,服务开始实施限制。 此指标仅适用于使用高级层的命名空间。 MessagingErrorSubCode
服务器发送延迟 毫秒 平均值 服务总线服务完成请求所花的时间。 实体名称

下面两种类型的错误被归类为用户错误:

  1. 客户端错误(在 HTTP 中为 400 错误)。
  2. 在处理消息时发生的错误,如 MessageLockLostException

消息指标

标准名称 可通过诊断设置导出 计价单位 聚合类型 说明 维度
传入消息数 计数 总计 在指定的期间内发送到服务总线的事件或消息数。 此指标不包括自动转发的消息。 实体名称
传出消息数 计数 总计 在指定的期间内从服务总线收到的事件或消息数。 实体名称
消息 计数 平均值 队列/主题中的消息计数。 实体名称
活动消息 计数 平均值 队列/主题中的活动消息的计数。 实体名称
死信消息 计数 平均值 队列/主题中的死信消息计数。 实体名称
计划的消息 计数 平均值 队列/主题中的计划消息计数。 实体名称
完成的消息数 计数 总计 在指定时段内完成的消息数。 实体名称
已放弃的消息数 计数 总计 在指定时段内放弃的消息数。 实体名称
大小 字节 平均值 实体(队列或主题)的大小,以字节为单位。 实体名称

注意

消息的值,活动、死信、计划、已完成和已放弃的消息的值都是时间点值。 在该时间点之后立即使用的传入消息可能不会反映在这些指标中。

连接指标

标准名称 可通过诊断设置导出 计价单位 聚合类型 说明 维度
活动连接数 计数 总计 命名空间上及其中实体上的活动连接数。 此指标的值为时间点值。 在该时间点之后立即处于活动状态的连接可能不会反映在这些指标中。
打开的连接数 计数 平均值 打开的连接数。 此指标的值是一个聚合,包括在聚合时间窗口中打开的所有连接。 实体名称
关闭的连接数 计数 平均值 关闭的连接数。 此指标的值是一个聚合,包括在聚合时间窗口中打开的所有连接。 实体名称

资源使用情况指标

注意

以下指标仅适用于高级层。

用于监视高级层命名空间中是否存在中断的重要指标包括:每个命名空间的 CPU 使用率每个命名空间的内存大小。 使用 Azure Monitor 为这些指标设置警报

你可以监视的另一个指标是:限制的请求数。 不过,只要命名空间保持在其内存、CPU 和中转连接限制内,就不会出现问题。 有关详细信息,请参阅 Azure 服务总线高级层中的限制

标准名称 可通过诊断设置导出 计价单位 聚合类型 说明 维度
每个命名空间的 CPU 使用率 CPU 百分比 命名空间的 CPU 使用百分比。 副本
每个命名空间的内存使用量 内存用量 百分比 命名空间的内存使用百分比。 副本

错误指标

标准名称 可通过诊断设置导出 计价单位 聚合类型 说明 维度
服务器错误数 计数 总计 由于服务总线服务发生错误,在指定期间内未处理的请求数。 实体名称

操作结果
用户错误数 计数 总计 由于存在用户错误,在指定期间内未处理的请求数。 实体名称

操作结果

指标维度

Azure 总线服务支持对 Azure Monitor 中的指标使用以下维度。 为指标添加维度是可选的。 如果不添加维度,则指标是在命名空间级别指定的。

维度名称 说明
实体名称 总线服务支持命名空间下的消息实体。

资源日志

本节列出了可为 Azure 服务总线收集的资源日志类型。

  • 操作日志
  • 虚拟网络和 IP 筛选日志

操作日志

运行日志条目包括下表列出的元素:

名称 说明
ActivityId 内部 ID,用于标识指定的活动
EventName 操作名称
ResourceId Azure Resource Manager 资源 ID
SubscriptionId 订阅 ID
EventTimeString 操作时间
EventProperties 操作属性
状态 操作状态
调用方 操作的调用方(Azure 门户或管理客户端)
Category OperationalLogs

下面是运行日志 JSON 字符串的示例:

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

在操作日志中捕获的事件和操作

操作日志捕获针对 Azure 服务总线命名空间执行的所有管理操作。 针对 Azure 服务总线执行的数据操作量很大,因此系统不会捕获数据操作。

注意

为了帮助你更好地跟踪数据操作,我们建议使用客户端跟踪。

在操作日志中捕获以下管理操作:

作用域 操作
命名空间
  • 创建命名空间
  • 更新命名空间
  • 删除命名空间
  • 更新命名空间 SharedAccess 策略
队列
  • 创建队列
  • 更新队列
  • 删除队列
  • 自动删除 - 删除队列
主题
  • 创建主题
  • 更新主题
  • 删除主题
  • 自动删除 - 删除主题
订阅
  • 创建订阅
  • 更新订阅
  • 删除订阅
  • 自动删除 - 删除订阅

注意

目前,不会在操作日志中跟踪“读取”操作。

虚拟网络和 IP 筛选日志

服务总线虚拟网络 (VNet) 连接事件 JSON 包括下表中列出的元素:

名称 说明
SubscriptionId Azure 订阅 ID
NamespaceName 命名空间名称
IPAddress 连接到服务总线服务的客户端的 IP 地址
操作 服务总线服务在评估连接请求时执行的操作。 支持的操作为“接受连接”和“拒绝连接” 。
原因 提供执行操作的原因
计数 给定操作的发生次数
ResourceId Azure 资源管理器资源 ID。
类别 ServiceBusVNetConnectionEvent

注意

只有当命名空间允许从选定的网络或从特定的 IP 地址(IP 筛选器规则)进行访问时,才会生成虚拟网络日志 。

下面是一个虚拟网络日志 JSON 字符串的示例:

{
    "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 SUBSCRPTION ID>/RESOURCEGROUPS/<RESOURCE GROUP NAME>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<SERVICE BUS NAMESPACE NAME>",
    "Category": "ServiceBusVNetConnectionEvent"
}

运行时审核日志

运行时审核日志捕获服务总线中各种数据平面访问操作(例如发送或接收消息)的聚合诊断信息。

注意

运行时审核日志目前仅在“高级”层中可用。

运行时审计日志包括下表中列出的元素:

名称 说明
ActivityId 随机生成的 UUID,确保审核活动的唯一性。
ActivityName 运行时操作名称。
ResourceId 与活动关联的资源。
Timestamp 聚合时间。
Status 活动的状态(成功或失败)。
Protocol 与操作关联的协议类型。
AuthType 身份验证类型(Azure Active Directory 或 SAS 策略)。
AuthKey 用于对资源进行身份验证的 Azure Active Directory 应用程序 ID 或 SAS 策略名称。
NetworkType 网络访问类型:PublicPrivate
ClientIP 客户端应用程序的 IP 地址。
Count 在 1 分钟的聚合时间段内执行的操作总数。
Properties 特定于数据平面操作的元数据。
Category 日志类别

以下是运行时审核日志条目的示例:

{
    "ActivityId": "<activity id>",
    "ActivityName": "ConnectionOpen | Authorization | SendMessage | ReceiveMessage",
    "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", 
    "AuthId": "<AAD Application Name| SAS policy name>",
    "NetworkType": "Public | Private", 
    "ClientIp": "x.x.x.x",
    "Count": 1, 
    "Category": "RuntimeAuditLogs"
 }

Azure Monitor 日志表

Azure 服务总线使用 Azure Monitor 日志中的 Kusto 表。 可以通过 Log Analytics 查询这些表。 有关服务使用的 Kusto 表的列表,请参阅 Azure Monitor 日志表参考

后续步骤