UNPKG

@venly/wallet-mcp

Version:

Production-ready MCP server enabling AI agents to perform Web3 wallet operations through Venly's blockchain infrastructure. Supports 14+ networks including Ethereum, Polygon, Arbitrum, and stablecoin operations.

94 lines 2.31 kB
/** * Prometheus Metrics Export for Grafana Integration * * Provides /metrics endpoint for existing Grafana monitoring */ import { VenlyClient } from '../venly/VenlyClient.js'; import winston from 'winston'; export interface MetricValue { name: string; help: string; type: 'counter' | 'gauge' | 'histogram' | 'summary'; value: number; labels?: Record<string, string>; } export interface PrometheusMetrics { [key: string]: MetricValue; } /** * Prometheus Metrics Service */ export declare class PrometheusMetricsService { private startTime; private metrics; private requestCount; private successCount; private errorCount; private toolUsageCount; private responseTimes; private venlyApiResponseTimes; constructor(_venlyClient: VenlyClient, _logger: winston.Logger); /** * Initialize default metrics */ private initializeMetrics; /** * Update server uptime metric */ private updateUptimeMetric; /** * Update memory metrics */ private updateMemoryMetrics; /** * Update authentication status metric */ private updateAuthMetric; /** * Record MCP request */ recordRequest(toolName: string, responseTime: number, success: boolean): void; /** * Record Venly API request */ recordVenlyApiRequest(responseTime: number): void; /** * Get tool usage metrics */ private getToolUsageMetrics; /** * Generate Prometheus metrics format */ generateMetrics(): string; /** * Get Node.js process metrics */ private getProcessMetrics; /** * Get metrics summary for health checks */ getMetricsSummary(): { totalRequests: number; successRate: number; errorRate: number; averageResponseTime: number; memoryUsage: number; uptime: number; }; } /** * Metrics endpoint handler */ export declare class MetricsRoutes { private metricsService; constructor(metricsService: PrometheusMetricsService); /** * GET /metrics - Prometheus metrics endpoint */ handleMetrics(): Promise<{ statusCode: number; body: string; headers: Record<string, string>; }>; } //# sourceMappingURL=prometheus.d.ts.map