Skip to main content

Online Windows Azure Diagnostics


Azure Diagnostics is extremely powerful when setup correctly and being fully utilised. That said, quite a bit of burden is still left with us developers to pull out the juicy bits and present that as information that can potentially be consumed and mean something to the other, often not quite so technical, stake holders. Maybe more importantly from a developer standpoint is being able to fault find a collection of services when something does go wrong or is about to go wrong. 

A useful tool which I have used with Windows Azure and comes in very handy for diagnosing and monitoring is Stackify. It is online which immediately gets a thumbs up from me but the good part is that it supports all the Azure Diagnostics in near to real time.

You can see below that it is showing some useful stats from some Web and Worker roles. 



There are a number of different views that can be selected such as the one shown below.






Going beyond the stats which are absolutely invaluable when trouble shooting problems, there are a whole host of other features and views which make this rather like a Swiss army dev ops tool as show below.

Process List





Schedule Jobs





Start and stop Services






Browse and download Files and Folders





Like me, you have probably written some similar features into your own set of utilities in the past. 
There are other features as well which are worth checking out.  


The Setup

Setup is very straight forward.
  • Create an account with Stackify, login and download the zip archive for Azure (see fig 1 above) 
  • Extract the files to your Web or Worker Role project
  •  Set 'Always Copy to Output Directory' to ensure they get deployed from properties
  • Set the Build action to 'None' from properties
  • Add a startup task to your ServiceDefinition.csdef as shown below:


<Startup>
 <Task commandLine="Install.cmd" executionContext="elevated" taskType="background">
  <Environment>   <Variable name="ACTIVATIONKEY" value="<Replace with your Activation Key>" />
  </Environment>
 </Task>
</Startup>


  • Replace the value for the 'ACTIVATIONKEY' with your new activation key obtained from creating your new Stackify account.

This can be seen below from my project:



Now go ahead and perform a deployment as usual.

As soon as your services have been deployed and started, you will be able to see an item for each instance inside Stackify and drill down into the features. Now you can check the current status of a deployment and perform some pretty cool stuff just with your IPad. Not Bad...

One thing to note is that some of the other features focus on developer productivity! Your project manager will love it!!! :)

Comments

  1. When the.Net developers endeavour to fetch data from an isolated computer, the protection of the information attains vital importance which is to be completed. But, with the help of the.Net development system, it becomes possible and easy; it also permits its users to precisely explain the level of security essential in the system along with its industry oriented procedures to finish the same to get universal recognition.

    Dot Net Development

    ReplyDelete

Post a Comment

Popular posts from this blog

.Net TDD (Test Driven Development) by example - Part 1


Introduction In part 1 of this mini-series, we will develop a trivial business logic layer from scratch with a TDD approach with the goal of achieving the following:

Better code quality through Red, Green, RefactorDocumentation that grows as we develop and remains up to dateAutomatic regression test harness
This will primarily involve creating unit testsfirst, having them fail, making them pass and then refactoring the code to be of better quality and then re-running the tests. When using tools such as resharper to aid in refactoring code, having the tests in place right from the beginning really gives you peace of mind that you haven't broken anything. It also helps the thought processes while designing and developing an application or feature to be more targeted.

We will further develop the application in part 2 to add an MVC4 web client and continue the TDD story... 


Some BackgroundTest First or Test Driven development is a valuable software engineering practice. It c…

Azure Devops - Pull Request Merge Conflicts

Before a Git pull request can complete, any conflicts with the target branch must be resolved. Out of the box, at the time of writing this article, Azure DevOps requires this to be resolved locally. Following best practices to not allow direct commits to our release/master branches further exasperates the problem as we need to effectively clone the branch or go with a rebase approach, both of which break the natural flow of resolving the conflicts as part of the pull request.

With this extension, from the Microsoft DevLabs team via the Marketplace, you can resolve these conflicts online, as part of the pull request process, instead of being forced to break flow and resolve locally.




Online Experience After adding the extension the new conflicts tab is visible which enables conflict resolution in the familiar side by side review page as shown below:


Really nice extension, which should make resolving merge conflicts a much more straightforward part of the DevOps workflow. 

Additional - Ad…

Simple Git branching strategy for release cycles

Coming up with a branching strategy that works well can be challenging when working with multiple developers and managing release cycles. A simple approach is presented here to manage release cycles, with a small to medium sized team of developers while still being able to react to production issues and fix bugs. The primary goal being to isolate work streams without impacting development progress. BackgroundGit does not enforce any particular strategy when it comes to branching which is partly what makes it such a great and flexible repository. The problems start to arise though as you move into different stages of your development process. As an example, you have a release almost complete but don’t want to impede progress on the upcoming release cycle which is where the majority of effort is required. The Basic ApproachThe focus is around producing a release while still being able to react to hotfixes or production issues without impacting on going development of features. The branches…