Monoscope CLI 实战手册:搜索、监控与分诊的 8 个高频命令和 JSON 管道技巧

发布时间:2026/10/11 3:20:00
Monoscope CLI 实战手册:搜索、监控与分诊的 8 个高频命令和 JSON 管道技巧 【免费下载链接】monoscopeMonoscope lets you ingest and explore your logs, traces and metrics. We store these in S3 compatible buckets. Query in natural language via LLMs.项目地址https://gitcode.com/gh_mirrors/mo/monoscope点击查看免费下载Monoscope 是一个开源可观测性平台把日志Logs、追踪Traces与指标Metrics统一存储在 S3 兼容存储中并支持通过 LLM 用自然语言查询。它的命令行工具Monoscope CLI是零依赖的单二进制文件。本文带你逐个走通 8 个覆盖搜索、监控与分诊的高频命令并演示如何用jq把它们的 JSON 输出接进自动化管道。 快速安装与登录零依赖可观测性 CLI 一键上手Monoscope CLI 只需要一个二进制文件不依赖libpq、protobuf等外部库# 自动检测平台Linux/macOS、x86_64/arm64、校验 SHA256 并安装 curl https://monoscope.tech/install.sh | sh也可以先克隆仓库 gh_mirrors/mo/monoscope 查看安装脚本 scripts/install.sh 的完整逻辑。登录有两种方式monoscope auth login # 交互式自动打开浏览器 monoscope auth login --token your-api-key # 非交互式适合 CI在 CI 环境里直接导出环境变量即可无需本地存储凭证环境变量作用MONOSCOPE_API_KEYAPI 密钥优先于本地存储的 tokenMONOSCOPE_PROJECT默认项目 UUIDMONOSCOPE_API_URLAPI 地址自托管时修改命令 1status一屏完成可观测性健康检查排查故障的第一步永远是现在到底有没有问题。status用一次命令回答这个问题时间窗口内的吞吐量、错误率、最忙的服务、未关闭的 Issue以及正在告警的 Monitormonoscope status --since 24h它相当于替你跑了 4 个命令只产生 1 屏输出。一个值得注意的细节面板查询失败时会内联显示错误而不是渲染成一张空图——不可用和平静是两回事。命令 2logs searchKQL 语法快速搜索错误日志logs search使用与 Web UI 相同的 KQL 查询语言字段清单见 docs/kql-reference.md# 裸字符串自动改写为 body/summary 全文搜索直接搜关键词即可 monoscope logs search POISON_ROW_DROPPED --since 24h # 按服务 级别过滤最近 30 分钟的 error 日志 monoscope logs search --service checkout-api --level error --since 30m --limit 50 # 精确 KQL 写法按 HTTP 状态码过滤 monoscope events search attributes.http.response.status_code 500 --since 1h小贴士--service可重复使用--service a --service b会展开为in (a, b)不确定有哪些字段时先用monoscope schema --search http查一遍。命令 3logs tailtail -f 式实时日志监控排障时盯住实时流logs tail就是终端里的tail -fmonoscope logs tail --service api --level error # 只盯 api 的 error monoscope logs tail --grep timeout # 按消息子串过滤 monoscope logs tail --format logfmt | grep -v health # 转 keyvalue 后继续管道处理它每次轮询都会请求一个比轮询间隔更宽的时间窗并去重所以晚到一拍的日志也恰好出现一次不会丢行也不会重行。命令 4metrics query指标聚合查询与 CI 断言门metrics query对同一存储跑 KQL 聚合summarize做聚合、by做分组# 最近 30 分钟各服务的 p99 延迟 monoscope metrics query summarize percentile(duration, 99) by resource.service.name --since 30m # 断言门结果为数值且不满足条件时以非零码退出天然适合 CI monoscope metrics query where severity.severity_texterror | summarize count() --since 30m --assert 100第二条是发布流水线里非常好用的错误率门禁最近 30 分钟错误事件少于 100 才放行。命令 5traces get --tree瀑布图定位延迟瓶颈拿到一个 trace id 后--tree会在终端画出瀑布图每个 span 一行、按深度缩进右侧是耗时错误 span 标红——直接回答时间到底花在哪monoscope traces get trace-id --tree配合--json则输出原始 span 行方便用sort找出最慢的 spanmonoscope traces get trace-id --json | jq -r .events[] | [.duration, .span_name] | tsv | sort -rn | head命令 6dashboards render终端直接渲染监控仪表盘不需要打开浏览器dashboards render会把整个仪表盘——每个 widget、各自的网格位置——按 Web UI 的布局画出来数据由服务端一次性解析变量和查询所见即所得monoscope dashboards render id --since 24h --watch 1m # 故障时挂墙自动刷新 monoscope dashboards render id --widget p95-latency # 只渲染单个 widget全宽 monoscope dashboards render id --json | jq .widgets[] | {title, value}仓库自带大量现成仪表盘模板可以参考例如 static/public/dashboards/kitchensink.yaml。命令 7monitors apply告警监控 YAML 化一键上线Monitor 的定义就是一个 YAML 文件可以进 Git 版本管理。仓库中的示例 docs/examples/monitors/http-5xx.yaml 展示了阈值、持续时间和 Slack 通知的完整配置。日常运维命令monoscope monitors apply monitors/ # 目录级幂等 upsert按名字做键 monoscope monitors mute id --for 30 # 静默 30 分钟先降噪再定位 monoscope monitors bulk resolve --ids id1,id2apply的幂等性意味着它可以直接放进 CI配置改动合并后监控随之更新。命令 8issues list/issues ack问题分诊与通知静默Issue 是检测到的问题面向人的表示。每个 Issue 处于三种状态之一Open需分诊持续通知、Acknowledged有人认领暂停通知到期或复发后回到 Inbox、Archived不再可操作。monoscope issues list --status open --service checkout-api monoscope issues ack id --for 240 # 认领 240 分钟并暂停通知 monoscope issues bulk acknowledge --ids id1,id2,id3Acknowledge 是唯一能静默 Issue 的方式没有单独的 mute这让谁认领了、静默多久在审计上始终清晰。 JSON 管道技巧把 CLI 接进自动化CLI 的输出模式有一条黄金规则stdout 是终端就是表格stdout 被管道就是 JSON。所以一切命令 | jq都天然成立。两种核心响应包络命令类型JSON 包络events/logs/traces search等事件类{events: [...], count, has_more, cursor}issues/monitors/dashboards ... list等列表类{data: [...], pagination: {...}}三个实用组合# 1. 游标翻页has_more 控制循环cursor 传入下一次请求 monoscope logs search --service api --since 6h -o json | jq {cursor, has_more} # 2. 只取字段--fields 在源头裁剪--id-only 直接输出事件 id 供 events get 接力 monoscope events search severity.severity_texterror --id-only # 3. 从 facets 动态取最忙的服务再搜索免手写服务名 SVC$(monoscope facets resource.service.name --top 1 | jq -r .[resource.service.name][0].value) monoscope events search --service $SVC --since 1h还有一个容易踩的坑schema返回的fields是对象而非数组jq .fields[]可用jq .fields[0]不行。 延伸路径资源路径CLI 完整官方文档docs/cli.mdKQL 查询语言参考docs/kql-reference.md命令实现入口cli/CLI/Commands.hs、cli/CLI/Main.hs告警监控示例5xx / p99docs/examples/monitors/CLI 端到端回归测试test/integration/CLI/CLIE2ESpec.hs掌握这 8 个命令加 JSON 管道之后你在终端里就完成了检查 → 搜索 → 聚合 → 定位 → 监控 → 分诊的完整故障闭环——而这正是 Monoscope CLI 的设计初衷。赞分享【免费下载链接】monoscopeMonoscope lets you ingest and explore your logs, traces and metrics. We store these in S3 compatible buckets. Query in natural language via LLMs.项目地址https://gitcode.com/gh_mirrors/mo/monoscope点击查看免费下载相关推荐Smart-Admin数字输入框格式化与范围限制实现Smart Admin数字输入框格式化与范围限制实现 一、引言数字输入框的痛点与解决方案 在企业级应用开发中数字输入框Input Number是表单交CLI编程语言开发工具Shiori CLI 命令行书签管理实战8 个高效命令让收藏管理更简单Shiori CLI 命令行书签管理实战8 个高效命令让收藏管理更简单 Shiori 是一款用 Go 编写的开源轻量级书签管理工具Simple bookma后端DataHub CLI 实战指南datahub search 命令的搜索、过滤、投影与语义搜索诊断DataHub CLI 实战指南datahub search 命令的搜索、过滤、投影与语义搜索诊断 本文基于 DataHub 官方文档 search.md h数据目录数据治理数据血缘后端前端数据工程数据集成创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考