面板上 jvm_memory_used_bytes 有值,jvm_gc_pause_seconds 整条 NaN,/actuator/prometheus 里能看到对应的 TYPE 行。日志里能对上时间点,这种反而好排。
Micrometer 对带单位的指标会自动补 base unit 后缀,查询里手写的老名字和实际暴露的名字对不上,取不到样本只能画成 NaN。这一点先确认清楚,后面就不用反复试。
curl -s localhost:8080/actuator/prometheus | grep gc_pause management.endpoints.web.exposure.include=prometheus management.metrics.tags.application=order
「Micrometer 指标异常」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。
改完顺手把文档补一句,省得下次自己重新推一遍。监控和日志的时间要对上,时区不一致会多绕很大一圈。
临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
处理上按这个顺序:直接打开 actuator 端点看真实暴露的指标名;去掉查询里手写的单位后缀 直接按真实名查询;抓取时打开 honor_labels 保住应用侧标签。
结果对不对很好判断,面板曲线从 NaN 变回正常折线,GC 次数和压测时的记录对得上。
