UNPKG

@harvve/tslog-influxdb-transport

Version:

Send logs to influxdb2 via telegraf without writing them to files.

44 lines (43 loc) 1.61 kB
/// <reference types="node" /> import { SocketType } from 'dgram'; import { TTransportLogger, ILogObject, TLogLevelName } from 'tslog'; export declare type AvailableKeys = Omit<ILogObject, 'toJSON' | 'stack'>; export interface ITransporterOptions { /** Name of measurement */ measurementName: string; /** Destination port */ port: number; /** Destination host name or IP address */ address: string; /** Type of socket - udp4 or udp6 */ socketType: SocketType; /** Minimum logging level to transport - default 'debug' */ minLevel?: TLogLevelName; /** List of field keys - If no keys are provided, the default ones will be used */ fieldKeys?: Array<keyof AvailableKeys>; /** List of tag keys - with string value only - If keys are not specified, default ones will be used */ tagKeys?: Array<keyof AvailableKeys>; } export interface ITransportProvider { minLevel: TLogLevelName; transportLogger: TTransportLogger<(message: ILogObject) => void>; } export declare class Transporter { private options; private socket; private readonly MATCH_SPECIAL_CHARS; private readonly MATCH_TWO_OR_MORE_SPACES; private readonly SKIP_SPACES_PATTERN; private readonly SKIP_SPACES_REPLACEMENT; private readonly DEFAULT_FIELD_KEYS; private readonly DEFAULT_TAG_KEYS; constructor(options: ITransporterOptions); /** * @returns Transport provider */ getTransportProvider(): ITransportProvider; private transport; private prepareMessage; private prepareEntries; private errorIfOnlyOneListProvided; }