MongoDB má příkaz 'currentOp', který obsahuje aktuální operace (obecně nejen otevřené kurzory). Výsledkem je pole hodnot "inprog". Máte id vlákna operace, ne id kurzoru, ale je to velmi užitečné pro zkoumání těžkých operací nebo těch, které běží dlouhou dobu. Není to úplně to, co chcete, ale myslím, že byste mohli napsat malý program, který analyzovat časový průběh operací, abyste zjistili, které z nich byly spuštěny po určitou dobu.
Podívejte se na příklad mé databáze agregace, kterou provozuji jen pro testovací účely, některá data skryji, protože je to v našem případě velmi rozumné :)
"inprog" : [
{
"opid" : 74074645,
"active" : true,
"secs_running" : 2,
"op" : "query",
"ns" : "mydb.Terms.ByHour",
"query" : {
"aggregate" : "Terms.ByHour",
"pipeline" : [
{
"$match" : {
"cluster" : "my_key",
"start" : {
"$gte" : ISODate("2013-11-10T00:00:00Z"),
"$lte" : ISODate("2013-11-11T00:00:00Z")
}
}
},
{
"$group" : {
"_id" : "$start",
"count" : {
"$sum" : "$count"
}
}
},
{
"$sort" : {
"_id" : 1
}
}
]
Jednoduše vložte výsledek do proměnné:
currentOps = db.currentOp()
a použijte jej jako běžný json, nebo napište malý program, který iteruje pole currentOps.inprog a zkontroluje secs_running> něco
Doufám, že to pomůže.