datadog-logger-integrations
Version:
Datadog logger integrations
46 lines (42 loc) • 1.53 kB
TypeScript
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 };