【问题标题】:What should be an transaction in Sentry for React applicationSentry for React 应用程序中的事务应该是什么
【发布时间】:2021-04-06 15:55:25
【问题描述】:

事务的概念在 Sentry 文档中有简要说明

还有https://docs.sentry.io/product/performance/transaction-summary/

我的问题是:对于客户端(React)应用程序

是否可以在创建/渲染主/顶级组件时开始事务并在销毁时结束事务,知道用户可能会花费大量时间不与浏览器/组件交互并且没有代码在运行? - 或者那不是交易的设计目的

【问题讨论】:

    标签: sentry


    【解决方案1】:

    希望现在还不算太晚,但对于其他发现问题的人来说可能会很有趣:

    不,这不是交易的设计目的。在another part of the Sentry documentation 中有更详细的解释和一些例子(重点是我的):

    一个trace代表你想要的整个操作的记录 衡量或跟踪 - 比如页面加载,用户完成的实例 应用程序中的某些操作,或后端中的 cron 作业。当一个 跟踪包括多个服务中的工作,例如上面列出的那些, 它被称为分布式跟踪,因为跟踪是分布式的 跨这些服务。

    每条迹线都由一个或多个树状结构组成,称为 交易,其节点称为跨度。在大多数情况下,每个 transaction 表示正在调用的服务的单个实例该事务中的每个跨度都代表该服务 执行单个工作单元,是否在其中调用函数 该服务或调用其他服务。

    在您的客户端应用程序中,您可能对测量(例如)更感兴趣(在 React 的情况下)加载组件直到加载数据并完成第一次渲染所花费的时间。您的事务可能是组件的渲染,由多个跨度组成(安装、获取数据、渲染)。

    理论上你当然可以做你想做的事,Sentry 允许你进行这些长时间运行的事务,例如检查设置检测时的option maxTransactionDuration(默认为 10 分钟,因此您的示例可能有效)。

    如果您想知道人们在一个屏幕/一个小部件/视图中停留的时间以及他们如何与之交互,那么您可以收集这些事件的经典跟踪系统可能更符合您的需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 2010-11-28
      相关资源
      最近更新 更多