@hemantwasthere/monitoring-sdk
Version:
Centralized monitoring SDK for Node.js applications with Prometheus, Loki, and Grafana integration
24 lines (23 loc) • 1.14 kB
TypeScript
import * as client from "prom-client";
import { CronJobMetric, CustomMetricConfig, MonitoringConfig } from "./types";
export declare class MetricsService {
private static instance;
private config;
private httpRequestDuration;
private cronJobDuration;
private cronJobFailures;
private customMetrics;
private constructor();
static getInstance(config?: MonitoringConfig): MetricsService;
private initializeMetrics;
recordHttpRequest(method: string, route: string, statusCode: number, duration: number): void;
recordCronJob(metric: CronJobMetric): void;
createCustomMetric(config: CustomMetricConfig): client.Metric<string>;
getCustomMetric(name: string): client.Metric<string> | undefined;
getMetrics(): Promise<string>;
getRegistry(): client.Registry;
createCounter(name: string, help: string, labelNames?: string[]): client.Counter<string>;
createGauge(name: string, help: string, labelNames?: string[]): client.Gauge<string>;
createHistogram(name: string, help: string, labelNames?: string[], buckets?: number[]): client.Histogram<string>;
static reset(): void;
}