3.7 监控仪表盘与告警——从工程师视角追踪财富健康度 2020年春天我帮一个做后端开发的朋友搬家。他在新家书房里装了一台43寸的4K显示器连在一台树莓派上专门用来显示他负责的线上服务的实时监控大屏。QPS、P99延迟、错误率、各节点CPU使用率、JVM堆内存占用——Grafana面板上一排一排的曲线和柱状图颜色从健康的绿色到预警的黄色再到严重异常的红色一目了然。他站在还没拆完的纸箱中间盯着那块屏幕看了好一会儿然后转头跟我说“我每天不看这个睡不着。”我问了他一个问题“你对你家钱的监控有这个十分之一细致吗”他愣了一下。然后笑了。然后笑不出来了。他打开手机给我看他的证券App。首页上密密麻麻的全是红绿数字今日盈亏、持仓盈亏、个股涨跌幅、大盘指数、板块排名。他每天打开这个App不下二十次每次看的时候心跳都会跟着那些跳动的数字一起加速。但当我问他“你今年的总资产净值比去年涨了多少”、“你每个月的被动收入占你生活开支的百分之多少”、“你的储蓄率是多少”的时候他一个数字都答不上来。“我以为我每天在看盘就是在监控。”他说。“你每天看的不是监控。你每天看的是行情软件。”我告诉他。“行情软件是给赌场里的人看的老虎机屏幕它只会告诉你每一局你是赢了还是输了不会告诉你你今天总共带了多少钱进赌场已经输了多少钱还剩下多少钱能体面地离开。”核心KPI仪表盘从盯股价到盯系统健康度Prometheus、Grafana、Datadog这些监控工具之所以被全球工程师广泛使用不是因为它们的界面好看而是因为它们做对了一件事把运维人员从盯着单台机器的单一指标中解放出来让他们能看到系统的整体健康状态。你不会每秒钟都去看某台服务器的CPU温度你只会给它设一个告警阈值超过80度系统自动通知你。你要看的是整个集群的请求成功率、平均响应时间、资源利用率这些聚合过的、能反映系统健康趋势的黄金指标。你的家庭财富系统需要的监控面板和你的线上服务监控面板应该是同一个设计思路。你需要的不再是单只股票今天的涨跌幅——那是某台服务器上的某个进程的CPU占用率它是瞬时的、高噪声的、对全局健康几乎没有指示意义的。你需要的是聚合过的、能反映你整个财务系统长期运行趋势的核心KPI。我给你定义了四个黄金指标。你的财务监控仪表盘上只需要这四个指标就够了。第一个指标资产净值走势曲线。总资产减去总负债。就这么简单。把你每个月最后一个交易日的净资产数字记录在一个折线图上横轴是时间纵轴是金额。这条曲线不在乎你买了哪只股票、卖出了哪只基金、哪个板块涨了哪个板块跌了。它只回答一个被行情软件永远模糊掉的问题从绝对数字来看你家的钱比一年前多了还是少了这个曲线最好是连续记录二十四个月以上。单看某个月的数字没有意义但当你把二十四个月的点连成一条线你就拥有了一个不再被单次盈亏欺骗的上帝视角。你会发现有些月份你感觉自己亏了很多钱但那条曲线只是微微下弯了一下下个月又抬头上去了。你也会发现有些月份你兴高采烈地赚了一笔但曲线告诉你你只是刚刚从之前那个坑里爬回地面。第二个指标被动收入覆盖率。被动收入是指你不付出主动劳动就能获得的现金流入——股票分红、债券利息、房租收入、版税、年金。把它们过去十二个月的总和算出来除以过去十二个月的家庭总开支。得到的百分比就是你的被动收入覆盖率。这个数字在工程师职业生涯的早期阶段会很低低到5%甚至1%都有可能。这不可怕。可怕的是你工作十年了这个数字还是1%。被动收入覆盖率是你财务自由进度的唯一客观标尺。当这个数字超过100%的时候你的财富系统就已经具备了独立运行的能力——你的被动收入已经可以覆盖你全部的生活开支。在那一天到来之前你仍然需要你的主动收入这台主时钟继续震荡。但你可以通过这个指标看到自己距离那个终点还有多远而不是被每天的市场波动模糊了方向感。第三个指标月度储蓄率。每个月的储蓄除以税后收入。储蓄的定义不是你存进银行的钱而是你这个月的全部收入减去全部支出之后的净结余。这笔结余不管你是存进了余额宝、定投了指数基金、还是放在了工资卡里不动都算储蓄。这个指标衡量的是你人力资本转化为金融资本的真实效率。一个年收入百万但储蓄率只有10%的人和一个年收入四十万但储蓄率40%的人后者积累财富的速度几乎与前者持平而后者对高薪的依赖度远低于前者。如果你连续三个月的储蓄率低于15%你不需要再看任何投资策略你最先需要解决的问题在你的支出端。第四个指标最大回撤百分比。过去十二个月里你的总资产净值从最高点到最低点的最大跌幅。这个指标衡量的是你整个财务系统的波动性。它和你的心理承受能力直接挂钩。如果你发现你的最大回撤超过了20%而且你在这个回撤期间出现了失眠、频繁盯盘、和家人的争吵等行为信号那么你的资产配置中权益类资产的占比可能已经超过了你的真实风险承受能力。下一季度的架构评审会上调降你的权益仓位目标比例。这四个指标你每个月更新一次记录在一张电子表格里或者画在你自己的Grafana面板上。每次打开的时候先看这四个数字而不是打开证券App。告警阈值设置让系统在你失控之前叫醒你监控系统最重要的功能不是展示数据是告警。Prometheus的AlertManager存在的全部意义就是在某些指标偏离正常范围的时候主动触发一条通知而不是等你手动去查看。因为你不知道什么时候该查看。你的财务系统同样需要预先设定好的告警阈值。你不能指望自己在市场最狂热或者最恐慌的时刻还能想起去检查风险指标。你需要系统替你在那一刻按响警铃。我建议你至少设置三条告警规则。第一条权益仓位偏离度告警。当你的权益类资产股票加股票型基金占你总资产的实际比例偏离你设定的目标比例超过10个百分点时触发告警。比如你预设的股债比例是6:4如果股市持续上涨让权益仓位膨胀到了70%以上系统告警。如果股市暴跌让权益仓位缩水到了50%以下系统同样告警。这条告警的意义在于提醒你你的负载均衡器已经漂移了你需要执行一次再平衡操作。回顾3.4节你知道再平衡不能靠感觉要靠固定的触发条件。这条告警就是这个触发条件的自动化版本。第二条月度消费异常告警。当月度总支出超过你过去十二个月月均支出的两个标准差时触发告警。这条告警的作用是识别异常消费——你可能在某个月因为一次冲动买了不该买的大件或者出现了你没有注意到的支出项目。单次告警不需要恐慌但如果连续两个月触发你就需要在季度评审上认真审查你的支出明细。第三条总资产回撤告警。当你的总资产净值从过去十二个月的最高点回撤超过15%时触发告警。15%是一个经过大量行为金融学研究验证的痛苦阈值——当亏损超过这个比例时大多数投资者会开始做出非理性操作比如在底部恐慌卖出、或者相反地加倍下注试图翻本。这条告警的触发本身就是一个信号你现在处于心理脆弱的危险区间在做出任何操作之前先执行你在第一章第五节学到的冻结线程操作——停下来关掉交易软件等二十四个小时。你不需要自己写代码来实现这些告警。一张Excel表格加上手机日历里的季度提醒就足够了。每个月更新数据的时候顺手检查一下这三条规则有没有触发。触发了就在日历上标红下周季度评审时优先讨论。不盯盘的“基础监控”系统沉默运行才是成熟的标志在运维的世界里有一条不成文的衡量标准一个系统的成熟度和运维人员盯着它的频率成反比。一个刚上线的新服务你需要每十分钟刷一次监控面板因为你不知道什么时候会崩。一个跑了三年的成熟集群你可能好几天都不会看它一眼只有当告警短信弹出来的时候你才意识到它的存在。它已经变成了环境的一部分像空气和水一样稳定而不可见。你的财富系统也应该朝这个方向演进。如果你现在还处于每天打开证券App看十几次价格的阶段那说明你的系统还不够成熟。成熟的财富系统不需要你频繁凝视它。它的资产配置比例是通过季度再平衡自动维持的。它的现金流是DMA通道自动划转的。它的应急储备金和保险保障是早已部署在内核层的硬件级冗余。它的海外资产是异地多活的数据中心每季度巡检一次就足够。你只需要在季度架构评审日做一次全面检查在告警触发时做一次响应其余时间让它安静运行。你把节省下来的注意力投入到哪里去投入到你的主动收入里去投入到你的技术精进里去投入到你的家庭生活里去。投资只是你生活中的一块系统服务它不应该占据比你的主线程更多的时间片。在2.6节我建议你每月做一次财务快照在3.4节我建议你每季度做一次再平衡。这个频率已经足够维持一个健康运转的财富系统了。在这之间的所有时间你都应该把行情软件关掉把精力还给那些真正能给你带来长期价值的事情。第三章到此全部结束。我们从单点故障的惨痛代价开始用RAID阵列和异地多活构建了指数基金的工程学冗余用服务网格实现了股债商金之间的解耦和断路器保护用Nginx负载均衡的逻辑驯服了再平衡的反人性操作结合中国特色的政策约束设计了多层级灾备体系用全链路压测和混沌工程主动寻找系统的脆弱点最后用一套四个指标的监控面板和三条告警规则把整套系统收束进了可控的运维框架里。你现在拥有的不是一篮子股票。你现在拥有的是一套按照分布式系统设计原则搭建的、能在多种极端场景下自我修复的高可用资产配置集群。从下一章开始我们将进入一个全新的维度。在第二章搭建好了系统架构第三章部署好了资产集群之后第四章会带你回到最微观的操作层面——每一次买入、卖出、持有、止损应该像Git提交记录一样被追踪像Bug调试流程一样被复盘。你的投资日志才是你在这个市场里唯一不会被随机性侵蚀的资产。