@zhin.js/agent 0.1.25 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/README.md +1 -1
  2. package/lib/agent-prompt/registry.js +1 -1
  3. package/lib/agent-prompt/registry.js.map +1 -1
  4. package/lib/ai-event-bus.d.ts +19 -0
  5. package/lib/ai-event-bus.d.ts.map +1 -0
  6. package/lib/ai-event-bus.js +75 -0
  7. package/lib/ai-event-bus.js.map +1 -0
  8. package/lib/ai-event-subscriber.d.ts +38 -0
  9. package/lib/ai-event-subscriber.d.ts.map +1 -0
  10. package/lib/ai-event-subscriber.js +65 -0
  11. package/lib/ai-event-subscriber.js.map +1 -0
  12. package/lib/builtin/ask-user-tool.d.ts +2 -0
  13. package/lib/builtin/ask-user-tool.d.ts.map +1 -1
  14. package/lib/builtin/ask-user-tool.js +2 -0
  15. package/lib/builtin/ask-user-tool.js.map +1 -1
  16. package/lib/builtin/bash-tool.d.ts +7 -3
  17. package/lib/builtin/bash-tool.d.ts.map +1 -1
  18. package/lib/builtin/bash-tool.js +51 -9
  19. package/lib/builtin/bash-tool.js.map +1 -1
  20. package/lib/builtin/bing-search-html.d.ts.map +1 -1
  21. package/lib/builtin/bing-search-html.js +14 -7
  22. package/lib/builtin/bing-search-html.js.map +1 -1
  23. package/lib/builtin/builtin-base-tool.d.ts +2 -0
  24. package/lib/builtin/builtin-base-tool.d.ts.map +1 -1
  25. package/lib/builtin/builtin-base-tool.js +5 -0
  26. package/lib/builtin/builtin-base-tool.js.map +1 -1
  27. package/lib/builtin/edit-file-tool.d.ts +1 -1
  28. package/lib/builtin/edit-file-tool.d.ts.map +1 -1
  29. package/lib/builtin/edit-file-tool.js +33 -1
  30. package/lib/builtin/edit-file-tool.js.map +1 -1
  31. package/lib/builtin/file-edit-quote-utils.d.ts +1 -3
  32. package/lib/builtin/file-edit-quote-utils.d.ts.map +1 -1
  33. package/lib/builtin/file-edit-quote-utils.js +1 -3
  34. package/lib/builtin/file-edit-quote-utils.js.map +1 -1
  35. package/lib/builtin/glob-tool.d.ts +1 -1
  36. package/lib/builtin/glob-tool.d.ts.map +1 -1
  37. package/lib/builtin/glob-tool.js +15 -3
  38. package/lib/builtin/glob-tool.js.map +1 -1
  39. package/lib/builtin/grep-tool.d.ts +1 -1
  40. package/lib/builtin/grep-tool.d.ts.map +1 -1
  41. package/lib/builtin/grep-tool.js +16 -3
  42. package/lib/builtin/grep-tool.js.map +1 -1
  43. package/lib/builtin/list-dir-tool.d.ts +1 -1
  44. package/lib/builtin/list-dir-tool.d.ts.map +1 -1
  45. package/lib/builtin/list-dir-tool.js +14 -3
  46. package/lib/builtin/list-dir-tool.js.map +1 -1
  47. package/lib/builtin/read-file-tool.d.ts +1 -1
  48. package/lib/builtin/read-file-tool.d.ts.map +1 -1
  49. package/lib/builtin/read-file-tool.js +24 -3
  50. package/lib/builtin/read-file-tool.js.map +1 -1
  51. package/lib/builtin/run-deferred-task-tool.d.ts +3 -0
  52. package/lib/builtin/run-deferred-task-tool.d.ts.map +1 -1
  53. package/lib/builtin/run-deferred-task-tool.js +2 -0
  54. package/lib/builtin/run-deferred-task-tool.js.map +1 -1
  55. package/lib/builtin/spawn-task-tool.d.ts.map +1 -1
  56. package/lib/builtin/spawn-task-tool.js +2 -0
  57. package/lib/builtin/spawn-task-tool.js.map +1 -1
  58. package/lib/builtin/web-fetch-tool.d.ts +2 -2
  59. package/lib/builtin/web-fetch-tool.d.ts.map +1 -1
  60. package/lib/builtin/web-fetch-tool.js +12 -18
  61. package/lib/builtin/web-fetch-tool.js.map +1 -1
  62. package/lib/builtin/write-file-tool.d.ts +1 -1
  63. package/lib/builtin/write-file-tool.d.ts.map +1 -1
  64. package/lib/builtin/write-file-tool.js +33 -1
  65. package/lib/builtin/write-file-tool.js.map +1 -1
  66. package/lib/common-adapter-tools.d.ts +8 -41
  67. package/lib/common-adapter-tools.d.ts.map +1 -1
  68. package/lib/common-adapter-tools.js +23 -182
  69. package/lib/common-adapter-tools.js.map +1 -1
  70. package/lib/deferred-worker-runner.d.ts +13 -2
  71. package/lib/deferred-worker-runner.d.ts.map +1 -1
  72. package/lib/deferred-worker-runner.js +91 -13
  73. package/lib/deferred-worker-runner.js.map +1 -1
  74. package/lib/discovery/agents.js +1 -1
  75. package/lib/discovery/agents.js.map +1 -1
  76. package/lib/discovery/skills.js +1 -1
  77. package/lib/discovery/skills.js.map +1 -1
  78. package/lib/discovery/tools.d.ts +1 -1
  79. package/lib/discovery/tools.d.ts.map +1 -1
  80. package/lib/discovery/tools.js +17 -4
  81. package/lib/discovery/tools.js.map +1 -1
  82. package/lib/discovery/utils.js +1 -1
  83. package/lib/discovery/utils.js.map +1 -1
  84. package/lib/hooks.d.ts.map +1 -1
  85. package/lib/hooks.js +2 -0
  86. package/lib/hooks.js.map +1 -1
  87. package/lib/index.d.ts +9 -1
  88. package/lib/index.d.ts.map +1 -1
  89. package/lib/index.js +6 -0
  90. package/lib/index.js.map +1 -1
  91. package/lib/init/message-media.d.ts +3 -1
  92. package/lib/init/message-media.d.ts.map +1 -1
  93. package/lib/init/message-media.js +20 -0
  94. package/lib/init/message-media.js.map +1 -1
  95. package/lib/init/register-ai-service.js.map +1 -1
  96. package/lib/init/register-ai-trigger.d.ts.map +1 -1
  97. package/lib/init/register-ai-trigger.js +71 -10
  98. package/lib/init/register-ai-trigger.js.map +1 -1
  99. package/lib/init/register-builtin-tools.js +7 -7
  100. package/lib/init/register-builtin-tools.js.map +1 -1
  101. package/lib/init/register-typing-indicator.d.ts +10 -0
  102. package/lib/init/register-typing-indicator.d.ts.map +1 -0
  103. package/lib/init/register-typing-indicator.js +290 -0
  104. package/lib/init/register-typing-indicator.js.map +1 -0
  105. package/lib/init.d.ts.map +1 -1
  106. package/lib/init.js +2 -0
  107. package/lib/init.js.map +1 -1
  108. package/lib/mcp-client/connection.d.ts +2 -0
  109. package/lib/mcp-client/connection.d.ts.map +1 -1
  110. package/lib/mcp-client/connection.js +7 -0
  111. package/lib/mcp-client/connection.js.map +1 -1
  112. package/lib/mcp-client/index.d.ts +2 -0
  113. package/lib/mcp-client/index.d.ts.map +1 -1
  114. package/lib/mcp-client/index.js +19 -2
  115. package/lib/mcp-client/index.js.map +1 -1
  116. package/lib/monitoring/index.d.ts +79 -0
  117. package/lib/monitoring/index.d.ts.map +1 -0
  118. package/lib/monitoring/index.js +197 -0
  119. package/lib/monitoring/index.js.map +1 -0
  120. package/lib/monitoring/metrics.d.ts +240 -0
  121. package/lib/monitoring/metrics.d.ts.map +1 -0
  122. package/lib/monitoring/metrics.js +483 -0
  123. package/lib/monitoring/metrics.js.map +1 -0
  124. package/lib/orchestrator/agent-dispatcher.d.ts +170 -0
  125. package/lib/orchestrator/agent-dispatcher.d.ts.map +1 -0
  126. package/lib/orchestrator/agent-dispatcher.js +379 -0
  127. package/lib/orchestrator/agent-dispatcher.js.map +1 -0
  128. package/lib/orchestrator/hook-registry.d.ts.map +1 -1
  129. package/lib/orchestrator/hook-registry.js +2 -0
  130. package/lib/orchestrator/hook-registry.js.map +1 -1
  131. package/lib/orchestrator/index.d.ts +2 -0
  132. package/lib/orchestrator/index.d.ts.map +1 -1
  133. package/lib/orchestrator/index.js +2 -0
  134. package/lib/orchestrator/index.js.map +1 -1
  135. package/lib/orchestrator/mcp-lifecycle.d.ts +1 -1
  136. package/lib/orchestrator/mcp-lifecycle.d.ts.map +1 -1
  137. package/lib/orchestrator/mcp-lifecycle.js +2 -2
  138. package/lib/orchestrator/mcp-lifecycle.js.map +1 -1
  139. package/lib/orchestrator/mcp-registry.d.ts +8 -1
  140. package/lib/orchestrator/mcp-registry.d.ts.map +1 -1
  141. package/lib/orchestrator/mcp-registry.js +28 -5
  142. package/lib/orchestrator/mcp-registry.js.map +1 -1
  143. package/lib/orchestrator/task-queue.d.ts +147 -0
  144. package/lib/orchestrator/task-queue.d.ts.map +1 -0
  145. package/lib/orchestrator/task-queue.js +337 -0
  146. package/lib/orchestrator/task-queue.js.map +1 -0
  147. package/lib/orchestrator/tool-selection.d.ts.map +1 -1
  148. package/lib/orchestrator/tool-selection.js +3 -0
  149. package/lib/orchestrator/tool-selection.js.map +1 -1
  150. package/lib/orchestrator/types.d.ts +8 -0
  151. package/lib/orchestrator/types.d.ts.map +1 -1
  152. package/lib/plugin-ai-hook-bus.d.ts +4 -0
  153. package/lib/plugin-ai-hook-bus.d.ts.map +1 -0
  154. package/lib/plugin-ai-hook-bus.js +24 -0
  155. package/lib/plugin-ai-hook-bus.js.map +1 -0
  156. package/lib/security/anomaly-detection.d.ts +119 -0
  157. package/lib/security/anomaly-detection.d.ts.map +1 -0
  158. package/lib/security/anomaly-detection.js +305 -0
  159. package/lib/security/anomaly-detection.js.map +1 -0
  160. package/lib/security/audit-logger.d.ts +158 -0
  161. package/lib/security/audit-logger.d.ts.map +1 -0
  162. package/lib/security/audit-logger.js +379 -0
  163. package/lib/security/audit-logger.js.map +1 -0
  164. package/lib/security/bash-tool-context.d.ts +3 -3
  165. package/lib/security/bash-tool-context.d.ts.map +1 -1
  166. package/lib/security/budget-limiter.d.ts +156 -0
  167. package/lib/security/budget-limiter.d.ts.map +1 -0
  168. package/lib/security/budget-limiter.js +363 -0
  169. package/lib/security/budget-limiter.js.map +1 -0
  170. package/lib/security/dangerous-tool-policy.d.ts +17 -0
  171. package/lib/security/dangerous-tool-policy.d.ts.map +1 -0
  172. package/lib/security/dangerous-tool-policy.js +137 -0
  173. package/lib/security/dangerous-tool-policy.js.map +1 -0
  174. package/lib/security/exec-policy.d.ts +21 -12
  175. package/lib/security/exec-policy.d.ts.map +1 -1
  176. package/lib/security/exec-policy.js +198 -25
  177. package/lib/security/exec-policy.js.map +1 -1
  178. package/lib/security/file-policy.d.ts +0 -1
  179. package/lib/security/file-policy.d.ts.map +1 -1
  180. package/lib/security/file-policy.js +112 -14
  181. package/lib/security/file-policy.js.map +1 -1
  182. package/lib/security/file-role-policy.d.ts +119 -0
  183. package/lib/security/file-role-policy.d.ts.map +1 -0
  184. package/lib/security/file-role-policy.js +268 -0
  185. package/lib/security/file-role-policy.js.map +1 -0
  186. package/lib/security/index.d.ts +59 -0
  187. package/lib/security/index.d.ts.map +1 -1
  188. package/lib/security/index.js +68 -0
  189. package/lib/security/index.js.map +1 -1
  190. package/lib/security/network-policy.d.ts +94 -0
  191. package/lib/security/network-policy.d.ts.map +1 -0
  192. package/lib/security/network-policy.js +291 -0
  193. package/lib/security/network-policy.js.map +1 -0
  194. package/lib/security/owner-approve-always-store.d.ts +2 -0
  195. package/lib/security/owner-approve-always-store.d.ts.map +1 -1
  196. package/lib/security/owner-approve-always-store.js +37 -0
  197. package/lib/security/owner-approve-always-store.js.map +1 -1
  198. package/lib/security/sandbox-enhanced.d.ts +170 -0
  199. package/lib/security/sandbox-enhanced.d.ts.map +1 -0
  200. package/lib/security/sandbox-enhanced.js +630 -0
  201. package/lib/security/sandbox-enhanced.js.map +1 -0
  202. package/lib/security/sandbox.d.ts +104 -0
  203. package/lib/security/sandbox.d.ts.map +1 -0
  204. package/lib/security/sandbox.js +373 -0
  205. package/lib/security/sandbox.js.map +1 -0
  206. package/lib/security/security-config.example.d.ts +33 -0
  207. package/lib/security/security-config.example.d.ts.map +1 -0
  208. package/lib/security/security-config.example.js +166 -0
  209. package/lib/security/security-config.example.js.map +1 -0
  210. package/lib/subagent-goal-notify.d.ts +13 -0
  211. package/lib/subagent-goal-notify.d.ts.map +1 -0
  212. package/lib/subagent-goal-notify.js +32 -0
  213. package/lib/subagent-goal-notify.js.map +1 -0
  214. package/lib/subagent.d.ts +24 -0
  215. package/lib/subagent.d.ts.map +1 -1
  216. package/lib/subagent.js +98 -16
  217. package/lib/subagent.js.map +1 -1
  218. package/lib/typing-indicator/adapter-integration.d.ts +158 -0
  219. package/lib/typing-indicator/adapter-integration.d.ts.map +1 -0
  220. package/lib/typing-indicator/adapter-integration.js +465 -0
  221. package/lib/typing-indicator/adapter-integration.js.map +1 -0
  222. package/lib/typing-indicator/index.d.ts +170 -0
  223. package/lib/typing-indicator/index.d.ts.map +1 -0
  224. package/lib/typing-indicator/index.js +316 -0
  225. package/lib/typing-indicator/index.js.map +1 -0
  226. package/lib/typing-indicator/integration.d.ts +92 -0
  227. package/lib/typing-indicator/integration.d.ts.map +1 -0
  228. package/lib/typing-indicator/integration.js +220 -0
  229. package/lib/typing-indicator/integration.js.map +1 -0
  230. package/lib/zhin-agent/config.d.ts +20 -2
  231. package/lib/zhin-agent/config.d.ts.map +1 -1
  232. package/lib/zhin-agent/config.js +27 -9
  233. package/lib/zhin-agent/config.js.map +1 -1
  234. package/lib/zhin-agent/event-emitter.d.ts +11 -0
  235. package/lib/zhin-agent/event-emitter.d.ts.map +1 -0
  236. package/lib/zhin-agent/event-emitter.js +43 -0
  237. package/lib/zhin-agent/event-emitter.js.map +1 -0
  238. package/lib/zhin-agent/index.d.ts +9 -31
  239. package/lib/zhin-agent/index.d.ts.map +1 -1
  240. package/lib/zhin-agent/index.js +70 -672
  241. package/lib/zhin-agent/index.js.map +1 -1
  242. package/lib/zhin-agent/llm-runner.d.ts +16 -0
  243. package/lib/zhin-agent/llm-runner.d.ts.map +1 -0
  244. package/lib/zhin-agent/llm-runner.js +85 -0
  245. package/lib/zhin-agent/llm-runner.js.map +1 -0
  246. package/lib/zhin-agent/model-resolver.d.ts +9 -0
  247. package/lib/zhin-agent/model-resolver.d.ts.map +1 -0
  248. package/lib/zhin-agent/model-resolver.js +25 -0
  249. package/lib/zhin-agent/model-resolver.js.map +1 -0
  250. package/lib/zhin-agent/phase-trace.d.ts +12 -0
  251. package/lib/zhin-agent/phase-trace.d.ts.map +1 -0
  252. package/lib/zhin-agent/phase-trace.js +24 -0
  253. package/lib/zhin-agent/phase-trace.js.map +1 -0
  254. package/lib/zhin-agent/prompt-assembly.d.ts +22 -0
  255. package/lib/zhin-agent/prompt-assembly.d.ts.map +1 -0
  256. package/lib/zhin-agent/prompt-assembly.js +66 -0
  257. package/lib/zhin-agent/prompt-assembly.js.map +1 -0
  258. package/lib/zhin-agent/prompt-builder.d.ts +200 -0
  259. package/lib/zhin-agent/prompt-builder.d.ts.map +1 -0
  260. package/lib/zhin-agent/prompt-builder.js +574 -0
  261. package/lib/zhin-agent/prompt-builder.js.map +1 -0
  262. package/lib/zhin-agent/prompt-templates.d.ts +160 -0
  263. package/lib/zhin-agent/prompt-templates.d.ts.map +1 -0
  264. package/lib/zhin-agent/prompt-templates.js +436 -0
  265. package/lib/zhin-agent/prompt-templates.js.map +1 -0
  266. package/lib/zhin-agent/prompt.d.ts +15 -0
  267. package/lib/zhin-agent/prompt.d.ts.map +1 -1
  268. package/lib/zhin-agent/prompt.js +149 -4
  269. package/lib/zhin-agent/prompt.js.map +1 -1
  270. package/lib/zhin-agent/session-io.d.ts +10 -0
  271. package/lib/zhin-agent/session-io.d.ts.map +1 -0
  272. package/lib/zhin-agent/session-io.js +14 -0
  273. package/lib/zhin-agent/session-io.js.map +1 -0
  274. package/lib/zhin-agent/task-continuation.d.ts +144 -0
  275. package/lib/zhin-agent/task-continuation.d.ts.map +1 -0
  276. package/lib/zhin-agent/task-continuation.js +346 -0
  277. package/lib/zhin-agent/task-continuation.js.map +1 -0
  278. package/lib/zhin-agent/text-sanitize.d.ts +2 -5
  279. package/lib/zhin-agent/text-sanitize.d.ts.map +1 -1
  280. package/lib/zhin-agent/text-sanitize.js +2 -25
  281. package/lib/zhin-agent/text-sanitize.js.map +1 -1
  282. package/lib/zhin-agent/tool-calls-user-format.d.ts.map +1 -1
  283. package/lib/zhin-agent/tool-calls-user-format.js +12 -3
  284. package/lib/zhin-agent/tool-calls-user-format.js.map +1 -1
  285. package/lib/zhin-agent/tool-orchestration.d.ts +9 -0
  286. package/lib/zhin-agent/tool-orchestration.d.ts.map +1 -0
  287. package/lib/zhin-agent/tool-orchestration.js +68 -0
  288. package/lib/zhin-agent/tool-orchestration.js.map +1 -0
  289. package/lib/zhin-agent/tool-search-orchestrator.d.ts.map +1 -1
  290. package/lib/zhin-agent/tool-search-orchestrator.js +5 -2
  291. package/lib/zhin-agent/tool-search-orchestrator.js.map +1 -1
  292. package/lib/zhin-agent/turn-pipeline.d.ts +5 -0
  293. package/lib/zhin-agent/turn-pipeline.d.ts.map +1 -0
  294. package/lib/zhin-agent/turn-pipeline.js +541 -0
  295. package/lib/zhin-agent/turn-pipeline.js.map +1 -0
  296. package/lib/zhin-agent/turn-tracker.d.ts +17 -0
  297. package/lib/zhin-agent/turn-tracker.d.ts.map +1 -0
  298. package/lib/zhin-agent/turn-tracker.js +54 -0
  299. package/lib/zhin-agent/turn-tracker.js.map +1 -0
  300. package/lib/zhin-agent/web-search-locale-attach.d.ts +4 -0
  301. package/lib/zhin-agent/web-search-locale-attach.d.ts.map +1 -0
  302. package/lib/zhin-agent/web-search-locale-attach.js +19 -0
  303. package/lib/zhin-agent/web-search-locale-attach.js.map +1 -0
  304. package/lib/zhin-agent/zhin-agent-private.d.ts +66 -0
  305. package/lib/zhin-agent/zhin-agent-private.d.ts.map +1 -0
  306. package/lib/zhin-agent/zhin-agent-private.js +4 -0
  307. package/lib/zhin-agent/zhin-agent-private.js.map +1 -0
  308. package/package.json +6 -6
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Agent 监控和可观测性模块
3
+ *
4
+ * 提供:
5
+ * - 性能指标收集(Prometheus 格式)
6
+ * - 分布式追踪(OpenTelemetry 格式)
7
+ * - 实时监控仪表板数据
8
+ * - 告警规则配置
9
+ */
10
+ export * from './metrics.js';
11
+ import { getMetricsCollector, getAlertManager, getTraceCollector } from './metrics.js';
12
+ /**
13
+ * 生成监控仪表板数据
14
+ */
15
+ export function generateDashboardData() {
16
+ const metrics = getMetricsCollector();
17
+ const alerts = getAlertManager();
18
+ const traces = getTraceCollector();
19
+ // 获取工具执行统计
20
+ const toolExecutions = metrics.getValues('agent_tool_executions_total');
21
+ const toolDurations = metrics.getValues('agent_tool_execution_duration_seconds');
22
+ const totalExecutions = toolExecutions.reduce((sum, v) => sum + v.value, 0);
23
+ const successExecutions = toolExecutions
24
+ .filter(v => v.labels.status === 'success')
25
+ .reduce((sum, v) => sum + v.value, 0);
26
+ const failedExecutions = toolExecutions
27
+ .filter(v => v.labels.status === 'error')
28
+ .reduce((sum, v) => sum + v.value, 0);
29
+ const averageDuration = toolDurations.length > 0
30
+ ? toolDurations.reduce((sum, v) => sum + v.value, 0) / toolDurations.length
31
+ : 0;
32
+ // 获取会话统计
33
+ const sessions = metrics.getValues('agent_sessions_total');
34
+ const sessionDurations = metrics.getValues('agent_session_duration_seconds');
35
+ const totalSessions = sessions.reduce((sum, v) => sum + v.value, 0);
36
+ const activeSessions = sessions
37
+ .filter(v => v.labels.status === 'active')
38
+ .reduce((sum, v) => sum + v.value, 0);
39
+ const averageSessionDuration = sessionDurations.length > 0
40
+ ? sessionDurations.reduce((sum, v) => sum + v.value, 0) / sessionDurations.length
41
+ : 0;
42
+ // 获取 Token 使用统计
43
+ const tokenUsage = metrics.getValues('agent_token_usage_total');
44
+ const totalTokens = tokenUsage.reduce((sum, v) => sum + v.value, 0);
45
+ const inputTokens = tokenUsage
46
+ .filter(v => v.labels.type === 'input')
47
+ .reduce((sum, v) => sum + v.value, 0);
48
+ const outputTokens = tokenUsage
49
+ .filter(v => v.labels.type === 'output')
50
+ .reduce((sum, v) => sum + v.value, 0);
51
+ // 获取安全事件统计
52
+ const securityEvents = metrics.getValues('agent_security_events_total');
53
+ const totalSecurityEvents = securityEvents.reduce((sum, v) => sum + v.value, 0);
54
+ const violations = securityEvents
55
+ .filter(v => v.labels.type === 'violation')
56
+ .reduce((sum, v) => sum + v.value, 0);
57
+ const warnings = securityEvents
58
+ .filter(v => v.labels.severity === 'warning')
59
+ .reduce((sum, v) => sum + v.value, 0);
60
+ // 获取资源使用
61
+ const resourceUsage = metrics.getValues('agent_resource_usage');
62
+ const cpuUsage = resourceUsage.find(v => v.labels.type === 'cpu')?.value || 0;
63
+ const memoryUsage = resourceUsage.find(v => v.labels.type === 'memory')?.value || 0;
64
+ const activeConnections = resourceUsage.find(v => v.labels.type === 'connections')?.value || 0;
65
+ // 获取告警
66
+ const activeAlerts = alerts.getAlerts().map(alert => ({
67
+ id: alert.ruleId,
68
+ severity: alert.severity,
69
+ message: alert.message,
70
+ timestamp: alert.timestamp,
71
+ }));
72
+ // 获取追踪数据
73
+ const allTraces = traces.getAllSpans();
74
+ const traceMap = new Map();
75
+ for (const span of allTraces) {
76
+ if (!traceMap.has(span.traceId)) {
77
+ traceMap.set(span.traceId, []);
78
+ }
79
+ traceMap.get(span.traceId).push(span);
80
+ }
81
+ const traceSummaries = Array.from(traceMap.entries()).map(([traceId, spans]) => {
82
+ const startTime = Math.min(...spans.map(s => s.startTime));
83
+ const endTime = Math.max(...spans.map(s => s.endTime || s.startTime));
84
+ const duration = endTime - startTime;
85
+ const hasError = spans.some(s => s.status.code === 'ERROR');
86
+ return {
87
+ traceId,
88
+ spans: spans.length,
89
+ duration,
90
+ status: hasError ? 'ERROR' : 'OK',
91
+ };
92
+ });
93
+ return {
94
+ timestamp: Date.now(),
95
+ metrics: {
96
+ toolExecutions: {
97
+ total: totalExecutions,
98
+ success: successExecutions,
99
+ failed: failedExecutions,
100
+ averageDuration,
101
+ },
102
+ sessions: {
103
+ total: totalSessions,
104
+ active: activeSessions,
105
+ averageDuration: averageSessionDuration,
106
+ },
107
+ tokenUsage: {
108
+ total: totalTokens,
109
+ input: inputTokens,
110
+ output: outputTokens,
111
+ estimatedCost: totalTokens * 0.000002, // 简化的成本估算
112
+ },
113
+ securityEvents: {
114
+ total: totalSecurityEvents,
115
+ violations,
116
+ warnings,
117
+ },
118
+ resourceUsage: {
119
+ cpu: cpuUsage,
120
+ memory: memoryUsage,
121
+ activeConnections,
122
+ },
123
+ },
124
+ alerts: activeAlerts,
125
+ traces: traceSummaries.slice(0, 10), // 只返回最近 10 个追踪
126
+ };
127
+ }
128
+ /**
129
+ * 监控系统健康检查
130
+ */
131
+ export function healthCheck() {
132
+ const checks = [];
133
+ // 检查指标收集器
134
+ try {
135
+ const metrics = getMetricsCollector();
136
+ const allMetrics = metrics.getAllMetrics();
137
+ checks.push({
138
+ name: 'metrics_collector',
139
+ status: allMetrics.size > 0 ? 'pass' : 'warn',
140
+ message: `${allMetrics.size} metrics registered`,
141
+ });
142
+ }
143
+ catch (error) {
144
+ checks.push({
145
+ name: 'metrics_collector',
146
+ status: 'fail',
147
+ message: `Failed to initialize: ${error}`,
148
+ });
149
+ }
150
+ // 检查追踪收集器
151
+ try {
152
+ const traces = getTraceCollector();
153
+ const allSpans = traces.getAllSpans();
154
+ checks.push({
155
+ name: 'trace_collector',
156
+ status: 'pass',
157
+ message: `${allSpans.length} spans collected`,
158
+ });
159
+ }
160
+ catch (error) {
161
+ checks.push({
162
+ name: 'trace_collector',
163
+ status: 'fail',
164
+ message: `Failed to initialize: ${error}`,
165
+ });
166
+ }
167
+ // 检查告警管理器
168
+ try {
169
+ const alerts = getAlertManager();
170
+ const allAlerts = alerts.getAlerts();
171
+ const criticalAlerts = allAlerts.filter(a => a.severity === 'critical');
172
+ checks.push({
173
+ name: 'alert_manager',
174
+ status: criticalAlerts.length > 0 ? 'warn' : 'pass',
175
+ message: `${allAlerts.length} alerts (${criticalAlerts.length} critical)`,
176
+ });
177
+ }
178
+ catch (error) {
179
+ checks.push({
180
+ name: 'alert_manager',
181
+ status: 'fail',
182
+ message: `Failed to initialize: ${error}`,
183
+ });
184
+ }
185
+ // 确定总体状态
186
+ const hasFail = checks.some(c => c.status === 'fail');
187
+ const hasWarn = checks.some(c => c.status === 'warn');
188
+ let status = 'healthy';
189
+ if (hasFail) {
190
+ status = 'unhealthy';
191
+ }
192
+ else if (hasWarn) {
193
+ status = 'degraded';
194
+ }
195
+ return { status, checks };
196
+ }
197
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/monitoring/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA0DvF;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAEnC,WAAW;IACX,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAEjF,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5E,MAAM,iBAAiB,GAAG,cAAc;SACrC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;SAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,cAAc;SACpC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;SACxC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAExC,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;QAC9C,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM;QAC3E,CAAC,CAAC,CAAC,CAAC;IAEN,SAAS;IACT,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;IAE7E,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,cAAc,GAAG,QAAQ;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;SACzC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAExC,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACxD,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM;QACjF,CAAC,CAAC,CAAC,CAAC;IAEN,gBAAgB;IAChB,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,UAAU;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;SACtC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,UAAU;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;SACvC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAExC,WAAW;IACX,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IACxE,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,cAAc;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC;SAC1C,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,cAAc;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC;SAC5C,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAExC,SAAS;IACT,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IACpF,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IAE/F,OAAO;IACP,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpD,EAAE,EAAE,KAAK,CAAC,MAAM;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B,CAAC,CAAC,CAAC;IAEJ,SAAS;IACT,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAErD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;QAE5D,OAAO;YACL,OAAO;YACP,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,QAAQ;YACR,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;SAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,OAAO,EAAE;YACP,cAAc,EAAE;gBACd,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,gBAAgB;gBACxB,eAAe;aAChB;YACD,QAAQ,EAAE;gBACR,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,cAAc;gBACtB,eAAe,EAAE,sBAAsB;aACxC;YACD,UAAU,EAAE;gBACV,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,WAAW,GAAG,QAAQ,EAAE,UAAU;aAClD;YACD,cAAc,EAAE;gBACd,KAAK,EAAE,mBAAmB;gBAC1B,UAAU;gBACV,QAAQ;aACT;YACD,aAAa,EAAE;gBACb,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,WAAW;gBACnB,iBAAiB;aAClB;SACF;QACD,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,eAAe;KACrD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IAQzB,MAAM,MAAM,GAIP,EAAE,CAAC;IAER,UAAU;IACV,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC7C,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,qBAAqB;SACjD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,yBAAyB,KAAK,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,UAAU;IACV,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,kBAAkB;SAC9C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,yBAAyB,KAAK,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,UAAU;IACV,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;QAExE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACnD,OAAO,EAAE,GAAG,SAAS,CAAC,MAAM,YAAY,cAAc,CAAC,MAAM,YAAY;SAC1E,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,yBAAyB,KAAK,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,SAAS;IACT,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAEtD,IAAI,MAAM,GAAyC,SAAS,CAAC;IAC7D,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,GAAG,WAAW,CAAC;IACvB,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,MAAM,GAAG,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Agent 监控和可观测性模块
3
+ *
4
+ * 提供:
5
+ * - 性能指标收集(Prometheus 格式)
6
+ * - 分布式追踪(OpenTelemetry 格式)
7
+ * - 实时监控仪表板数据
8
+ * - 告警规则配置
9
+ */
10
+ export type MetricType = 'counter' | 'gauge' | 'histogram' | 'summary';
11
+ export interface MetricLabels {
12
+ [key: string]: string;
13
+ }
14
+ export interface MetricValue {
15
+ value: number;
16
+ labels: MetricLabels;
17
+ timestamp?: number;
18
+ }
19
+ export interface MetricDefinition {
20
+ name: string;
21
+ type: MetricType;
22
+ help: string;
23
+ labels?: string[];
24
+ }
25
+ export declare class MetricsCollector {
26
+ private metrics;
27
+ private values;
28
+ /**
29
+ * 注册指标
30
+ */
31
+ register(definition: MetricDefinition): void;
32
+ /**
33
+ * 增加计数器
34
+ */
35
+ increment(name: string, labels?: MetricLabels, value?: number): void;
36
+ /**
37
+ * 设置仪表盘值
38
+ */
39
+ set(name: string, value: number, labels?: MetricLabels): void;
40
+ /**
41
+ * 记录直方图值
42
+ */
43
+ observe(name: string, value: number, labels?: MetricLabels): void;
44
+ /**
45
+ * 获取指标值
46
+ */
47
+ getValues(name: string): MetricValue[];
48
+ /**
49
+ * 获取所有指标
50
+ */
51
+ getAllMetrics(): Map<string, MetricDefinition>;
52
+ /**
53
+ * 导出 Prometheus 格式
54
+ */
55
+ toPrometheus(): string;
56
+ /**
57
+ * 构建指标键
58
+ */
59
+ private buildKey;
60
+ }
61
+ export declare const AGENT_METRICS: {
62
+ TOOL_EXECUTIONS: {
63
+ name: string;
64
+ type: MetricType;
65
+ help: string;
66
+ labels: string[];
67
+ };
68
+ TOOL_EXECUTION_DURATION: {
69
+ name: string;
70
+ type: MetricType;
71
+ help: string;
72
+ labels: string[];
73
+ };
74
+ AGENT_SESSIONS: {
75
+ name: string;
76
+ type: MetricType;
77
+ help: string;
78
+ labels: string[];
79
+ };
80
+ AGENT_SESSION_DURATION: {
81
+ name: string;
82
+ type: MetricType;
83
+ help: string;
84
+ labels: string[];
85
+ };
86
+ TOKEN_USAGE: {
87
+ name: string;
88
+ type: MetricType;
89
+ help: string;
90
+ labels: string[];
91
+ };
92
+ SECURITY_EVENTS: {
93
+ name: string;
94
+ type: MetricType;
95
+ help: string;
96
+ labels: string[];
97
+ };
98
+ RESOURCE_USAGE: {
99
+ name: string;
100
+ type: MetricType;
101
+ help: string;
102
+ labels: string[];
103
+ };
104
+ ERRORS: {
105
+ name: string;
106
+ type: MetricType;
107
+ help: string;
108
+ labels: string[];
109
+ };
110
+ };
111
+ export interface TraceSpan {
112
+ traceId: string;
113
+ spanId: string;
114
+ parentSpanId?: string;
115
+ name: string;
116
+ startTime: number;
117
+ endTime?: number;
118
+ attributes: Record<string, unknown>;
119
+ events: Array<{
120
+ name: string;
121
+ timestamp: number;
122
+ attributes: Record<string, unknown>;
123
+ }>;
124
+ status: {
125
+ code: 'OK' | 'ERROR' | 'UNSET';
126
+ message?: string;
127
+ };
128
+ }
129
+ export declare class TraceCollector {
130
+ private spans;
131
+ private activeSpans;
132
+ /**
133
+ * 开始一个新的 Span
134
+ */
135
+ startSpan(name: string, parentSpanId?: string, attributes?: Record<string, unknown>): TraceSpan;
136
+ /**
137
+ * 结束 Span
138
+ */
139
+ endSpan(spanId: string, status?: {
140
+ code: 'OK' | 'ERROR' | 'UNSET';
141
+ message?: string;
142
+ }): void;
143
+ /**
144
+ * 添加事件到 Span
145
+ */
146
+ addEvent(spanId: string, name: string, attributes?: Record<string, unknown>): void;
147
+ /**
148
+ * 设置 Span 属性
149
+ */
150
+ setAttributes(spanId: string, attributes: Record<string, unknown>): void;
151
+ /**
152
+ * 获取 Span
153
+ */
154
+ getSpan(spanId: string): TraceSpan | undefined;
155
+ /**
156
+ * 获取所有 Span
157
+ */
158
+ getAllSpans(): TraceSpan[];
159
+ /**
160
+ * 获取追踪
161
+ */
162
+ getTrace(traceId: string): TraceSpan[];
163
+ /**
164
+ * 导出 OpenTelemetry 格式
165
+ */
166
+ toOpenTelemetry(): object;
167
+ /**
168
+ * 生成 Trace ID
169
+ */
170
+ private generateTraceId;
171
+ /**
172
+ * 生成 Span ID
173
+ */
174
+ private generateSpanId;
175
+ }
176
+ export interface AlertRule {
177
+ id: string;
178
+ name: string;
179
+ description: string;
180
+ condition: (metrics: MetricsCollector) => boolean;
181
+ severity: 'info' | 'warning' | 'error' | 'critical';
182
+ message: string;
183
+ enabled: boolean;
184
+ }
185
+ export declare class AlertManager {
186
+ private rules;
187
+ private alerts;
188
+ /**
189
+ * 添加告警规则
190
+ */
191
+ addRule(rule: AlertRule): void;
192
+ /**
193
+ * 移除告警规则
194
+ */
195
+ removeRule(ruleId: string): void;
196
+ /**
197
+ * 检查告警
198
+ */
199
+ checkAlerts(metrics: MetricsCollector): Array<{
200
+ ruleId: string;
201
+ timestamp: number;
202
+ message: string;
203
+ severity: string;
204
+ }>;
205
+ /**
206
+ * 获取所有告警
207
+ */
208
+ getAlerts(): Array<{
209
+ ruleId: string;
210
+ timestamp: number;
211
+ message: string;
212
+ severity: string;
213
+ }>;
214
+ /**
215
+ * 清除告警
216
+ */
217
+ clearAlerts(): void;
218
+ }
219
+ export declare const DEFAULT_ALERT_RULES: AlertRule[];
220
+ /**
221
+ * 获取全局指标收集器
222
+ */
223
+ export declare function getMetricsCollector(): MetricsCollector;
224
+ /**
225
+ * 获取全局追踪收集器
226
+ */
227
+ export declare function getTraceCollector(): TraceCollector;
228
+ /**
229
+ * 获取全局告警管理器
230
+ */
231
+ export declare function getAlertManager(): AlertManager;
232
+ /**
233
+ * 初始化监控系统
234
+ */
235
+ export declare function initMonitoring(): {
236
+ metrics: MetricsCollector;
237
+ traces: TraceCollector;
238
+ alerts: AlertManager;
239
+ };
240
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/monitoring/metrics.ts"],"names":[],"mappings":"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"}