grafana-mcp-analyzer
Version:
让AI助手直接分析你的Grafana监控数据 - A Model Context Protocol server for Grafana data analysis
119 lines (118 loc) • 2.69 kB
TypeScript
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;