Take the 2-minute tour ×

I am trying to build a programmatic management console for Azure to give stats and analytics for Hosted Service, Storage Service giving info about Health, load, threads for Hosted service and Number of hits etc. for table and blobs.


  1. Is Service Management API the solution for it?
  2. Any other alternative available other than Service Management API...?
  3. What are the details I can get out of the API?
  4. Is there any security requirement acting like an hurdle ?
share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

It depends on what sort of information you're trying to capture for your service. If you are only concerned with performance counters (which are likely to provide majority of your metrics), WADPerformanceCountersTable is your key table to analyze.

If you are looking to get at the Busy/Running/etc. statuses of instances, Service Management API is your API to use. It will not provide you a lot of information however. Pretty much the status of each instance is all you get.

If you're looking to use out-of-a-box solution that will send alerts based upon these metrics (perf. counters, queue sizes, and instance statuses) as well as provide auto-scaling, check out AzureWatch at http://www.paraleap.com


share|improve this answer
What are the security requirements for the Service Management APIs...? If I build a generic tool where anyone can put their Subscription ID to see the data. Is that possible and what are the other security aspects and certificates required...? –  Naveen Apr 7 '11 at 17:08
Certificate with a private key is required to use the API. –  Igorek Apr 7 '11 at 17:39
add comment

You can use the service management API to to make changes to your running instances e.g. increase the number of instances, change configuration (basically what you can do through the Azure Portal), but at the moment it doesn't give you any information about how your application is running. This is because the definition of load will vary from application to application.

If you want to monitor how your application is running, you will have to decide what you want to monitor and then instrument it yourself.

If you want to use performance counters than you can use the DiagnosticMonitor class to store them to Table Storage which you can read from. Another option would be to send performance counter data out from each instance on the service bus and monitor these messages.

There are, however, lots of things that you want to monitor that isn't catered for. If you want to look at the number of reads/writes to a queue for example, this is something that you would have to write yourself.

share|improve this answer
add comment

Your Answer


