Reliable Service Remoting 的诊断和性能监视

Reliable ServiceRemoting 运行时会发出性能计数器。 这些有助于深入了解 ServiceRemoting 的运行状况以及进行故障排除和性能监视。

性能计数器

Reliable ServiceRemoting 运行时定义了以下性能计数器类别:

类别 说明
Service Fabric 服务 特定于 Azure Service Fabric Service Remoting 的计数器,例如,处理请求所需的平均时间
Service Fabric 服务方法 特定于 Service Fabric Remoting Service 所实现方法的计数器,例如,调用服务方法的频率

以上每个类别都有一个或多个计数器。

默认情况下在 Windows 操作系统中提供的 Windows 性能监视器 应用程序可用于收集和查看性能计数器数据。 Azure 诊断是用于收集性能计数器数据并将其上传到 Azure 表的另一个选项。

性能计数器实例名称

包含大量 ServiceRemoting 服务或分区的群集具有大量性能计数器实例。 性能计数器实例名称有助于标识与性能计数器实例相关联的特定分区和服务方法(如果适用)。

Service Fabric 服务类别

对于类别 Service Fabric Service,计数器实例名称采用以下格式:

ServiceFabricPartitionID_ServiceReplicaOrInstanceId_ServiceRuntimeInternalID

ServiceFabricPartitionID 是与性能计数器实例关联的 Service Fabric 分区 ID 的字符串表示形式。 分区 ID 是 GUID,并且其字符串表示形式通过使用格式说明符“D”的 Guid.ToString 方法生成。

ServiceReplicaOrInstanceId 是与性能计数器实例相关联的 Service Fabric 副本/实例 ID 的字符串表示形式。

ServiceRuntimeInternalID 是由 Fabric 服务运行时生成的供内部使用的 64 位整数的字符串表示形式。 这包括在性能计数器实例名称中,以确保其唯一性并避免与其他性能计数器实例名称发生冲突。 用户不应尝试解释此部分的性能计数器实例名称。

下面是属于 Service Fabric Service 类别的计数器的计数器实例名称的示例:

2740af29-78aa-44bc-a20b-7e60fb783264_635650083799324046_5008379932

在前面的示例中,2740af29-78aa-44bc-a20b-7e60fb783264 是 Service Fabric 分区 ID 的字符串表示形式,635650083799324046 是副本/实例 ID 的字符串表示形式,5008379932 是运行时生成的供内部使用的 64 位 ID。

Service Fabric 服务方法类别

对于类别 Service Fabric Service Method,计数器实例名称采用以下格式:

MethodName_ServiceRuntimeMethodId_ServiceFabricPartitionID_ServiceReplicaOrInstanceId_ServiceRuntimeInternalID

MethodName 是与性能计数器实例相关联的服务方法的名称。 方法名称的格式是根据 Fabric 服务运行时中的一些逻辑来确定的,该逻辑可以平衡名称的可读性和 Windows 上对性能计数器实例名称的最大长度的约束。

ServiceRuntimeMethodId 是由 Fabric 服务运行时生成的供内部使用的 32 位整数的字符串表示形式。 这包括在性能计数器实例名称中,以确保其唯一性并避免与其他性能计数器实例名称发生冲突。 用户不应尝试解释此部分的性能计数器实例名称。

ServiceFabricPartitionID 是与性能计数器实例关联的 Service Fabric 分区 ID 的字符串表示形式。 分区 ID 是 GUID,并且其字符串表示形式通过使用格式说明符“D”的 Guid.ToString 方法生成。

ServiceReplicaOrInstanceId 是与性能计数器实例相关联的 Service Fabric 副本/实例 ID 的字符串表示形式。

ServiceRuntimeInternalID 是由 Fabric 服务运行时生成的供内部使用的 64 位整数的字符串表示形式。 这包括在性能计数器实例名称中,以确保其唯一性并避免与其他性能计数器实例名称发生冲突。 用户不应尝试解释此部分的性能计数器实例名称。

下面是属于 Service Fabric Service Method 类别的计数器的计数器实例名称的示例:

ivoicemailboxservice.leavemessageasync_2_89383d32-e57e-4a9b-a6ad-57c6792aa521_635650083804480486_5008380

在前面的示例中,ivoicemailboxservice.leavemessageasync 是方法名称,2 是运行时生成的供内部使用的 32 位 ID,89383d32-e57e-4a9b-a6ad-57c6792aa521 是 Service Fabric 分区 ID 的字符串表示形式,635650083804480486 是 Service Fabric 副本/实例 ID 的字符串表示形式,5008380 是运行时生成的供内部使用的 64 位 ID。

性能计数器列表

服务方法性能计数器

Reliable Service 运行时发布与执行服务方法相关的下列性能计数器。

类别名称 计数器名称 说明
Service Fabric 服务方法 调用/秒 每秒调用服务方法的次数
Service Fabric 服务方法 每次调用的平均毫秒数 执行服务方法所用的时间(以毫秒为单位)
Service Fabric 服务方法 引发的异常数/秒 服务方法每秒引发异常的次数

服务请求处理的性能计数器

客户端通过服务代理对象调用方法时,会通过网络向远程服务发送请求消息。 该服务处理此请求消息并向客户端返回响应。 Reliable ServiceRemoting 运行时发布以下与服务请求处理相关的性能计数器。

类别名称 计数器名称 说明
Service Fabric 服务 未完成的请求数 正在服务中处理的请求数
Service Fabric 服务 每个请求的平均毫秒数 服务处理请求所用时间(以毫秒为单位)
Service Fabric 服务 反序列化请求的平均毫秒数 服务收到服务请求消息时,对此请求消息进行反序列化所用的时间(以毫秒为单位)
Service Fabric 服务 序列化响应的平均毫秒数 将响应发送到客户端之前,在服务中序列化服务响应消息所用的时间(以毫秒为单位)

后续步骤