UNPKG

@connectedcars/logutil

Version:
45 lines (44 loc) 1.4 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; export declare enum MetricType { GAUGE = "GAUGE", CUMULATIVE = "CUMULATIVE" } interface BaseMetric { name: string; labels?: Record<string, unknown>; startTime?: number; endTime?: number; } type ReducerFn = (arr: number[]) => number; interface GaugeMetric extends BaseMetric { type: MetricType.GAUGE; value: number | number[]; reducerFn?: ReducerFn; } interface CumulativeMetric extends BaseMetric { type: MetricType.CUMULATIVE; value: number; startTime: number; } type Metric = GaugeMetric | CumulativeMetric; type FilteredMetric = Omit<Metric, 'value'> & { value: number; endTime: number; }; export declare class MetricRegistry extends EventEmitter { private metrics; logMetrics(): void; getMetrics(): FilteredMetric[]; gauge(name: string, value: number, labels?: Record<string, unknown>, reducerFn?: ReducerFn | null): void; cumulative(name: string, value: number, labels?: Record<string, unknown>): void; getMetric(name: string): FilteredMetric[]; clearMetric(name: string): void; getMetricNames(): string[]; private convertTimestampToIsoString; private createKey; private formatLabels; } export declare function getMetricRegistry(delay?: number): MetricRegistry; export declare function clearMetricRegistry(): void; export {};