/* * Copyright Lumigo * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { hrTimeToMicroseconds } from '@opentelemetry/core'; import type { ReadableSpan } from '@opentelemetry/sdk-trace-base'; import { FileExporter } from './FileExporter'; /** * This is implementation of {@link FileExporter} that prints spans to a file. * This class can be used for debug purposes. It is not advised to use this * exporter in production. */ export class FileSpanExporter extends FileExporter { protected exportInfo(span: ReadableSpan): Object { return { traceId: span.spanContext().traceId, parentId: span.parentSpanContext?.spanId, name: span.name, id: span.spanContext().spanId, kind: span.kind, timestamp: hrTimeToMicroseconds(span.startTime), duration: hrTimeToMicroseconds(span.duration), attributes: span.attributes, status: span.status, events: span.events, resource: { attributes: span.resource.attributes, }, }; } }