名称: prometheus
描述: 查询 Prometheus 监控数据以检查服务器指标、资源使用情况和系统健康状况。当用户询问服务器状态、磁盘空间、CPU/内存使用率、网络统计信息或 Prometheus 收集的任何指标时使用。支持通过环境变量配置 HTTP 基本认证。
查询 Prometheus 监控数据,获取基础设施的洞察信息。
在 .env 文件中设置:
- PROMETHEUS_URL - Prometheus 服务器 URL(例如:http://localhost:9090)
- PROMETHEUS_USER - HTTP 基本认证用户名(可选)
- PROMETHEUS_PASSWORD - HTTP 基本认证密码(可选)
使用 CLI 运行 PromQL 查询:
source .env && node scripts/cli.js query '<promql_query>'
磁盘空间使用率:
node scripts/cli.js query '100 - (node_filesystem_avail_bytes / node_filesystem_size_bytes * 100)'
CPU 使用率:
node scripts/cli.js query '100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)'
内存使用率:
node scripts/cli.js query '(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100'
系统负载:
node scripts/cli.js query 'node_load1'
查找匹配指定模式的可用指标:
node scripts/cli.js metrics 'node_memory_*'
通过标签选择器查找时间序列:
node scripts/cli.js series '{__name__=~"node_cpu_.*", instance=~".*:9100"}'
列出所有标签名称:
node scripts/cli.js labels
列出特定标签的值:
node scripts/cli.js label-values instance
所有命令均输出 JSON 格式以便解析。使用 jq 进行美化输出:
node scripts/cli.js query 'up' | jq .
| 指标 | PromQL 查询 |
|---|---|
| 磁盘空闲百分比 | node_filesystem_avail_bytes / node_filesystem_size_bytes * 100 |
| 磁盘使用百分比 | 100 - (node_filesystem_avail_bytes / node_filesystem_size_bytes * 100) |
| CPU 空闲百分比 | avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100 |
| 内存使用百分比 | (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100 |
| 网络接收速率 | rate(node_network_receive_bytes_total[5m]) |
| 网络发送速率 | rate(node_network_transmit_bytes_total[5m]) |
| 系统运行时间 | node_time_seconds - node_boot_time_seconds |
| 服务状态 | up |
[5m]data.result 包含结果数据主机:端口 格式