专栏首页黑客下午茶Sentry Web 性能监控 - Metrics

Sentry Web 性能监控 - Metrics

系列

目录

  • Apdex
  • 失败率
  • 吞吐量 (Total, TPM, TPS)
  • 延迟
    • 平均事务持续时间
    • P50 阈值
    • P75 阈值
    • P95 阈值
    • P99 阈值
  • 频率
  • User Misery
  • 自定义阈值

Apdex

Apdex 是一种行业标准指标,用于根据您的应用程序响应时间(response time)跟踪和衡量用户满意度(satisfaction)。Apdex 分数提供特定 transaction 或端点中满意(satisfactory)、可容忍(tolerable)和失败(frustrated)请求的比率。该指标为您提供了一个标准来比较 transaction 性能,了解哪些可能需要额外优化或调查,并为性能设定目标。

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

  • T:目标响应时间的阈值。
  • Satisfactory(满意度):当页面加载时间小于或等于 T 时,用户对使用该应用感到满意。
  • Tolerable(可容忍度):当页面加载时间在 T4T 之间时,用户认为该应用程序可以容忍使用。
  • Frustrated(失败):当用户的页面加载时间大于 4T 时,他们对应用程序感到失望。
  • Apdex:(满意请求数 +(可容忍请求数/2))/(总请求数)

Settings > Performance 中为 Apdex 配置令人满意的响应时间阈值 (ms)。您可以使用自定义阈值为每个项目设置此项。

失败率

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

  • https://develop.sentry.dev/sdk/event-payloads/span/

吞吐量 (Total, TPM, TPS)

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

延迟

平均事务持续时间

平均事务持续时间表示给定事务的所有出现的平均响应时间。

以下函数用于聚合事务(aggregate transaction)持续时间:

  • average
  • various percentiles(默认情况下,预构建的 Transactions 查询显示第 75 个和第 95 个百分位数,但还有许多其他选项,包括自定义百分位数)
  • maximum

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

查看平均值和百分位数时要注意一点:在大多数情况下,您需要设置跟踪,以便仅将可能的跟踪的一小部分实际发送到 Sentry,以避免使您的系统不堪重负。此外,您可能希望按日期或其他因素过滤您的 transaction 数据,或者您可能正在跟踪一个相对不常见的操作。由于所有这些原因,您最终可能会得到方向正确但不准确的平均值和百分位数据。(以最极端的情况为例,如果只有单个事务与您的过滤器匹配,您仍然可以计算“平均(average)”持续时间,即使这显然不是“平均(average)”通常的意思。)

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

  • https://docs.sentry.io/product/sentry-basics/tracing/distributed-tracing/#data-sampling

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 秒。

频率

以下函数汇总 transaction 计数和 transaction 记录速率:

  • count
  • count unique values (对于给定字段)
  • average requests (事务) per second
  • average requests (事务) per minute

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

  • https://docs.sentry.io/product/sentry-basics/tracing/distributed-tracing/#data-sampling

User Misery

User Misery 是一个用户加权的性能指标,用于评估应用程序性能的相对大小。虽然您可以使用 Apdex 检查各种响应时间阈值级别的比率,但 User Misery 会根据满意响应时间阈值 (ms) 的四倍计算感到失望的唯一用户数。User Misery 突出显示对用户影响最大的事务。

您可以使用自定义阈值为每个项目设置令人满意的阈值。

自定义阈值

对于每个项目,您可以在 [Project] > Settings > Performance 中配置 ApdexUser Misery 的计算方式。您可以在 Transaction Summary > Settings 中覆盖事务级别(transaction level )的项目级别设置。

计算方法确定持续时间是定义为事务的整个长度还是定义为特定的 Web Vital,例如 LCP。响应时间阈值确定令人满意的基线持续时间是多少毫秒。此阈值可能因项目而异,具体取决于项目面向用户的方式。

  • https://docs.sentry.io/product/performance/web-vitals/

