0

问题:是否有任何代码可以获取OpenTelemetry JS span 对象(由导出器接收)并将其转换为具有遥测数据而不具有内部实现细节的对象?

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

    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.context()方法,它只返回上下文信息,而不是其他相关数据。

4

1 回答 1

1

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

于 2021-06-02T23:25:51.637 回答