UNPKG

@multiplayer-app/otlp-core

Version:

Multiplayer otlp core

29 lines (26 loc) 929 B
import { ReadableLogRecord } from '@opentelemetry/sdk-logs' import { createExportLogsServiceRequest, ISerializer, IExportLogsServiceResponse, } from '@opentelemetry/otlp-transformer' import { MULTIPLAYER_TRACE_DEBUG_PREFIX } from './constants.base' export const MultiplayerJsonLogsSerializer: ISerializer< ReadableLogRecord[], IExportLogsServiceResponse > = { serializeRequest: (arg: ReadableLogRecord[]) => { const filteredArg = arg.filter(logRecord => logRecord?.spanContext?.traceId ?.startsWith(MULTIPLAYER_TRACE_DEBUG_PREFIX)) const request = createExportLogsServiceRequest(filteredArg, { useHex: true, useLongBits: false, }) const encoder = new TextEncoder() return encoder.encode(JSON.stringify(request)) }, deserializeResponse: (arg: Uint8Array) => { const decoder = new TextDecoder() return JSON.parse(decoder.decode(arg)) as IExportLogsServiceResponse }, }