本文分享自微信公众号 - 黑客下午茶(hi-weishao),作者:为少

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-09-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Sentry Web 性能监控 - Web Vitals

    Web Vitals 是谷歌定义的一组度量指标,用于度量渲染时间(render time)、响应时间(response time)和布局偏移(layout sh...

    为少
  • Sentry Web 性能监控 - Trends

    在 Performance 主页上,您可以通过切换 Performance 主页右上角的选项卡来找到 Trends View。此页面显示随着时间的推移其性能发生...

    为少
  • 搞事 | 这个周末我对落灰的云服务器做了什么?

    原文:https://zhuanlan.zhihu.com/Ehco-python

    咸鱼学Python
  • 前端监控那些事

    Sentry官方服务需要付费,建议自行搭建,可以通过docker去部署搭建,不作详细说明介绍,官方链接 点我?

    树酱
  • Docker部署sentry

    sentry概述   Sentry是程序的哨兵,它可以监控我们在生产环境中项目的运行状态,一旦某段代码运行报错或者异常,会第一时间把报错的路由异常文件,请求方式...

    院长技术
  • 业务日志监控工具Sentry介绍

    “ 我们在完成业务系统上线后除了正常关注系统进程、内存、CPU等这些物理指标并进行监控外,往往也需要观察线上业务日志的运行情况,特别是新系统上线后的业务异常日志...

    用户5927304
  • Installing sentry 9.0.0 with postgresql in Centos7

    Sentry是一个开源错误跟踪工具,可帮助您实时监控和修复bug。支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架...

    阿dai学长
  • sentry笔记整理

    使用nginx接受请求并对其进行转发。并使用了ngx_http_realip_module模块转发真实请求IP。

    魔王卷子
  • Sentry(v20.12.1) K8S 云原生架构探索,Sentry JavaScript SDK 三种安装加载方式

    Sentry 支持通过 CDN 加载其 JavaScript SDK。通常,我们建议使用 npm 软件包(@sentry/browser)作为 CDN 创建方案...

    为少
  • 从架构角度来看 Java 分布式日志如何收集

    本文来自作者 张振华 在 GitChat 上分享 「从架构角度来看 Java 分布式日志如何收集」

    CSDN技术头条
  • 从零构建Sentry v10 进行异常上报

    Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题。它主要专注于持续集成、提高效率并且提升用户体验。

    w候人兮猗
  • 记一次sentry部署过程

    程序员同行者
  • Sentry(v20.12.1) K8S 云原生架构探索,JavaScript Enriching Events(丰富事件信息)

    自定义上下文允许您将任意数据附加到事件。通常,此上下文在其生命周期中捕获的任何 issue 之间都是共享的。您无法搜索这些,但可以在 issue 页面上查看它们...

    为少
  • 从零构建Sentry v10 进行异常上报

    Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题。它主要专注于持续集成、提高效率并且提升用户体验。

    w候人兮猗
  • 0741-什么是Apache Ranger - 1

    作者:Eric Lin (林晨辉), Cloudera高级售后技术支持工程师。毕业于Monash大学计算机科学, Sir John Monash的奖学金获得者。...

    Fayson
  • 应用异常监控利器 Sentry 搭建与学习笔记

    Welcome to the Sentry documentation. Sentry is an open-source company,providing ...

    jeanron100
  • 应用异常监控利器 Sentry 搭建与学习笔记(修正版)

    Sentry是一家开源公司,提供了一个应用程序监视平台,可以帮助您实时识别问题。 在这里,我们涵盖了有关产品,平台集成和自托管Sentry的所有内容。【通俗讲的...

    jeanron100
  • Centos7使用docker搭建Sentry

      Sentry 是一款基于 Django实现的错误日志收集和聚合的平台,它是 Python 实现的,但是其日志监控功能却不局限于python,对诸如 Node...

    用户3773636
  • 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(开发基础篇)

    所以您想要开发一个 SDK ?在你开始之前,这里有一些基本的东西是值得遵循的,以获得更好的体验。

    为少

扫码关注云+社区

领取腾讯云代金券