Sonar Resource Manager (SRM) is a utility that monitors what is currently running within one or more MongoDB databases and kills operations that have exceeded their quota (e.g. the operation is running for too long). This prevents runaway queries and other operations that may have been started by mistake or maliciously and that place burden on the database.
SRM runs as a daemon on the database machine or any machine which can access the databases it monitors. It is configured with a policy that defines the quota rules and uses currentOp and killOp to monitor and kill operations. SRM feature include:
- White lists ensure that the SRM will never look at operations performed by your application servers and thus even if you make mistakes in the rules you will do no damage to your applications.
- Flexible rules can place limits based on clients, operation types, collections and time.
- Simulation mode allows getting reports on would-be termination before turning termination on.
- All actions performed by SRM are logged to a MongoDB collection.
- Supports MongoDB 2.2 and up.
- Support for sharded environments.
- Fine-grained rules through instrumentation – e.g. quotas on application users and browsers/clients.