Mac Studio 接入 Prometheus + Grafana 监控实践
2026-05-08 tech prometheus grafana macos apple-silicon 7 mins 2 图 2723 字

最近给 Mac Studio 配了一套监控方案,通过 macmon-prometheus-exporter 采集硬件指标,接入 Prometheus + Grafana。整个过程比想象中简单,记录一下细节。


安装 macmon
参考macmon - Apple Silicon Mac 的性能监控利器
安装 Exporter
macmon-exporter 通过 Homebrew 一键安装:
brew install macmon-prometheus-exporter
安装后会自动注册为 launchd 服务,监听 9101 端口。验证一下:
curl http://localhost:9101/metrics | head -20
关键指标一览
macmon-exporter 暴露的指标都在 mac_ 命名空间下,都是 Gauge 类型(瞬时值):
| 指标 | 含义 | 示例值 |
|---|---|---|
mac_cpu_usage_percent |
CPU 总使用率(%) | 27.69 |
mac_gpu_usage_percent |
GPU 使用率(%) | 100.0 |
mac_cpu_power_watts |
CPU 功耗(瓦特) | 4.88 |
mac_gpu_power_watts |
GPU 功耗(瓦特) | 50.86 |
mac_cpu_temperature_celsius |
CPU 温度(摄氏度) | 52.69 |
mac_gpu_temperature_celsius |
GPU 温度(摄氏度) | 48.97 |
mac_memory_usage_percent |
内存使用率(%) | 62.00 |
mac_memory_total_bytes |
内存总量(字节) | 103079215104 |
注意:macmon-exporter 提供的是瞬时百分比值,不是累积计数器。这意味着在 Grafana 中不需要使用
irate()或rate()。
Prometheus 配置
prometheus.yml
- job_name: 'node-studio'
static_configs:
- targets: ['studio.local:9101']
labels:
exported_instance: "studio"
node: "studio"
Grafana 面板配置
CPU / GPU 使用率
Linux 节点通常用 irate(node_cpu_seconds_total{mode="idle"}) 计算 CPU 使用率,但 Mac Studio 的 macmon-exporter 直接提供百分比值:
# CPU 使用率(除以100因为Grafana自带百分号)
avg(mac_cpu_usage_percent{node="studio"}) by (node) / 100
# GPU 使用率
avg(mac_gpu_usage_percent{node="studio"}) by (node) / 100
CPU 核心数对比
Linux 节点用 count(node_cpu_seconds_total{mode="system"}) 统计核心数,Mac Studio 需要分别查询 P-Core 和 E-Core:
# Mac Studio: 8P + 4E = 12 核心
sum(mac_pcpu_cores{node="studio"}) + sum(mac_ecpu_cores{node="studio"})
内存使用率
同样,macmon-exporter 直接提供百分比:
# 内存使用率(除以100)
avg(mac_memory_usage_percent{node="studio"}) by (node) / 100
# 内存总量(注意单位)
mac_memory_total_bytes{node="studio"} / 1024^3
踩坑:Grafana 默认使用十进制单位(1 GB = 10^9 bytes),所以
mac_memory_total_bytes直接除以1024^3后显示为 96 GiB(二进制),而不是 103 GB(十进制)。在 Grafana 面板中将 Unit 设为gibibytes (GiB)即可正确显示。
CPU / GPU 温度
# CPU 温度
mac_cpu_temperature_celsius{node="studio"}
# GPU 温度
mac_gpu_temperature_celsius{node="studio"}
功耗监控
Apple Silicon 的功耗数据很有参考价值:
# CPU 功耗(瓦特)
mac_cpu_power_watts{node="studio"}
# GPU 功耗(瓦特)
mac_gpu_power_watts{node="studio"}
# 系统总功耗
mac_system_power_watts{node="studio"}
# 过去1小时的平均系统功耗
avg_over_time(mac_system_power_watts{node="studio"}[1h])
# 过去24小时的平均系统功耗
avg_over_time(mac_system_power_watts{node="studio"}[24h])
# 过去7天的平均系统功耗
avg_over_time(mac_system_power_watts{node="studio"}[7d])
注意事项
-
瞬时值 vs 计数器:macmon-exporter 的百分比指标是 Gauge,不需要
irate()。只有累积计数器才需要 rate/irate。 -
单位转换:Grafana 的 Unit 设置会影响显示值,注意区分 GB(十进制)和 GiB(二进制)。
-
温度监控:macmon-exporter 只暴露 CPU/GPU 温度,没有硬盘 SMART 信息。如果需要磁盘温度,需要额外安装 smartmontools。









