Monday, October 31, 2016

[open-falcon] Graph 裡的資料會被週期性的異常清除

公司的 open-falcon 監控系統,最近發生了一個神奇的 bug 。公司的 4000 多台機器裡,只有一台,它在 graph 資料庫裡的資料,會被週期性清空。所以無論何時去看它的資料,總是只看到最後的,例如 15 分鐘左右。而且神奇的事是: judge 又是正常的,也就是該台機器其實是有正常的送資料到 judge 和 graph 。但是,每隔一段時間, graph 就會發生異常地資料清除。

後來,我們索性用肉眼來檢查 graph 用來畫圖的資料。才發現,原來是 timestamp 的問題。出問題的機器,可能是在某個時間點,機器的時間被調到 2024 年,於是,它上報的資料,記錄的 timestamp 就是 2024 年的時間。而 open-falcon graph module 內部是使用 RRD 資料庫。於是,當 RRD 每次看到該筆錯誤資料時,它會看到一個來自未來的時間,而且會判斷之前的正確資料都太舊,可以拋棄了。這就是導致資料被異常清除的理由。

補救之道,就得針對該筆錯誤的資料做移除了。