微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何序列化 OpenTelemetry Javascript Span

如何解决如何序列化 OpenTelemetry Javascript Span

问题:是否有任何代码可以采用 OpenTelemetry JS 跨度对象(由导出器接收)并将其转换为具有遥测数据而非内部实现的对象详情?

那就是——如果我有这样的出口商

    class FileSpanExporter {
      constructor() {
        this.stream = fs.createWriteStream('/tmp/telemetry.log',{flag:'a'})
      }
      export(spans,resultCallback) {
          this.stream.write(JSON.stringify(spans))
          if(resultCallback) {
            return resultCallback({ code: core.ExportResultCode.SUCCESS });
          }
      }
    }

写入日志的跨度包括我认为遥测数据的数据

    "attributes": {
      "express.name": "query","express.type": "middleware"
    },// ...
    "endTime": [
      1622658683,606307380
    ],// ...    

但也包括实现细节的数据

    "_spanProcessor": {
      "_spanProcessors": [
        {
          "_exporter": {
        // ... way more data snipped ...

开放遥测 javascript 代码是否有任何方法可以序列化 span 以只是获得它的遥测数据?或者是最终用户程序员有责任在导出之前决定他们对哪些数据感兴趣/不感兴趣。到目前为止,我能找到的只有 span.context() 方法,它返回上下文信息,而不返回其他相关数据。

解决方法

您可能正在寻找与此 https://github.com/open-telemetry/opentelemetry-js/blob/main/packages/opentelemetry-tracing/src/export/ConsoleSpanExporter.ts 类似的内容。这是专门为调试目的而设计的,对于实际应用来说并不是一个很好的选择。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。