暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用 Percona 监控和管理监控 MongoDB 收集统计信息

原创 Ellison 2022-06-06
1292

了解我们不熟悉的 MongoDB 系统的一种方法是从检查最繁忙的集合开始。MongoDB为此提供了顶级管理命令。

在 mongo shell 中,我们可以运行db.adminCommand(“top”)来获取所有集合在特定时间点的快照:

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

                   ...

                   "test.testcol" : {

                            "total" : {

                                     "time" : 17432,

                                     "count" : 58

                            },

                            "readLock" : {

                                     "time" : 358,

                                     "count" : 57

                            },

                            "writeLock" : {

                                     "time" : 17074,

                                     "count" : 1

                            },

                            "queries" : {

                                     "time" : 100,

                                     "count" : 1

                            },

                            "getmore" : {

                                     "time" : 0,

                                     "count" : 0

                            },

                            "insert" : {

                                     "time" : 17074,

                                     "count" : 1

                            },

                            "update" : {

                                     "time" : 0,

                                     "count" : 0

                            },

                            "remove" : {

                                     "time" : 0,

                                     "count" : 0

                            },

                            "commands" : {

                                     "time" : 0,

                                     "count" : 0

                            }

                   }

                   ...

在上面的摘录中,我们可以看到有关testcol集合的一些详细信息。对于每种操作类型,我们都有服务器花费的时间量(以微秒为单位),以及发出的操作数的计数器。总部分只是针对集合的所有操作类型的总和。

在这种情况下,我执行了一个插入,然后执行了一个查找命令来检查结果,因此计数器对于每个操作都是一个。

因此,通过将上述值的样本存储在一组指标中,我们可以轻松查看 MongoDB 实例的趋势和历史使用情况。

Percona 监控和管理 (PMM) 中的主要指标

PMM 2.26 包括对mongodb_exporter的更新,因此我们现在能够使用 MongoDB top 命令的输出获取指标。

例如:

MongoDB Percona 监控和管理

如您所见,指标名称与我们看到的 top 命令的输出相关。在此版本中,dbname集合名称是指标名称的一部分(将来可能会根据社区反馈进行更改)。

收集和索引统计

除此之外,PMM 2.26 还包括收集数据库、集合和索引统计信息的能力。使用这些指标,我们可以随着时间的推移监控收集计数、数据增长和索引使用情况。

例如,我们可以收集有关数据库的以下信息:

PMM 集合和索引统计

以下是test.testcol集合的colstats指标:

 

PMM 指标

注意:默认情况下,如果您的收藏数量超过 200 个,PMM 将不会收集此信息(此数字可能会发生变化)。原因是为了避免指标收集中的过多开销,这可能会对性能产生不利影响。您可以使用–max-collections-limit选项覆盖此行为。

启用其他收集器

默认情况下,PMM 客户端仅在启用了诊断数据副本集状态收集器的情况下启动。我们可以使用–enable-all-collectors参数运行 PMM 客户端,以使所有新指标可用。例如:

Shell

1

pmm-admin add mongodb --username=mongodb_exporter --password=percona --host=127.0.0.1 --port=27017 --enable-all-collectors

如果我们想覆盖上面提到的限制,使用这样的东西:

Shell

1

pmm-admin add mongodb --username=mongodb_exporter --password=percona --host=127.0.0.1 --port=27017 --enable-all-collectors -–max-collections-limit=500

我们也有能力只启用一些额外的收集器。例如,如果您想要除topmetrics之外的所有收集器,请指定:

Shell

1

pmm-admin add mongodb --username=mongodb_exporter --password=percona --host=127.0.0.1 --port=27017 --enable-all-collectors --disable-collectors=topmetrics

我们还可以过滤我们有兴趣获取指标的数据库和集合。可选参数–stats-collections可以使用命名空间进行设置。

例如:

Shell

1

2

–stats-collections=test (get data for all collections in test db)

–stats-collections=test.testcol (get data only from testcol collection of testdb)

此外,请查看文档页面以获取更多信息。

创建仪表板

我们可以使用新可用的指标轻松创建仪表板。例如,要查看索引使用情况,我们可以使用以下 promSQL 表达式:

Shell

1

{__name__ =~ "mongodb_.*_accesses_ops"}

这是仪表板的样子:MongoDB仪表板

 

注意:如果上图太小,您可以在新的浏览器选项卡中打开它以更好地查看。

结论

我们可以使用这些新指标来创建仪表板,其中包含最多写入(或读取最多)的集合。我们还可以一目了然地看到工作负载的特征,以确定我们是在处理读取密集型、混合型还是写入密集型系统。

这些新收集器和指标的最重要用途之一是性能调整。通过了解更多关于您的热门或“最热门”集合的信息,您可能能够更好地调整查询和索引以提高整体性能。这些关于集合的新指标将非常有助于性能调优

请记住,这些功能目前是技术预览版,因此默认情况下处于禁用状态。

Percona Monitoring and Management 是同类最佳的开源数据库监控解决方案。它可以帮助您降低复杂性、优化性能并提高关键业务数据库环境的安全性,无论它们位于或部署在何处。

 

最后修改时间:2022-06-06 19:51:57
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论