UNPKG

datadog-logger-integrations

Version:
46 lines (42 loc) 1.53 kB
import { v2, client } from '@datadog/datadog-api-client'; import { Writable } from 'node:stream'; type LogMessageBuilder<T = Record<string, unknown>> = (log: T) => v2.HTTPLogItem; type LogStreamConfig<T = Record<string, unknown>> = { ddClientConfig?: Parameters<typeof client.createConfiguration>[0]; ddServerConfig?: { site?: string; subdomain?: string; protocol?: string; }; ddSource?: string; ddTags?: string; service?: string; sendIntervalMs?: number; batchSize?: number; logMessageBuilder?: LogMessageBuilder<T>; debug?: boolean; }; declare class DataDogWritableStream<T = Record<string, unknown>> extends Writable { private readonly config; apiInstance: v2.LogsApi; batch: v2.HTTPLogItem[]; timer?: NodeJS.Timeout; flushJob?: Promise<void>; constructor(config: { ddClientConfig?: Parameters<typeof client.createConfiguration>[0]; ddServerConfig?: { site?: string; subdomain?: string; protocol?: string; }; sendIntervalMs?: number; batchSize?: number; debug?: boolean; logMessageBuilder: LogMessageBuilder<T>; }); _write(item: string | string[] | object, _encoding: unknown, callback: (err?: Error | null) => void): Promise<void>; _final(callback: (err?: Error | null) => void): Promise<void>; flush(batch: v2.HTTPLogItem[]): Promise<void>; } export { DataDogWritableStream }; export type { LogMessageBuilder, LogStreamConfig };