MongoDB:Profiler - 查询详细信息

时间:2016-06-08 12:45:12

标签: mongodb profiler

我需要一种方法来跟踪我的mongodb系统上的查询性能,运行时,统计信息等。

我试图使用分析器...现在,因为我有分片。我通过在集群中的每个mongod实例上运行以下命令来启用性能分析:

db.setProfilingLevel(2)

分析器正在运行。

但是当我试图在我的系统上找到正在运行的查询(" find()")时,我找不到任何东西! 我在mongod上运行:

db.system.profile.find({"op":"query"}).limit(1).pretty()

,结果集为:

{
        "op" : "query",
        "ns" : "test.system.profile",
        "query" : {
                "op" : {
                        "ns" : "query"
                }
        },
        "ntoreturn" : 0,
        "ntoskip" : 0,
        "nscanned" : 2931,
        "nscannedObjects" : 2931,
        "keyUpdates" : 0,
        "numYield" : 0,
        "lockStats" : {
                "timeLockedMicros" : {
                        "r" : NumberLong(1261),
                        "w" : NumberLong(0)
                },
                "timeAcquiringMicros" : {
                        "r" : NumberLong(2),
                        "w" : NumberLong(1)
                }
        },
        "nreturned" : 0,
        "responseLength" : 20,
        "millis" : 1,
        "execStats" : {
                "type" : "COLLSCAN",
                "works" : 2933,
                "yields" : 22,
                "unyields" : 22,
                "invalidates" : 0,
                "advanced" : 0,
                "needTime" : 2932,
                "needFetch" : 0,
                "isEOF" : 1,
                "docsTested" : 2931,
                "children" : [ ]
        },
        "ts" : ISODate("2016-06-08T11:30:11.029Z"),
        "client" : "127.0.0.1",
        "allUsers" : [ ],
        "user" : ""
}

我想获得用户\应用程序正在运行的查询...这些查询必须是"找到"查询...

  • 如何从system.profile集合中获取查询语法?
  • 如何按特定查询过滤?使用他的运行数据(运行时,使用的索引......)获取特定查询。
  • 我必须在所有mongod实例上查询system.profile集合?我没有一个地方可以查询来自system.profile的所有数据吗?

谢谢:)

0 个答案:

没有答案