倒計時從四十七小時五十九分五十九秒開始往下走。
周衡沒有立刻寫程式碼。
他開啟自己寫的需求說明,在最上面敲了三個字:先做小。
他最初列了十六項:日誌採集、指標監控、變更審計、告警聚合、值班排班、故障時間線、自動報告、容量預測……任何一項展開,都足夠幾個人做幾個月。
四十八小時只能證明一件小事。
一個普通團隊能不能在告警響起以後,把“什麼時候出問題、之前改過什麼、現在誰在處理”放進同一條時間線。
周衡把第一版範圍砍到三項。
接收告警,登記變更,生成事件時間線。
不接生產資料庫,不替使用者執行操作,也不自動判斷故障原因。它先做一個擺在桌邊的記錄員,把原本散在群聊、命令歷史和人腦裡的資訊收攏起來。
需求說明完成時,倒計時還剩四十六小時二十一分。
周衡提交第一版文件,才開始搭框架。
他下單買了雲主機和測試域名,一千元的賬單實付九百零五元。新電腦跑得快,網路也穩,過去要花一上午搭建的測試環境,很快鋪在了螢幕上。
上午十一點,第一個接收介面跑通。
他用一段公開測試指令碼模擬伺服器響應變慢。紅色告警進入頁面,帶著發生時間、來源和摘要。緊接著,他登記一次版本釋出,時間線便多出一條藍色變更記錄。
頁面很粗,字型甚至沒有對齊。
但兩件原本互不相干的事第一次排在了一起。
周衡點了一下那條藍色記錄,釋出和異常同時展開。他嘴角往上抬了抬,在清單的第一項後面打了勾。
下午,問題很快出現。
同一個告警源連續上報十次,頁面便生成十個事件。使用者如果真接入系統,遇到網路波動時,螢幕會在一分鐘內被完全刷滿。
最簡單的辦法是按內容去重,可兩條文字一樣的告警,未必屬於同一次故障。全部合併會漏,全部保留又沒有意義。
周衡沒有追求一步判斷正確。他給每個來源設定一個短時間視窗,視窗內相同特徵的告警先歸進同一事件,頁面顯示次數和持續時間;超過視窗後重新建事件。使用者仍然能展開檢視原始記錄,不會因為聚合丟掉證據。
改完已經是晚上八點。
他煮了一碗麵,端到桌邊吃。屋裡太安靜,筷子碰到碗沿的聲音都很清楚。過去這個時間,隔壁通常已經開了遊戲語音。現在沒有人催他戴耳機,也沒有人從門外擠過來拿外賣。
周衡吃完,把碗洗了,繼續寫。
凌晨一點,倒計時還剩三十小時。
他接入變更記錄時,遇到了比重複告警更麻煩的問題。
不同機器的時間並不完全一致。測試環境裡一臺虛擬機器慢了四十七秒,結果頁面顯示“故障先發生,版本後釋出”,實際順序恰好相反。若把這樣的時間線拿去覆盤,只會讓錯誤看起來更像證據。
周衡沒有偷偷校正顯示結果。他把接收時間與來源時間分開儲存,頁面明確提示時鐘偏差;同一來源內部按序號排列,不同來源只給出可驗證的先後範圍。
。對都果結,料資組三了換又衡周。置位確正了回排於終錄記條兩
。時小個三了睡上床大的室臥在,燈掉關他,半點三晨凌
”?吧西東寫在真會不你,聯失就職離剛“:息訊來發卓丁,上早天二第
。面頁的料資試測開公截只張一了回衡周
”。了錄記天聊群故事像“:復回才鐘分半了隔卓丁
”?用好不裡哪“
”。救先想只家大,候時的事出真。更變記登主會人沒“
。錄記條一下留自能便,識標者作和境環、號本版送傳面介開公向需只,後束結碼令指署部:式方接小最個一了加增又,頁首到挪口更變的面頁級二在藏來原把,話句這著看衡周
”。切邊兩我得省,手順個這“:表的指拇豎個一來發,次一了試又卓丁
。時小九十下剩時計倒,點二十午中
。認確:環一後最的線間時障故做始開衡周。起一在排更變的近附與警告把能也,件事立建夠能面頁
。警告掉關手淨清了為人班值是還,復恢的真標指是清分要還,後以復恢;麼什了做下記要需,作了做人有;間時手接下留要需統系,手接人有。點紅個一是只它,開點人有沒果如,後以來出發警告
。復恢記標、作錄記、手接:鈕按單簡個三了做他
。除刪痕無能不卻,補後以可容作,間時和人下留求要都鈕按個每。議建慧智謂所有沒也,析分因自有沒








