@harvve/tslog-influxdb-transport
Version:
Send logs to influxdb2 via telegraf without writing them to files.
44 lines (43 loc) • 1.61 kB
TypeScript
/// <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;
}