UNPKG

@breautek/storm

Version:

Object-Oriented REST API framework

40 lines (39 loc) 1.4 kB
export interface IMetricConfig { name: string; help: string; labelNames?: string[]; } export interface IMetricData { type: string; content: string; } export interface IHistogramConfig extends IMetricConfig { buckets?: number[]; } export interface IMetricCounter { inc(value?: number): void; inc(labels: Record<string, string | number>, value?: number): void; } export interface IMetricGauge { set(value: number): void; set(labels: Record<string, string | number>, value: number): void; inc(value?: number): void; inc(labels: Record<string, string | number>, value?: number): void; dec(value?: number): void; dec(labels: Record<string, string | number>, value?: number): void; } export interface IMetricHistogram { observe(value: number): void; observe(labels: Record<string, string | number>, value: number): void; startTimer(labels?: Record<string, string | number>): (labels?: Record<string, string | number>) => number; } export declare class MetricStore { private static $instance; private constructor(); static getInstance(): MetricStore; setDefaultLabels(labels: Record<string, string>): void; createCounter(config: IMetricConfig): IMetricCounter; createGauge(config: IMetricConfig): IMetricGauge; createHistogram(config: IHistogramConfig): IMetricHistogram; getMetrics(): Promise<IMetricData>; }