如何监控 PlanetScale 数据库指标?pscale metrics 查询与报表实战指南
【免费下载链接】cliThe CLI for PlanetScale Database项目地址: https://gitcode.com/gh_mirrors/cli31/cli
本文带你快速掌握 PlanetScale 数据库指标监控方法。通过 PlanetScale 官方命令行工具pscale的metrics命令组,你可以在终端里一键查询数据库分支的历史指标、当前实时值,并自动生成按引擎(MySQL / PostgreSQL)分类的性能报表,是运维和开发者排查数据库性能问题的利器。
一、3 个子命令看懂 PlanetScale 指标监控 🎯
metrics命令组提供了三种互补的查询方式,覆盖了从"快速看一眼"到"全面体检"的所有场景:
| 子命令 | 作用 | 适用场景 |
|---|---|---|
pscale metrics show | 查询指定时间范围内的历史指标序列 | 回溯过去 1 小时/1 天的 QPS、延迟变化 |
pscale metrics instant | 获取指标的当前实时值 | 查看磁盘使用率、连接数等瞬时状态 |
pscale metrics report | 自动检测数据库引擎,生成分组性能报表 | 一次拿到 CPU、延迟、存储、WAL 等全套健康数据 |
三者都支持三种输出格式:
- Human(默认):终端友好的表格,带迷你趋势图(sparkline)
- JSON:保留完整 API 响应,适合脚本处理
- CSV:每个采样点一行,方便导入 Excel 或分析工具
二、pscale metrics show:历史指标序列查询实战 📈
这是最常用的命令,用于查询某个数据库分支在指定时间窗口内的指标走势。
基本用法(查看 main 分支最近 1 小时的查询量与 p99 延迟):
pscale metrics show mydb main --org myorg \ --metric queries --metric latency_p99 --period 1h时间范围三种指定方式
| 参数 | 说明 |
|---|---|
--period | 命名周期,如1h、12h、1d,默认 12h |
--from+--to | 自定义 ISO 8601 时间区间,二者必须同时使用 |
--steps | 请求的数据点数量 |
💡 小提示:
--period与--from/--to不能混用,命令行会自动校验并给出清晰报错。
常用过滤参数
show支持大量维度过滤,帮你把数据"切"到最小粒度:
--metric:可重复使用或逗号分隔,一次查多个指标--keyspace/--shard:按 Vitess 命名空间和分片过滤--query-id/--fingerprint:按查询模式 ID 或指纹过滤--role/--pod/--pods:按角色、Pod 过滤(Postgres 场景)--budget-id/--rule-id:关联流量控制规则与预算-q/--search:按关键词模糊搜索
三、pscale metrics instant:一键查看当前指标值 ⚡
想知道"现在"数据库状态如何?用instant子命令:
# 查看每个 Postgres Pod 的当前磁盘使用率 pscale metrics instant mydb main --org myorg \ --metric planetscale_volume_usage_percentage它同样支持--role、--shard、--container、--pod等过滤参数。如果查询没有返回任何当前值,终端会给出明确提示而不是空白输出。
四、pscale metrics report:自动生成分组性能报表 📊
这是metrics命令组最"省心"的功能:自动识别数据库引擎(MySQL 或 PostgreSQL),按预设的指标分组批量拉取,输出一份结构化的性能报表。
# 生成最近 1 天的人类可读报表 pscale metrics report mydb main --org myorg --period 1d支持的报表周期:15m、1h、3h、6h、12h、1d、2d、7d、8d(默认 1d)。
不同引擎的报表内容
MySQL 报表包含 7 个分组(定义见 report_catalog.go):
| 报表分组 | 核心指标示例 |
|---|---|
| Workload, errors, and traffic control | queries、query_errors、connections、violations |
| Latency and execution time | latency_p50/p95/p99/p999、vtgate 延迟 |
| Query efficiency and fan-out | rows_read_per_query、avg_shard_queries |
| Buffer and block activity | blocks_hit、block_cache_hit_ratio |
| Network traffic | ingress/egress_bytes |
| VTGate utilization by availability zone | vtgate_cpu_by_az、vtgate_memory_by_az |
| Storage by table | storage_per_table |
PostgreSQL 报表则扩展到 14 个分组,额外覆盖 PgBouncer 连接池、CPU/内存/IOPS、内存构成(RSS/Mmap/Cache)、存储容量、事务与 WAL 复制、Pod OOM 健康度,以及连接容量、存储容量、备份活动等实时值分组。
五、三种输出格式怎么选?🔍
# 完整 API 响应(自动化场景) pscale metrics show mydb main --org myorg --metric queries --period 1h --format json # 每行一个采样点(数据分析场景) pscale metrics show mydb main --org myorg --metric queries --period 1h --format csvHuman 格式的两大贴心设计:
- 迷你趋势图:每条序列附带
▁▂▄▇█这样的 sparkline,12 个字符就能看出走势方向 - 单位自动换算:字节自动转成
GiB/MiB,速率指标追加/s,延迟自动加ms/s后缀,百分比自动带%,无需自己心算(格式化逻辑见 format.go)
六、常用指标速查表 ✅
| 指标名 | 含义 |
|---|---|
queries | 查询量(QPS 基础) |
latency_p50/latency_p95/latency_p99 | 查询延迟分位数 |
connections | 活跃连接数 |
rows_read/rows_returned/rows_written | 读取 / 返回 / 写入行数 |
block_cache_hit_ratio | 块缓存命中率 |
planetscale_volume_usage_percentage | 存储卷使用率 |
planetscale_replica_lag_seconds | 副本延迟(Postgres) |
planetscale_pods_cpu_util_percentages | Pod CPU 利用率(Postgres) |
七、实战工作流建议 💡
- 日常巡检:每天早上跑一次
pscale metrics report mydb main --org myorg --period 1d,用--format json存档对比 - 故障回溯:事故发生后用
--from/--to精确定位时间窗口,配合--metric latency_p99观察延迟尖峰 - 脚本监控:用
--format csv导出后接入你的告警系统或 BI 工具 - 分片下钻:MySQL 场景加
--keyspace和--shard参数,快速定位问题分片
八、相关源码与文档 📁
| 内容 | 路径 |
|---|---|
| 命令组入口 | metrics.go |
| 历史序列查询 | show.go |
| 实时值查询 | instant.go |
| 分组报表 | report.go |
| 引擎报表目录 | report_catalog.go |
| 格式化与趋势图 | format.go |
| API 服务封装 | metrics.go |
| 测试用例 | metrics_test.go |
📌 注意:
metrics命令必须携带--org参数指定组织,且需要先完成pscale auth login登录。
现在打开终端,试试给你的数据库分支生成第一份性能报表吧!
【免费下载链接】cliThe CLI for PlanetScale Database项目地址: https://gitcode.com/gh_mirrors/cli31/cli
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考