Servicepulse in combination with RabbitMQ and multiple VHosts


We have setup a RabbitMQ with multiple VHosts on a Windows VM machine. We have installed ServiceControl and ServicePulse. We want to use ServicePulse to follow up our error messages. Is it possible to configure ServicePulse so that we can see the error messages and are able to retry the error messages of all VHosts and not only the root VHost?

Kind Regards,

ServicePulse connects to a ServiceControl instance. I assume that you have a ServiceControl instance per RabbitMQ vhost.

If you have then you can connect have ServicePulse connect to a different ServiceControl instance as documented at Configuring Hosting • ServicePulse • Particular Docs

No, We have only one ServiceControl instance at this. Do we need to setup a ServiceControl instance and ServicePulse website for eacht VHost? Keep in mind that we are hosting the ServicePulse website in IIS with the reverse proxy option.

@MichaelSleeuwagen you have a number of options there.

Option one has been mentioned by @ramonsmits . In this scenario you have ServiceControl main instance and ServiceControl audit instance for each VHost but you can have a single ServicePulse hosted in IIS that can connect to any SC instance. The downside of this approach is that you won’t be able to see all the failed messages at once.

Another option is to use the ServiceControl Transport Adapter and a single instance of ServiceControl running on a dedicated VHost. You need one adapter per endpoint’s VHost but you can host all these adapters in a single console app or windows service. The downside of this approach is that each audit message is going to require two “hops” to reach service control.

Yet another option is to have the setup with SC instances per VHost but add one additional instance that aggregates all data from all instances but does not process any messages. Such an instance would allow you to see all messages in ServiceInsight in a single view, but would not help with ServicePulse – you would still have to switch the SP between SC instances to see failed messages.

So to summarize, if you care a lot about being able to manage failed messages in a single place, use the transport adapter approach. If you are concerned about throughput, use SC-per-VHost. Given that RabbitMQ is a very efficient transport, I would suggest trying the transport adapter option first (if you were on the SQL Server transport I would suggest the SC-per-database).


Let’s say we try out the adapter and are able to capture all data from all VHosts in the same instance of ServiceControl and ServicePulse. Is there a way in ServicePulse to make a distinction between the data of the different VHosts without looking at the details of the messages? I don’t see any sorting or grouping options on VHosts?

Kind Regards,

No, that information would not be available on the UI. The only place where you would be able to find it is in the headers of a given message.