If you’ve been following this blog, you’ve noticed that it has gone radio silent for some time. The reason was that I was spending most of my time on developing ServiceInsight application. I’m happy to announce that Beta-2 is now available and you can grab it from here.

History

Allow me to give you some background on where ServiceInsight came from. If you have used NServiceBus - or any other tool relying on MSMQ transport - you must have used the limited built-in MSMQ tooling (if you can even call it that) that comes out of the box. It is so annoying even if you want to simply see a message in the queue. To top it off, if you have an error in your messaging system, like an exception in the message processing pipeline, you won’t even find out why by looking at the message/queue and probably have to check your logs to find out why something is not working, because in this case NServiceBus keeps that extra data as a part of the message header and it is not in the message body in the first place. So fed up with all the problems, I started creating a tool that could help develop my NServiceBus based solution easier.

The initial version which was more of a proof of concept, provided not only viewing of the messages in the queue, but more generic operations like creating queues, purging queues, and removing messages. After starting to building on top of just basic queue management functionality, the great minds behind NServiceBus came up with even a better solution! Why directly interface with the transports like MSMQ? It has its own limitations and you need to support multiple transports just like NServiceBus does. That’s how Management API came into existence. It is a RESTful API that’d allow you query the endpoints and messages in the system and ServiceInsight, among other tools, uses that to achieve the same functionality that I created for MSMQ, and even more. The good thing is that, going forward it’d support all other NServiceBus transports so you’d have seamless functionality regardless of the transport you choose, but there’s also a caveat: this is only available if you use NServiceBus v4.0 and higher.

What is ServiceInsight?

Current beta version contains features that a developer would use on a daily basis. Things like viewing a message body in a queue, the header information and even ability to search for a specific message based on the Id or a field inside the message body is also there and it all should make your life as a developer lot easier. There’s also a killer feature: Ever wondered what has caused message x to be generated? Every developer with his share of asynchronous messaging knows how hard it may be to find out what’s going on just by looking at the code or messages coming and going out of the system. The good thing is that now ServiceInsight would give you the big picture:

ServiceInsight

So you can see why a message was generated, how much time processing of the message has taken and even see that it has ended up with an error. This all should boost up your productivity.

Do I have to use the latest?

You’d still get some benefits from ServiceInsight even if you’re on previous versions of NServiceBus. The Queue Explorer, as we call it, would give you almost all MSMQ tooling that you need, but naturally since it uses MSMQ api under the hood, it comes with its limitation too, so you may not be able to connect to a remote queue if you don’t have proper permission on your domain setup, or if you don’t have MSMQ installed locally. Since the main audience of this tool at this stage are the developers, the limitations should not be surprising. Having said that, we strongly urge you to try the latest and greatest of what NServiceBus offers so that you can also use ServiceInsight at its best.

What’s vNext?

There are a lot in the works for ServiceInsight already. As I mentioned, next versions will support other transports like ActiveMQ, RabbitMQ and even the SQL Transport. More useful information for messages and endpoints will be surfaced through ServiceInsight as well as visualization of SLAs and message processing timeline so that you have all those information at your fingertips.

Should you happen to use ServiceInsight, we really appreciate your feedbacks and thoughts and the feature you’d like to see in vNext, so keep them coming!

If you’re interested in seeing a short introductory video on ServiceInsight to find out more about it and see major features of v1.0, you can check out this video.