首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >弹性APM RUM缺少嵌套跨度

弹性APM RUM缺少嵌套跨度
EN

Stack Overflow用户
提问于 2019-08-01 04:55:46
回答 1查看 532关注 0票数 0

当通过开放竞速API或Elastic APM的API在Elsatic APM中嵌套时。有些跨度从未被记录下来。

使用import * as apm from '@elastic/apm-rum';

代码语言:javascript
运行
复制
const transaction = this.apm.startTransaction('transaction-scene-loaded', 'custom'); // recorded
const span = this.apm.startSpan('span-scene-loaded', 'custom'); // recorded
const span2 = this.apm.startSpan('span-loading-state-updated', 'custom'); // Not recorded

span2.end();
span.end();
transaction.end();

使用Elastic的OpenTracing应用编程接口:

代码语言:javascript
运行
复制
const {
  init: initApm,
  createTracer
} = require('@elastic/apm-rum/dist/bundles/elastic-apm-opentracing.umd.js');

跨度的行为同样不一致。事务何时开始或何时结束尚不清楚。某些跨度被转换为事务,并且嵌套跨度可能不会被记录。如果我声明一个页面范围的事务,Angular的ngOnInit可以按跨度记录,但其他事件钩子永远不会被记录。

代码语言:javascript
运行
复制
onLoaded() {
  const span = this.tracer.startSpan('span-scene-loaded'); // Not recorded
  // ...
  span.end();
}

我已经尝试过它的变种。在span中包装span,childOf,应用级span,span的单个实例。

EN

回答 1

Stack Overflow用户

发布于 2019-08-01 05:04:17

要将跨度包括到事务中,您应该从transaction对象开始跨度

代码语言:javascript
运行
复制
...
var span = transaction.startSpan('My custom span')
...

并且结束父事务对象时,所有嵌套的跨度也将以级联的形式结束

https://www.elastic.co/guide/en/apm/agent/js-base/4.x/transaction-api.html#transaction-start-span

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57298727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档