產品或服務上線最重要的當然是穩定度,大一點的團隊會設置監控部門,而人少的團隊更需要做好監控自動化,減少沒有警告或是誤警的發生率。
MongoDB 其實很佛心的讓你可以簡單幾個指令查到當前狀態,甚至有基礎的免費雲端監控服務,我們馬上來看看。
db.getFreeMonitoringStatus()
ith2021> db.getFreeMonitoringStatus()
{ state: 'undecided', ok: 1 }
這個是資料庫啟動後查詢的結果,狀態不是官網說的 enabled
或 disabled
,但只要經過修改後就不會是這個 undecided
了。
ok 則是代表這個 getFreeMonitoringStatus
操作有成功執行。
db.enableFreeMonitoring()
ith2021> db.enableFreeMonitoring()
{
state: 'enabled',
message: 'To see your monitoring data, navigate to the unique URL below. Anyone you share the URL with will also be able to view this page. You can disable monitoring at any time by running db.disableFreeMonitoring().',
url: 'https://cloud.mongodb.com/freemonitoring/cluster/JOSEFCUM5XXXXXXEIA3WA4DBWELSSY',
userReminder: '',
ok: 1
}
enabled
啟動後我們還不急著看監控內容,再次取得監控狀態看會發生甚麼事
ith2021> db.getFreeMonitoringStatus()
{
state: 'enabled',
message: 'To see your monitoring data, navigate to the unique URL below. Anyone you share the URL with will also be able to view this page. You can disable monitoring at any time by running db.disableFreeMonitoring().',
url: 'https://cloud.mongodb.com/freemonitoring/cluster/JOSEFCUM5XXXXXXEIA3WA4DBWELSSY',
userReminder: 'Free Monitoring URL:\n' +
'https://cloud.mongodb.com/freemonitoring/cluster/JOSEFCUM5XXXXXXEIA3WA4DBWELSSY',
ok: 1
}
再次取用基本上就是一樣的訊息,啊~userReminder
有內容了,還是個程式沒寫好的重複內容XD
db.disableFreeMonitoring()
ith2021> db.disableFreeMonitoring()
{ ok: 1 }
嗯,毫無反應,就是給你一個執行的結果而已。
Banner 頁面版本資訊和幫助文件,下面四個主要的數據,分別是
這邊擷取另一張使用 replication 的圖片,可以看到每個項目有三張折線圖,上方有著 P (Primary) 與兩個 S (Secondary)。
預設的粒度如果覺得太大,可以透過匡選放大粒度,並透過右上的 reset 按鈕恢復成預設的大小。
想了一下,還是不要貼上所有的圖來介紹監控的項目,因為折線圖的數據對監控者以外的人意義不大,且這也是教學文章而已,重點應該還是放在這個工具能夠幫助到什麼。
首先要強調一點,這些內容都是來自這個指令 db.serverStatus()
,所以你也能自己做到這樣、甚至更好的服務。
既然是免費的,肯定背後有一些目的了,我想動機也很單純,推廣 MongoDB 的雲端服務,MongoDB Atlas。免費監控的網頁很諸多限制,我個人也是只建議在測試環境使用。
其實沒有登入與權限控管,大概就不用上到正式環境了。且只有24小時的資料尚不足以分析趨勢,特別是活動期間或是週末這種尖峰時刻差異,因此是否自建監控與維護 MongoDB 還是直接採用 MongoDB Atlas 服務非常值得評估。
本系列文章會同步發表於我個人的部落格 Pie Note