sentry性能监控之度量(翻译)

4,273 阅读5分钟

度量提供了有关用户如何体验您的应用程序的洞察力。在性能方面,我们将为您设置一些基本指标,以帮助您开始工作。要进一步定制目标阈值,可以使用discoverquerybuilder构建查询。通过确定有用的阈值来度量应用程序,您就可以对应用程序的运行状况进行量化度量。这意味着您可以更容易地确定何时发生错误或是否出现性能问题。

Apdex

Apdex是一种行业标准度量,用于根据应用程序响应时间跟踪和测量用户满意度。Apdex分数提供特定事务或端点中令人满意的、可容忍的和失败的请求的比率。此度量为您提供了一个标准,用于比较事务性能,了解哪些事务可能需要额外的优化或调查,并为性能设置目标或目标。

以下是Apdex的组成部分及其公式:

  • T: 目标响应时间的阈值。

  • 满意:当用户的页面加载时间小于或等于T时,用户对应用程序的使用感到满意。

  • 可容忍:当用户的页面加载时间在T到4T之间时,用户认为该应用程序可以使用。

  • 沮丧:当用户的页面加载时间超过4T时,用户对应用程序感到沮丧。

  • Apdex:(满意请求数+(可容忍请求数/2))/(总请求数)

故障率

failure_rate() 指示不成功事务的百分比。Sentry将状态不是“ok”、“canceled”和“unknown”的事务视为失败。有关更多详细信息,请参阅可能的状态值列表。

吞吐量(总吞吐量、TPM、TPS)

吞吐量表示给定时间范围内的事务数(总计)、平均每分钟事务数(TPM)或平均每秒事务数(TPS)。

延迟

平均事务持续时间

Average Transaction Duration指示给定事务的所有事件的平均响应时间。

以下函数用于聚合事务持续时间:

  • 平均的

  • 各种百分位(默认情况下,预构建事务查询显示第75和第95百分位,但还有许多其他选项,包括自定义百分位)

  • 最大限度

跟踪这些统计数据的一个用例是帮助您识别比组织的目标服务级别协议(sla)慢的事务。

在查看平均值和百分位数时要注意:在大多数情况下,您会希望设置跟踪,以便只有一小部分可能的痕迹被实际发送到哨兵,以避免压倒您的系统。此外,您可能希望按日期或其他因素筛选事务数据,或者您可能正在跟踪一个相对不常见的操作。由于所有这些原因,您可能最终得到方向正确但不准确的平均值和百分位数数据。(以最极端的情况为例,如果只有一个事务匹配您的过滤器,那么您仍然可以计算“平均”持续时间,尽管这显然不是通常所说的“平均”时间。)

对于某些指标来说,小样本量(以及由此导致的无法有效准确)的问题将比其他指标更常见,而且样本量也会因行而异。例如,计算一个有意义的平均值所需的数据比计算同样有意义的第95个百分位值要少。此外,表示对/settings/my awesome org/的请求的行可能包含的事务数可能是对/settings/my awesome org/projects/best project ever/的请求的数倍。

P50阈值

P50阈值表示50%的事务持续时间大于阈值。这也是中值。例如,如果P50阈值设置为10毫秒,则50%的事务超过该阈值,所用时间超过10毫秒。

P75阈值

P75阈值表示25%的事务持续时间大于阈值。例如,如果P75阈值设置为10毫秒,则25%的事务超过该阈值,所用时间超过10毫秒。

P95阈值

P95阈值表示5%的事务持续时间大于阈值。例如,如果P95阈值为50毫秒,则5%的事务超过该阈值,所用时间超过50毫秒。

P99阈值

P99阈值表示1%的事务持续时间大于阈值。例如,如果P99阈值为5秒,则1%的事务超过该阈值,所用时间超过5秒。

频率

以下函数汇总事务计数和记录事务的速率:

  • 计数

  • 计数唯一值(对于给定字段)

  • 平均每秒请求(事务数)

  • 平均每分钟请求(事务数)

这些函数中的每一个都是根据给定行中的事务集合计算的,这意味着数字将随着您过滤数据或更改时间窗口而改变。另外,如果您设置了SDK来对数据进行采样,请记住,只有发送到Sentry的事务才被计算在内。因此,如果一行包含表示对给定端点的请求的事务的行被计算为每秒接收5个请求,并且启用了25%的采样率,那么实际上,每秒大约有20个请求到达该端点。(20,因为你收集了25%或1/4的数据,所以你的实际数据量是你在Sentry中看到的4倍。)

用户痛苦

用户痛苦是一种用户加权的性能指标,用于评估应用程序性能的相对大小。虽然您可以使用Apdex检查各种响应时间阈值级别的比率,但是用户痛苦会根据指定的响应时间阈值统计受到挫折的唯一用户的数量。用户痛苦突出了对用户影响最大的事务。