in Watson (or 4.5) we have just implemented a monitoring feature that does exactly what you are asking for.
I’m not going to quote the whole manual, but here are a couple of things that might help you:
select * from system:active_requests;
This reports the active requests currently running on the node.
It reports anything from documents processed per each phase to execution time so far, statement, request id etc.
You can use standard n1ql syntax to filter, limit, sort and even save the results as you please.
delete from system:active_requests where RequestId = "…"
Yup, you can kill the guilty party too.
select * from system:completed_requests
We even have a keyspace storing requests that have deemed to be too long, so even if the culprit has gone, you can still sit down with the developer.
The threshold beyond which requests get logged by default is set to 1 second, and the maximum number of requests logged is limited to the last 4000, though these values can be tweaked on the fly via the /admin/settings endpoint.
OK, that was more than a couple, so I’ll stop here, but there’s definitely more where that came from.
One last thing: please note that these keyspaces are ->per query node<-, so it’s best if you direct your client straight to the query node, rather than ns_server.