news 2026/6/19 20:49:05

MonkeyCode 的可观测性体系:日志、监控与告警的完整方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MonkeyCode 的可观测性体系:日志、监控与告警的完整方案

MonkeyCode 的可观测性体系:日志、监控与告警的完整方案

当你管理着成百上千个用户容器时,"出了问题不知道"比"出了问题"更可怕。MonkeyCode 构建了一套完整的可观测性体系,让运维团队能够实时感知系统状态。

可观测性的三大支柱

MonkeyCode 的可观测性体系基于三大支柱:

  • 日志(Logging)— 记录系统中发生的每一件事
  • 指标(Metrics)— 量化系统的运行状态
  • 追踪(Tracing)— 追踪请求在系统中的流转路径

日志系统

结构化日志

所有日志采用JSON格式,便于机器解析和搜索:

{\n "timestamp": "2026-06-08T10:30:00.123Z",\n "level": "info",\n "service": "gateway",\n "traceId": "abc123",\n "userId": "user_456",\n "action": "workspace.create",\n "duration_ms": 2340,\n "status": "success",\n "workspaceId": "ws_789"\n}

日志采集架构

容器日志 → Fluent Bit → Kafka → ClickHouse\n ↓\n Grafana Loki(搜索和查询)

关键设计决策:

  • 用Fluent Bit而不是Fluentd — 资源占用更少(每个节点约10MB内存)
  • 用Kafka做缓冲 — 日志高峰期不会压垮存储
  • 用ClickHouse做长期存储 — 列式存储压缩率高,查询快
  • 用Loki做实时搜索 — 与Grafana无缝集成

指标监控

核心指标

MonkeyCode 监控以下核心指标:

基础设施层

  • 节点CPU/内存/磁盘使用率
  • 容器创建/销毁速率
  • 网络带宽使用量

应用层

  • API请求延迟(P50/P90/P99)
  • AI模型调用延迟
  • WebSocket连接数
  • 错误率(按错误码分类)

业务层

  • 活跃用户数
  • 并发Workspace数
  • AI对话次数
  • 代码提交次数

Prometheus + Grafana

指标采集使用Prometheus,展示使用Grafana:

// 关键告警规则\ngroups:\n - name: monkeycode-alerts\n rules:\n - alert: WorkspaceCreationSlow\n expr: histogram_quantile(0.99, workspace_creation_duration_seconds) > 10\n for: 5m\n annotations:\n summary: "Workspace创建P99延迟超过10秒"\n \n - alert: AIModelHighLatency\n expr: histogram_quantile(0.95, ai_model_response_duration_seconds) > 5\n for: 10m\n annotations:\n summary: "AI模型P95响应延迟超过5秒"\n \n - alert: ContainerRestartLoop\n expr: rate(container_restarts_total[5m]) > 0.1\n for: 5m\n annotations:\n summary: "容器频繁重启"

分布式追踪

一次AI对话请求可能经过5-6个服务。追踪让团队能看到完整的调用链:

用户发送消息\n → Gateway(认证鉴权)10ms\n → Model Router(选择模型)5ms\n → Prompt Builder(构建提示词)2ms\n → AI Model API(模型调用)1800ms\n → Response Parser(解析响应)3ms\n → 审计日志记录 8ms\n → 返回用户 总计: 1828ms

MonkeyCode 使用OpenTelemetry进行分布式追踪,数据存储在Jaeger中。

告警体系

告警分为四个等级:

等级含义通知方式响应时间
P0系统不可用电话+短信+IM5分钟
P1核心功能降级短信+IM15分钟
P2次要功能异常IM1小时
P3需要关注IM下一工作日

开源自建 vs 商业方案

MonkeyCode 选择全栈开源方案(Prometheus + Grafana + Loki + Jaeger),而非商业方案(DataDog/New Relic):

  • 成本— 商业方案按量计费,1000+用户规模月费$5000+
  • 数据主权— 监控数据不离开自己的服务器
  • 可定制性— 开源方案可以深度定制
  • 与私有化部署一致— 用户自部署时使用相同的监控方案

总结

可观测性不是奢侈品,而是必需品。MonkeyCode通过日志、指标、追踪三大支柱,实现了对系统运行状态的全面感知。这些监控方案随开源代码一起发布,企业用户在私有化部署时可以直接使用。

监控配置参考:github.com/chaitin/MonkeyCode/tree/main/deploy/monitoring

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 6:11:13

MonkeyCode 与国产大模型:通义千问、DeepSeek、GLM的适配之路

MonkeyCode 与国产大模型:通义千问、DeepSeek、GLM的适配之路MonkeyCode 支持的AI模型中,国产模型占了半壁江山:通义千问(Qwen)、DeepSeek、智谱GLM、Kimi。适配国产模型不只是换一个API地址,还涉及Prompt优…

作者头像 李华
网站建设 2026/6/14 6:11:16

12个开源组件:构建你的智能知识管理系统

12个开源组件:构建你的智能知识管理系统 【免费下载链接】Obsidian-Templates A repository containing templates and scripts for #Obsidian to support the #Zettelkasten method for note-taking. 项目地址: https://gitcode.com/gh_mirrors/ob/Obsidian-Temp…

作者头像 李华
网站建设 2026/6/18 5:39:30

深度解析RTSPtoWeb:纯Go实现的实时视频流转换架构设计

深度解析RTSPtoWeb:纯Go实现的实时视频流转换架构设计 【免费下载链接】RTSPtoWeb RTSP Stream to WebBrowser 项目地址: https://gitcode.com/gh_mirrors/rt/RTSPtoWeb 在当今数字化监控和实时视频传输领域,RTSP协议作为行业标准被广泛应用于IP摄…

作者头像 李华
网站建设 2026/6/17 21:33:20

Windows 11终极去广告与系统优化工具:Win11Debloat完整指南

Windows 11终极去广告与系统优化工具:Win11Debloat完整指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter a…

作者头像 李华
网站建设 2026/6/14 6:11:33

MPC5200 Local Plus总线:非复用与复用模式的设计权衡与实战配置

1. MPC5200 Local Plus总线:嵌入式系统设计的核心桥梁在嵌入式系统硬件设计的江湖里,处理器与外围设备的通信效率,往往是决定整个系统性能上限的关键。飞思卡尔(Freescale,现为NXP)的MPC5200处理器&#xf…

作者头像 李华