是否可以在mongodb中查看传入查询以调试/跟踪问题



我的macbook(OSX(上运行了mongo。

有可能运行某种"监视器"来向我的mongodb显示任何收入请求吗?

我需要跟踪应用程序中的查询格式是否正确。

您会发现这些工具(或实用程序(对监控和诊断都很有用。除了mtools之外的所有工具都与MongoDB服务器打包在一起(有时它们是单独安装的(。

1.数据库档案器

探查器存储进入数据库的每个CRUD操作;默认情况下,它处于禁用状态。戴上它相当昂贵;它将每次读取转换为读取+插入,将每次写入转换为写入+插入注意:保持打开状态可以通过传入操作快速压倒服务器-使IO饱和。

但是,当短时间使用它来查找数据库操作时,它是一个非常有用的工具。建议在开发环境中使用。

可以使用命令db.getProfilingLevel()访问探查器设置。要激活配置文件,请使用db.setProfilingLevel(level)命令。验证探查器在db.system.profile集合中捕获的内容;您可以像使用findaggregate方法的任何其他集合一样查询它。db.system.profile文档字段op指定数据库操作的类型;例如,对于查询,它是"查询"。

探查器有三个级别:0未捕获任何信息(或已关闭并默认(。1捕获每一个超过100ms的查询。2捕获每个查询;这可以用来查找实际进入的负载。

2.mongoreplay

mongoreplay是MongoDB的流量捕获和回放工具,您可以使用它来检查和记录发送到MongoDB实例的命令,然后在以后将这些命令回放到另一台主机上。注意:适用于Linux和macOS。

3.mongostat

mongostat命令行实用程序提供了当前运行的mongod实例的状态的快速概述。

您可以实时查看传入操作。默认情况下,统计数据会每秒显示一次。有各种选项可以自定义输出、时间间隔等。

4.mtools

mtools是一个助手脚本的集合,用于解析、过滤和可视化(通过图形(MongoDB日志文件。

您会发现mlogfilter脚本非常有用;它使用各种命令选项减少了MongoDB日志文件中的信息量。例如,mlogfilter mongod.log --operation query仅通过查询操作过滤日志。

最新更新