DAY23 MongoDB 免费监控工具

DAY23 MongoDB 免费监控工具

产品或服务上线最重要的当然是稳定度,大一点的团队会设置监控部门,而人少的团队更需要做好监控自动化,减少没有警告或是误警的发生率。


MongoDB 其实很佛心的让你可以简单几个指令查到当前状态,甚至有基础的免费云端监控服务,我们马上来看看。

取得目前监控状态

  • db.getFreeMonitoringStatus()
ith2021> db.getFreeMonitoringStatus()
{ state: 'undecided', ok: 1 }

这个是资料库启动後查询的结果,状态不是官网说的 enableddisabled,但只要经过修改後就不会是这个 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
}
  • state: 可以看到状态已经是回传 enabled
  • message: 这几乎是固定的讯息,告诉你可以在任何时间下启用或关闭免费的监控服务。下面提供的 url 则是免费的云端监控网址,任何人都可以直接透过这个网址查看所有内容。
  • userReminder: 系统给予的额外资讯,但我是没有看过有特别内容过。

启动後我们还不急着看监控内容,再次取得监控状态看会发生甚麽事

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 页面版本资讯和帮助文件,下面四个主要的数据,分别是

  • CPU 使用量
  • 读取操作的执行时间
  • 查询目标:查询效率,指的是查询需要扫描的文件数量,若超过一千则认为是不好的查询
  • 每秒钟的读取操作数量

https://ithelp.ithome.com.tw/upload/images/20210917/201405045hjwSZweQ1.png

这边撷取另一张使用 replication 的图片,可以看到每个项目有三张折线图,上方有着 P (Primary) 与两个 S (Secondary)。

https://ithelp.ithome.com.tw/upload/images/20210917/20140504Dr5wjwsghO.png

预设的粒度如果觉得太大,可以透过匡选放大粒度,并透过右上的 reset 按钮恢复成预设的大小。


监控项目

想了一下,还是不要贴上所有的图来介绍监控的项目,因为折线图的数据对监控者以外的人意义不大,且这也是教学文章而已,重点应该还是放在这个工具能够帮助到什麽。

  • Operation Execution Times: 平均每个操作类型的执行时间,指标有 Read, Write, Commands
  • Disk Utilization: 硬碟使用量,指标有 Max, Average
  • Documents: 每秒钟平均文件数量,指标有 Insert, Update, Delete, Return
  • Memory: 记忆体使用量,指标有 Resident, Virtual, Mapped
  • Network Input/Output: 网路使用量,指标有 Input, Output
  • Opcounters: 每秒钟的各种操作数量,指标有 Insert, Update, Delete, Query, GetMore, Command
  • Opcounters - Replication: 同上,但仅针对 Secondary 节点
  • Query Targeting: 同上面提到的
  • Queues: 等待被执行的指令数量,指标有 Read, Write, Total
  • Replication Lag: 覆写机制延迟的时间(前面 Replication 文章有介绍)
  • System CPU Usage: 同上面提到的

注意事项

首先要强调一点,这些内容都是来自这个指令 db.serverStatus(),所以你也能自己做到这样、甚至更好的服务。

既然是免费的,肯定背後有一些目的了,我想动机也很单纯,推广 MongoDB 的云端服务,MongoDB Atlas。免费监控的网页很诸多限制,我个人也是只建议在测试环境使用。

  • 没有权限控管,只要知道这个网址的人,都能够看到你的资料库状态
  • 监控资料只会保留最近的 24 小时
  • 监控功能较为阳春
  • 监控范围只有 单一节点 或是 Replication,sharding 是没有提供监控的
  • 需要连着对外网路 (暴露危险)

其实没有登入与权限控管,大概就不用上到正式环境了。且只有24小时的资料尚不足以分析趋势,特别是活动期间或是周末这种尖峰时刻差异,因此是否自建监控与维护 MongoDB 还是直接采用 MongoDB Atlas 服务非常值得评估。


本系列文章会同步发表於我个人的部落格 Pie Note


<<:  [Day 8] Postman

>>:  Day10:蛋糕上的樱桃

AE骇客萤幕打字效果3-Day12

接续昨天的练习 1.新增一个Adjustment Layer 2.套上Optics Compensa...

会员管理网站实作篇 - (以律师谘询平台为例子) part 2

大纲 sitemap 架构 安装 Ultimate Member plugin UM三大表单 实作律...

[Day02] Vue i18n - 导入 & 基础用法

i18n 全写为 internationalization,俗称的多国语系也常被称之为本地化 (L...

[Day9] Android : Kotlin笔记:JetPack - Fragment KTX

Fragment KTX 首先要在app的build.gradle加入: dependencies ...

[Day7] IoT Maker之Coding知识科普 - (Variable)

1.前言 今天本来要进入函示Part2的,但後来想想这次系列文章面对的是全龄层(普遍级),前面好像也...