是否可以在 mongodb 至 debug/trace 问题中查看传入查询?

Is it possible to see the incoming queries in mongodb to debug/trace issues?

我的 macbook (OSX) 上有 mongo 运行ning。

是否有可能 运行 某种 'monitor' 可以向我的 mongodb 显示任何收入请求?

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

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

1.数据库探查器

探查器存储进入数据库的每个 CRUD 操作;它是关闭的,默认情况下。戴上它很贵;它将每次读取变成读取+插入,每次写入变成写入+插入。 注意:保持打开状态会很快使传入操作压倒服务器 - 使 IO 饱和。

但是,在短时间内使用它来查找数据库操作的情况时,它是一个非常有用的工具。推荐开发环境使用

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

探查器分为三个级别: 0未捕获任何信息(或已关闭且默认)。 1 捕获每个超过 100 毫秒的查询。 2 捕获每个查询;这可用于查找传入的实际负载。

2。 mongoreplay

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

3。 mongostat

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

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

4. mtools

mtools 是一组帮助脚本,用于解析、过滤和可视化(通过图形)MongoDB 日志文件。

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