UNPKG

@platformatic/kafka

Version:

Modern and performant client for Apache Kafka

62 lines (61 loc) 1.95 kB
type RegistryContentType = 'application/openmetrics-text; version=1.0.0; charset=utf-8' | 'text/plain; version=0.0.4; charset=utf-8'; export interface Metric { name?: string; get(): Promise<unknown>; reset: () => void; labels(labels: any): any; } export interface Counter extends Metric { inc: (value?: number) => void; } export interface Gauge extends Metric { inc: (value?: number) => void; dec: (value?: number) => void; } export interface Histogram extends Metric { observe: (value: number) => void; } export interface Summary { } export interface Registry { getSingleMetric: (name: string) => Counter | Gauge | Histogram | any; metrics(): Promise<string>; clear(): void; resetMetrics(): void; registerMetric(metric: Metric): void; getMetricsAsJSON(): Promise<any>; getMetricsAsArray(): any[]; removeSingleMetric(name: string): void; setDefaultLabels(labels: object): void; getSingleMetricAsString(name: string): Promise<string>; readonly contentType: RegistryContentType; setContentType(contentType: RegistryContentType): void; } export interface Prometheus { Counter: new (options: { name: string; help: string; registers: Registry[]; labelNames?: string[]; }) => Counter; Gauge: new (options: { name: string; help: string; registers: Registry[]; labelNames?: string[]; }) => Gauge; Histogram: new (options: { name: string; help: string; registers: Registry[]; labelNames?: string[]; }) => Histogram; Registry: new (contentType?: string) => Registry; } export interface Metrics { registry: Registry; client: Prometheus; labels?: Record<string, any>; } export declare function ensureMetric<MetricType extends Metric>(metrics: Metrics, type: 'Gauge' | 'Counter' | 'Histogram', name: string, help: string): MetricType; export {};