刻度云上线快一周,累计下载四百八十六次。
付费账户十八个。
十八张订单,一百七十八元两角,加上按单结算的一百一十元五角二分奖励,一共两百八十八元七角二分。
周衡将这笔收入单独记了一行,随后打开大家反馈最多的通知设置。
十八名付费用户里,有七个人关闭了夜间提醒,三个人把邮件通知全部停掉。免费用户的数据更差,真正连续接入超过二十四小时的实例不到下载量的一成。
“河堤上的猫”昨天说,页面好用,就是手机夜里响得太勤。
第一批客人已经掏了钱,周衡想让他们用得更舒服。
周衡把这几天收到的反馈放进表格。短暂网络抖动、定时任务启动、机器正常重启、测试环境停机,都会被当前版本当成需要处理的事件。每一条判断单独看都有依据,叠在一起,却像一个遇到任何声音都拉响警报的人。
真正的故障夹在中间,反而更容易被忽略。
他没有先加一个总开关让用户自己解决。
第一步,是把告警持续时间与恢复情况放回事件里。接口慢两秒后立即恢复,先进入观察状态;持续超过用户设置的时间,或者在短时间内反复出现,才升级为需要确认的事件。
第二步,是给计划内变更留窗口。用户登记发布或维护时间以后,相关告警仍然保存,但不在第一时间发出红色通知。
第三步,是把测试、预发布和生产环境分开。测试环境默认不在深夜给人发短信,除非用户明确要求。
这些调整让页面安静下来,也带来另一种风险。
如果阈值设得太宽,真正的问题会被延后发现。
周衡没有替所有人选择一个所谓最佳数字。他在默认值旁边写清代价,被压住的原始记录仍可展开查看。
0.1.2版本发布后,“河堤上的猫”跑了一个晚上。
原来十几条红色事件变成两条观察记录,没有发夜间通知。凌晨三点一次持续六分钟的接口异常仍然升级成事件,并在恢复后保留完整时间线。
对方早上回复:“终于不像消防车停我家楼下了。”
另一位用户提醒,维护结束以后也该及时恢复监控。周衡给维护窗口补上了结束按钮,再用测试数据跑过一遍。
“这个版本我留着用了。”对方回复,“之前那套收费几十块,还得我自己配一堆东西,你这个打开就能看。”
周衡把这句话看了两次。
周衡把这句反馈标成已解决,继续联系其他付费用户。
有人只回“还行”,有人根本不回。一个做内部工具的开发者说,他买付费版只是为了支持独立产品,尚未真正接入生产。另一个用户连续用了五天,却从未点过“接手”按钮,所有事件最后都由系统自动恢复。
周衡问:“你们没人值班?”
“就我一个人。告警发到邮箱,看到就看,看不到第二天再说。”
“那你为什么还保存时间线?”
“老板偶尔会问昨晚是不是出过问题。我得找个东西证明,不是我早上才把服务打开。”
这不是周衡最初设想的用法,却是真实需求。
他在反馈表里新增一列:谁需要结果。
开发者本人、合伙人、老板、客户、值班团队。相同的一条告警,对不同的人意味着不同的事。有人要立刻处理,有人只需要第二天看到报告,还有人最在意故障发生时到底谁接过手。
下午,一个新用户在问题区上传了一份表格。
文件名很普通:《刻度云体验问题》。打开后共有十七项,每项都写了复现步骤、影响对象和建议优先级,没有一句“体验不好”之类的空话。
第一项不是误报,而是首次接入失败后,页面只显示一串技术错误,使用者不知道该找网络、权限还是脚本。
第四项指出,事件显示“已恢复”,但没有区分系统指标恢复和人工确认恢复。
第九项问,如果两个人同时点了接手,最后谁负责跟进。
第十四项更直接:报告可以导出,却没有接手人、处理时长和未完成事项,拿给管理者也看不出这次事故有没有人负责。
周衡从头看到尾,又看了一遍用户资料。
账户实名是孟冉,付费时间在两天前,也是九块九,没有使用任何优惠码。她接入的是一套个人测试环境,事件量不大,却几乎点过每一个功能。
周衡在问题区回复:“方便沟通半小时吗?只讨论你主动提供的测试环境,不需要业务数据。”
十分钟后,孟冉发来一个会议链接。
视频接通时,她身后是一面空白墙,桌边放着一只已经凉掉的咖啡杯。
“十七项都能复现?”周衡先问。
“前十五项可以。后两项是我按企业使用场景推出来的。”
“你做技术?”
“做b端产品。”孟冉说,“写过几年需求,也替销售收拾过几年承诺。你这个版本看得出来是工程师做的。”
她说着,点开了报告页:“底子挺利落,我才愿意给你列这张表。”
周衡把表格共享到屏幕:“先看第四项。指标恢复和人工确认,我准备拆成两个状态。”
“拆状态没问题。但谁会去点人工确认?”
“值班人。”
“值班人为什么要点?”
“留下过程,方便复盘。”
孟冉没有争辩,只让他打开一条测试事件。
红色告警发生在凌晨一点十二分,持续四分钟后自动恢复。时间线上有版本变更,有三次状态检查,也有恢复时间。信息比普通短信完整得多。
“这条事件现在算结束了吗?”她问。
“从指标上看,结束了。”
“是谁处理的?”
“没有人点接手。”
“那它为什么恢复?自己恢复、网络恢复,还是有人改了东西但没登记?”
“目前不知道。”
“如果明天同样的问题再发生,谁要补这一段?”
周衡没回答。
孟冉把光标移到页面右上角。那里只有“已恢复”三个字,颜色已经从红变绿,看起来像一件已经处理完的事。
“你把机器的状态记得很清楚,却没有把人的责任接进来。”她说,“告警越准,这个问题反而越明显。因为大家会以为系统显示绿了,事情就真的结束了。”
周衡看向她发来的第十四项。
报告缺少接手人、处理时长和未完成事项。
“你希望系统强制指定负责人?”他问。
“别急着做成强制。小团队可能只有一个人,大团队又有自己的排班。你先让事件必须有一个去向:谁接手,何时复核,还是明确接受风险。没人处理也可以,但报告里要写‘无人接手’,别替他们涂成绿色。”
这不是再加一个按钮能解决的问题。
产品原来的终点是指标恢复。按孟冉的说法,指标恢复只是一条技术事实,事件是否结束,还要看是否有人确认影响、补上原因和后续动作。
周衡问:“你为什么买?”
“九块九不贵,我想看导出报告。”
“看完值吗?”
“值。”孟冉说,“能把几个后台的东西排进一张图,对我们这种天天解释进度的人,能省不少时间。不过你要想卖给企业,这张报告还可以做得更好。有人愿意为省心付的,可不只是九块九。”
半小时到了,她没有多留,只说十七项可以按影响顺序再整理一版。
通话结束后,周衡没有马上改代码。
他先给孟冉的表格加上来源、版本和处理状态,原文件单独保留。十七项又按复现、权限和责任分成三类,逐条排进下一版计划。
傍晚,周衡做出一版新的报告样式,请孟冉看。
页面上多了接手人和处理时长,尚未完成的事项单独列在最后。孟冉扫了一遍,没再提十七项,只圈了一处过长的字段名。
“这里短一点。其他的,明天拿给业务负责人,他应该看得懂。”
周衡照着改完,发回去。
“这版我能直接用。”她说。
一句话,比他自己对着页面看一个小时都有分量。
周衡把新报告发进体验群。“河堤上的猫”最先下载,五分钟后回来艾特他,说朋友已经装好,正在帮忙接项目。
还有人问能不能开团队版。
周衡回复“在做”,记下对方人数和最想要的功能,然后合上了电脑。
他没有给自己再加一个通宵。
楼下新开了一家烤肉店,丁卓发过两次照片。他给丁卓打电话,问今晚能不能准时下班。
“你请客?”
“请。刻度云今天有人问团队版了。”
“那得庆祝。我已经穿外套了。”
一个小时后,烤盘滋滋作响,丁卓夹了块肉,听他讲那十八个付费用户,也听他讲孟冉。
“这姐们厉害,十七条问题都给你挑了。你不生气?”
“她还告诉我,有人肯为下一版多付钱。”
丁卓点点头,把刚烤好的牛肉夹进他盘子。
“那这顿得吃好。你现在已经有客户催更新了,周老板。”
周衡看着盘里的牛肉笑了。
在海拓,催他的人想让他把别人的工作也接过去。现在催更新的,是想继续买他东西的人。
他很喜欢这种忙。