I sometimes monitor the performance of my Windows services. What I do, I keep internal counters of things that interest me, and create a way for an external program to access it. This can be a WCF service hosted within a Windows service, which is fairly easy to implement, and various channels can be accessed. The client of this WCF service is also quite easy to do.
Another way is to create your own Windows performance counters that can be read by the event viewer.
, , . MSMQ, , . . WCF . msdn article , . , .