【发布时间】:2021-04-06 15:55:25
【问题描述】:
事务的概念在 Sentry 文档中有简要说明
还有https://docs.sentry.io/product/performance/transaction-summary/
我的问题是:对于客户端(React)应用程序
是否可以在创建/渲染主/顶级组件时开始事务并在销毁时结束事务,知道用户可能会花费大量时间不与浏览器/组件交互并且没有代码在运行? - 或者那不是交易的设计目的
【问题讨论】:
标签: sentry
事务的概念在 Sentry 文档中有简要说明
还有https://docs.sentry.io/product/performance/transaction-summary/
我的问题是:对于客户端(React)应用程序
是否可以在创建/渲染主/顶级组件时开始事务并在销毁时结束事务,知道用户可能会花费大量时间不与浏览器/组件交互并且没有代码在运行? - 或者那不是交易的设计目的
【问题讨论】:
标签: sentry
希望现在还不算太晚,但对于其他发现问题的人来说可能会很有趣:
不,这不是交易的设计目的。在another part of the Sentry documentation 中有更详细的解释和一些例子(重点是我的):
一个trace代表你想要的整个操作的记录 衡量或跟踪 - 比如页面加载,用户完成的实例 应用程序中的某些操作,或后端中的 cron 作业。当一个 跟踪包括多个服务中的工作,例如上面列出的那些, 它被称为分布式跟踪,因为跟踪是分布式的 跨这些服务。
每条迹线都由一个或多个树状结构组成,称为 交易,其节点称为跨度。在大多数情况下,每个 transaction 表示正在调用的服务的单个实例, 该事务中的每个跨度都代表该服务 执行单个工作单元,是否在其中调用函数 该服务或调用其他服务。
在您的客户端应用程序中,您可能对测量(例如)更感兴趣(在 React 的情况下)加载组件直到加载数据并完成第一次渲染所花费的时间。您的事务可能是组件的渲染,由多个跨度组成(安装、获取数据、渲染)。
理论上你当然可以做你想做的事,Sentry 允许你进行这些长时间运行的事务,例如检查设置检测时的option maxTransactionDuration(默认为 10 分钟,因此您的示例可能有效)。
如果您想知道人们在一个屏幕/一个小部件/视图中停留的时间以及他们如何与之交互,那么您可以收集这些事件的经典跟踪系统可能更符合您的需要。
【讨论】: