code: function convertToZipkinSpan(span) {
    const result = {};
    result.traceId = utility.md5(span.traceId);
    result.parentId = span.parentSpanId;
    result.id = span.spanId;
    result.name = span.name;
    // it's microseconds
    result.timestamp = span.startTime * 1000;
    // it's microseconds
    result.duration = (span.finishTime - span.startTime) * 1000;
    result.tags = span.getTags();
  
    result.localEndpoint = {
      serviceName: span.getTag('appname'),
      ipv4: span.getTag('local.ipv4'),
      ipv6: span.getTag('local.ipv6'),
      port: span.getTag('local.port'),
    };
  
    let kind = span.getTag('span.kind');
    if (kind) {
      kind = kind.toUpperCase();
    }
    if ([ 'CLIENT', 'SERVER', 'PRODUCER', 'CONSUMER' ].includes(kind)) {
      result.kind = kind;
      result.remoteEndpoint = {
        serviceName: span.getTag('peer.service'),
        ipv6: span.getTag('peer.ipv6'),
        ipv4: span.getTag('peer.ipv4'),
        port: span.getTag('peer.port'),
      };
    }
  
    result.annotations = [];
    result.debug = false;
    result.shared = false;
    return result;
  }
docs: https://github.com/openzipkin/zipkin-js/blob/master/packages/zipkin/src/model.js