Operations support for RabbitMQ applications including integrations with popular message bus libraries. Right now it only supports NServiceBus. We are also planning to support Rebus and MassTransit.
The application reads messages from audit and error queues into RavenDB, a document database with excellent indexing capabilities built on Lucene.Net. Message content is automatically indexed for searching. The built-in web front end supports searching and monitors message rates. It also links to the RabbiMQ management console. Next up is support for MassTransit and Rebus. Future plans include support for trend analysis, tailing, monitoring, heart beating and integration with New Relic and PagerDuty.
Check out our Trello board to see what is in development and what is being planned.
Your application should send successfully processed messages to the audit queue and any message that fails processing to the error queue. Popular .NET message bus libraries, like NServiceBus, MassTransit and Rebus either do this by default or can be configured to do so.
Getting Started For Developers
You must have Visual Studio 2015 or Microsoft Build Tools 2015 installed to build the application.
- Install node.js on your machine. You can get it from the node.js site. After that, install the necessary node modules using npm:
- Open a Powershell window and issue the command to build and run tests. If you installed psake from the repository:
- If you want to build from Visual Studio, you will need to add the following to your nuget.config file:
<packageSources> <add key="nuget.org" value="https://www.myget.org/F/southside/" /> </packageSources>
Check out the nuget docs for more information on editing the nuget.config file.
- You can start the application either by running RabbitOperations.Collector from Visual Studio or from a Powershell command prompt via psake. If you installed psake via the repository, use:
Documentation and Release Notes
Documentation is available in the wiki
Use of RavenDB
RavenDB is embedded by default. Ayende has graciously agreed to provide a license for this purpose. You can also use an external RavenDB if you like. If you use RavenDB externally, you will have to obtain an appropriate license from their website.
Pull requests are welcome. If you want to get involved in the project, there is room for one or two more core contributors. There are many interesting challenges remaining. Please contact email@example.com for more information.