UNPKG

grafana-mcp-analyzer

Version:

让AI助手直接分析你的Grafana监控数据 - A Model Context Protocol server for Grafana data analysis

119 lines (118 loc) 2.69 kB
export interface DataChunk { id: string; index: number; totalChunks: number; type: 'metadata' | 'data' | 'oversize'; contentType: string; content: any; size: number; metadata?: { startIndex?: number; endIndex?: number; timeRange?: { start: string; end: string; }; dataType?: string; }; } export interface ChunkingResult { chunks: DataChunk[]; metadata: { totalSize: number; totalChunks: number; dataType: string; chunkingStrategy: string; }; } /** * 获取最大分块大小,完全通过环境变量配置 */ export declare function getMaxChunkSize(): number; /** * 严格分块器 - 确保每个分块不超过配置的大小限制 */ export declare class StrictChunker { private maxChunkSize; constructor(maxChunkSize?: number); /** * 检测数据类型 */ private detectDataType; /** * 计算JSON大小 */ private calculateSize; /** * 检查是否在大小限制内 */ private isWithinLimit; /** * 分块Elasticsearch数据 */ private chunkElasticsearchData; /** * 分块Grafana查询数据 */ private chunkGrafanaQueryData; /** * 优化的Frame分块方法 - 减少分块数量 */ private chunkFrameOptimized; /** * 从frame中提取行数据 */ private extractRowsFromFrame; /** * 分块聚合数据 */ private chunkAggregations; /** * 分块数组数据 */ private chunkArray; /** * 处理过大的单个项目 */ private handleOversizedItem; /** * 提取项目摘要 */ private extractItemSummary; /** * 提取ES元数据 */ private extractESMetadata; /** * 主分块函数 */ chunk(data: any): ChunkingResult; /** * 分块表格数据 */ private chunkTableData; /** * 分块通用数据 */ private chunkGenericData; } /** * 创建严格分块器实例 */ export declare function createStrictChunker(maxChunkSize?: number): StrictChunker; /** * 分块数据并保存到文件 */ export declare function chunkAndSave(data: any, requestId: string, maxChunkSize?: number): Promise<ChunkingResult>; /** * 从文件加载分块 */ export declare function loadChunks(requestId: string): Promise<ChunkingResult>; /** * 验证分块结果 */ export declare function validateChunks(chunks: DataChunk[], maxChunkSize?: number): boolean; /** * 生成分块分析指导 */ export declare function generateChunkingGuidance(chunks: DataChunk[]): string;