feat: restore core chat and observability
This commit is contained in:
@@ -901,7 +901,10 @@ export interface WorkflowStreamEvent {
|
||||
accumulated_content?: string; // 累积内容
|
||||
// 并行执行字段
|
||||
branches?: string[]; // 并行分支 ID 列表
|
||||
branch_id?: string;
|
||||
branch_label?: string;
|
||||
branch_results?: Record<string, any>; // 各分支执行结果
|
||||
results?: any;
|
||||
// 循环迭代字段
|
||||
iteration?: number; // 当前迭代次数(从 0 开始)
|
||||
total?: number; // 总迭代次数(for_each 模式)
|
||||
@@ -1154,20 +1157,37 @@ export interface ReasoningStep {
|
||||
| 'action'
|
||||
| 'annotation_reply'
|
||||
| 'knowledge_retrieval'
|
||||
| 'loop_complete'
|
||||
| 'loop_iteration_complete'
|
||||
| 'loop_iteration_error'
|
||||
| 'loop_iteration_start'
|
||||
| 'node_complete'
|
||||
| 'node_start'
|
||||
| 'observation'
|
||||
| 'parallel_complete'
|
||||
| 'parallel_start'
|
||||
| 'thought';
|
||||
content: string;
|
||||
tool?: string;
|
||||
params?: Record<string, any>;
|
||||
branch_id?: string;
|
||||
branch_label?: string;
|
||||
agent_code?: string;
|
||||
agent_name?: string;
|
||||
model?: string;
|
||||
model_id?: string;
|
||||
subflow_name?: string;
|
||||
from_subflow?: boolean;
|
||||
collaboration_role?: string;
|
||||
collaboration_mode?: string;
|
||||
communication?: Record<string, any>;
|
||||
timestamp: string;
|
||||
// 对话流模式:节点信息
|
||||
node_id?: string;
|
||||
node_type?: string;
|
||||
output?: any;
|
||||
/** 步骤状态:running 执行中,completed 已完成 */
|
||||
status?: 'completed' | 'running';
|
||||
status?: 'completed' | 'failed' | 'running';
|
||||
}
|
||||
|
||||
/** 工具调用记录 */
|
||||
@@ -1237,6 +1257,8 @@ export interface AgentChatEvent {
|
||||
| 'node_event'
|
||||
| 'node_start'
|
||||
| 'observation'
|
||||
| 'parallel_complete'
|
||||
| 'parallel_start'
|
||||
| 'start'
|
||||
| 'thought'
|
||||
| 'waiting_input';
|
||||
@@ -1254,7 +1276,12 @@ export interface AgentChatEvent {
|
||||
node_id?: string;
|
||||
node_type?: string;
|
||||
node_label?: string;
|
||||
branch_id?: string;
|
||||
branch_label?: string;
|
||||
communication?: Record<string, any>;
|
||||
output?: any;
|
||||
results?: any;
|
||||
branch_results?: Record<string, any>;
|
||||
outputs?: {
|
||||
output?: any;
|
||||
output_variables?: Record<string, any>;
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
import { requestClient } from '#/api/request';
|
||||
|
||||
// 数据库基本信息
|
||||
export interface DatabaseBasicInfo {
|
||||
db_type: string;
|
||||
host: string;
|
||||
port: number;
|
||||
database: string;
|
||||
version: string;
|
||||
uptime: string;
|
||||
timezone: string;
|
||||
charset: string;
|
||||
}
|
||||
|
||||
// 数据库连接信息
|
||||
export interface DatabaseConnectionInfo {
|
||||
total_connections: number;
|
||||
max_connections: number;
|
||||
active_connections: number;
|
||||
idle_connections: number;
|
||||
connection_usage_percent: number;
|
||||
}
|
||||
|
||||
// 数据库大小信息
|
||||
export interface DatabaseSize {
|
||||
database_size_bytes: number;
|
||||
database_size_mb: number;
|
||||
database_size_gb: number;
|
||||
}
|
||||
|
||||
// 数据库性能统计
|
||||
export interface DatabasePerformanceStats {
|
||||
// PostgreSQL
|
||||
total_backends?: number;
|
||||
transactions_commit?: number;
|
||||
transactions_rollback?: number;
|
||||
tuples_returned?: number;
|
||||
tuples_fetched?: number;
|
||||
tuples_inserted?: number;
|
||||
tuples_updated?: number;
|
||||
tuples_deleted?: number;
|
||||
|
||||
// MySQL
|
||||
total_queries?: number;
|
||||
total_connections?: number;
|
||||
slow_queries?: number;
|
||||
bytes_received?: number;
|
||||
bytes_sent?: number;
|
||||
|
||||
// SQL Server
|
||||
batch_requests_per_sec?: number;
|
||||
page_life_expectancy?: number;
|
||||
buffer_cache_hit_ratio?: number;
|
||||
|
||||
// 通用
|
||||
cache_hit_ratio: number;
|
||||
}
|
||||
|
||||
// 数据库表统计
|
||||
export interface DatabaseTableStats {
|
||||
// PostgreSQL
|
||||
schemaname?: string;
|
||||
tablename?: string;
|
||||
inserts?: number;
|
||||
updates?: number;
|
||||
deletes?: number;
|
||||
live_tuples?: number;
|
||||
dead_tuples?: number;
|
||||
size?: string;
|
||||
size_bytes?: number;
|
||||
total_size?: string;
|
||||
total_size_bytes?: number;
|
||||
|
||||
// MySQL
|
||||
table_name?: string;
|
||||
table_rows?: number;
|
||||
data_length?: number;
|
||||
index_length?: number;
|
||||
auto_increment?: number;
|
||||
|
||||
// SQL Server
|
||||
total_size_kb?: number;
|
||||
used_size_kb?: number;
|
||||
data_size_kb?: number;
|
||||
|
||||
// Oracle
|
||||
size_bytes?: number;
|
||||
}
|
||||
|
||||
// 数据库概览
|
||||
export interface DatabaseMonitorOverview {
|
||||
connection_id: string;
|
||||
connection_name: string;
|
||||
status: string;
|
||||
basic_info: DatabaseBasicInfo;
|
||||
connection_info: DatabaseConnectionInfo;
|
||||
database_size: DatabaseSize;
|
||||
performance_stats: DatabasePerformanceStats;
|
||||
table_stats: DatabaseTableStats[];
|
||||
timestamp: string;
|
||||
}
|
||||
|
||||
// 数据库实时统计
|
||||
export interface DatabaseRealtimeStats {
|
||||
connection_id: string;
|
||||
connections_used: number;
|
||||
connection_usage_percent: number;
|
||||
database_size_mb: number;
|
||||
cache_hit_ratio: number;
|
||||
active_connections: number;
|
||||
timestamp: string;
|
||||
}
|
||||
|
||||
// 数据库连接测试
|
||||
export interface DatabaseConnectionTest {
|
||||
success: boolean;
|
||||
message: string;
|
||||
response_time?: number;
|
||||
version?: string;
|
||||
db_type: string;
|
||||
}
|
||||
|
||||
// 数据库配置(监控目标 = 数据库连接 code)
|
||||
export interface DatabaseConfig {
|
||||
name: string;
|
||||
db_name: string;
|
||||
db_type: string;
|
||||
host: string;
|
||||
port: number;
|
||||
database: string;
|
||||
user: string;
|
||||
has_password: boolean;
|
||||
is_system?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据库监控配置列表
|
||||
*/
|
||||
export async function getDatabaseMonitorConfigsApi() {
|
||||
return requestClient.get<DatabaseConfig[]>(
|
||||
'/api/core/database_monitor/configs',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据库概览信息
|
||||
*/
|
||||
export async function getDatabaseMonitorOverviewApi(dbName: string) {
|
||||
return requestClient.get<DatabaseMonitorOverview>(
|
||||
`/api/core/database_monitor/${dbName}/overview`,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据库实时统计信息
|
||||
*/
|
||||
export async function getDatabaseRealtimeStatsApi(dbName: string) {
|
||||
return requestClient.get<DatabaseRealtimeStats>(
|
||||
`/api/core/database_monitor/${dbName}/realtime`,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试数据库连接
|
||||
*/
|
||||
export async function testDatabaseConnectionApi(dbName: string) {
|
||||
return requestClient.post<DatabaseConnectionTest>(
|
||||
`/api/core/database_monitor/${dbName}/test`,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
import { requestClient } from '#/api/request';
|
||||
|
||||
// Redis配置信息
|
||||
export interface RedisConfig {
|
||||
host: string;
|
||||
port: number;
|
||||
database: number;
|
||||
has_password: boolean;
|
||||
redis_url: string;
|
||||
}
|
||||
|
||||
// Redis基础信息
|
||||
export interface RedisInfo {
|
||||
redis_version: string;
|
||||
redis_mode: string;
|
||||
role: string;
|
||||
os: string;
|
||||
arch_bits: number;
|
||||
uptime_in_seconds: number;
|
||||
uptime_in_days: number;
|
||||
tcp_port: number;
|
||||
connected_clients: number;
|
||||
blocked_clients: number;
|
||||
}
|
||||
|
||||
// Redis内存信息
|
||||
export interface RedisMemory {
|
||||
used_memory: number;
|
||||
used_memory_human: string;
|
||||
used_memory_rss: number;
|
||||
used_memory_peak: number;
|
||||
used_memory_peak_human: string;
|
||||
total_system_memory: number;
|
||||
total_system_memory_human: string;
|
||||
used_memory_dataset: number;
|
||||
used_memory_dataset_perc: string;
|
||||
allocator_allocated: number;
|
||||
allocator_active: number;
|
||||
maxmemory: number;
|
||||
maxmemory_human: string;
|
||||
maxmemory_policy: string;
|
||||
mem_fragmentation_ratio: number;
|
||||
}
|
||||
|
||||
// Redis统计信息
|
||||
export interface RedisStats {
|
||||
total_connections_received: number;
|
||||
total_commands_processed: number;
|
||||
instantaneous_ops_per_sec: number;
|
||||
total_net_input_bytes: number;
|
||||
total_net_output_bytes: number;
|
||||
instantaneous_input_kbps: number;
|
||||
instantaneous_output_kbps: number;
|
||||
rejected_connections: number;
|
||||
sync_full: number;
|
||||
sync_partial_ok: number;
|
||||
sync_partial_err: number;
|
||||
expired_keys: number;
|
||||
evicted_keys: number;
|
||||
keyspace_hits: number;
|
||||
keyspace_misses: number;
|
||||
pubsub_channels: number;
|
||||
pubsub_patterns: number;
|
||||
latest_fork_usec: number;
|
||||
migrate_cached_sockets: number;
|
||||
}
|
||||
|
||||
// Redis键空间信息
|
||||
export interface RedisKeyspace {
|
||||
db_id: number;
|
||||
keys: number;
|
||||
expires: number;
|
||||
avg_ttl: number;
|
||||
}
|
||||
|
||||
// Redis客户端信息
|
||||
export interface RedisClient {
|
||||
id: string;
|
||||
addr: string;
|
||||
fd: number;
|
||||
name: string;
|
||||
age: number;
|
||||
idle: number;
|
||||
flags: string;
|
||||
db: number;
|
||||
sub: number;
|
||||
psub: number;
|
||||
multi: number;
|
||||
qbuf: number;
|
||||
qbuf_free: number;
|
||||
obl: number;
|
||||
oll: number;
|
||||
omem: number;
|
||||
events: string;
|
||||
cmd: string;
|
||||
}
|
||||
|
||||
// Redis慢日志
|
||||
export interface RedisSlowLog {
|
||||
id: number;
|
||||
timestamp: number;
|
||||
duration: number;
|
||||
command: string;
|
||||
client_ip: string;
|
||||
client_name: string;
|
||||
}
|
||||
|
||||
// Redis监控概览
|
||||
export interface RedisMonitorOverview {
|
||||
connection_id: string;
|
||||
connection_name: string;
|
||||
status: string;
|
||||
info: RedisInfo;
|
||||
memory: RedisMemory;
|
||||
stats: RedisStats;
|
||||
keyspace: RedisKeyspace[];
|
||||
clients: RedisClient[];
|
||||
slow_log: RedisSlowLog[];
|
||||
timestamp: string;
|
||||
}
|
||||
|
||||
// Redis实时统计
|
||||
export interface RedisRealtimeStats {
|
||||
connection_id: string;
|
||||
used_memory: number;
|
||||
memory_usage_percent: number;
|
||||
connected_clients: number;
|
||||
ops_per_sec: number;
|
||||
hit_rate: number;
|
||||
keyspace_hits: number;
|
||||
keyspace_misses: number;
|
||||
timestamp: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取Redis配置信息
|
||||
*/
|
||||
export async function getRedisConfigApi() {
|
||||
return requestClient.get<RedisConfig>('/api/core/redis_monitor/config');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取Redis监控概览
|
||||
*/
|
||||
export async function getRedisMonitorOverviewApi() {
|
||||
return requestClient.get<RedisMonitorOverview>(
|
||||
'/api/core/redis_monitor/overview',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取Redis实时统计
|
||||
*/
|
||||
export async function getRedisRealtimeStatsApi() {
|
||||
return requestClient.get<RedisRealtimeStats>(
|
||||
'/api/core/redis_monitor/realtime',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试Redis连接
|
||||
*/
|
||||
export async function testRedisConnectionApi() {
|
||||
return requestClient.post<{
|
||||
message: string;
|
||||
redis_version?: string;
|
||||
response_time?: number;
|
||||
success: boolean;
|
||||
}>('/api/core/redis_monitor/test');
|
||||
}
|
||||
Reference in New Issue
Block a user