Skip to main content
Glama

MCP SQL Server

by ryudg
GeneratePerformanceReportUseCase.ts3.13 kB
import { PerformanceDomainService } from '../../domain/performance/services/PerformanceDomainService.js'; export interface GeneratePerformanceReportRequest { period?: '1h' | '24h' | '7d'; } export interface GeneratePerformanceReportResponse { success: boolean; report?: { period: string; generatedAt: Date; summary: { currentMetric: any; activeAlerts: any[]; overallHealth: 'healthy' | 'warning' | 'critical'; recommendations: string[]; }; connectionPoolStatus: { current: any; trend: string; }; queryPerformance: { current: any; trend: string; }; systemHealth: { current: any; trend: string; }; }; error?: string; } export class GeneratePerformanceReportUseCase { constructor(private readonly performanceDomainService: PerformanceDomainService) {} async execute( request: GeneratePerformanceReportRequest ): Promise<GeneratePerformanceReportResponse> { try { const period = request.period || '1h'; // get performance summary const summary = await this.performanceDomainService.getPerformanceSummary(period); // create report const report = { period, generatedAt: new Date(), summary, connectionPoolStatus: { current: summary.currentMetric?.connectionPool || null, trend: this.analyzeTrend('connectionPool', summary.currentMetric), }, queryPerformance: { current: summary.currentMetric?.query || null, trend: this.analyzeTrend('query', summary.currentMetric), }, systemHealth: { current: summary.currentMetric?.system || null, trend: this.analyzeTrend('system', summary.currentMetric), }, }; return { success: true, report, }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : 'Unknown error occurred', }; } } private analyzeTrend(category: string, currentMetric: any): string { // simple trend analysis (should compare with past data) if (!currentMetric) return 'No data available'; switch (category) { case 'connectionPool': const utilization = currentMetric.connectionPool?.utilization || 0; if (utilization > 80) return 'High utilization - trending up'; if (utilization > 50) return 'Moderate utilization - stable'; return 'Low utilization - stable'; case 'query': const avgTime = currentMetric.query?.averageExecutionTime || 0; if (avgTime > 2000) return 'Slow queries detected - needs attention'; if (avgTime > 1000) return 'Moderate performance - stable'; return 'Good performance - stable'; case 'system': const cpuUsage = currentMetric.system?.cpuUsage || 0; if (cpuUsage > 80) return 'High resource usage - trending up'; if (cpuUsage > 50) return 'Moderate resource usage - stable'; return 'Low resource usage - stable'; default: return 'Unknown trend'; } } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ryudg/mcp-sql'

If you have feedback or need assistance with the MCP directory API, please join our Discord server