<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Rock Solid</title>
	
	<link>http://rocksolid.gibraltarsoftware.com</link>
	<description>Notes from the folks behind Gibraltar Software</description>
	<lastBuildDate>Tue, 17 Aug 2010 21:16:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/RockSolid" /><feedburner:info uri="rocksolid" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Gibraltar 2.5 New Feature Dive – Viewing Sessions</title>
		<link>http://feedproxy.google.com/~r/RockSolid/~3/R4ZzkhAHj2E/gibraltar-2-5-new-feature-dive-viewing-sessions</link>
		<comments>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-new-feature-dive-viewing-sessions#comments</comments>
		<pubDate>Tue, 17 Aug 2010 21:16:12 +0000</pubDate>
		<dc:creator>Kendall</dc:creator>
				<category><![CDATA[Product Information]]></category>
		<category><![CDATA[Gibraltar]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://rocksolid.gibraltarsoftware.com/?p=587</guid>
		<description><![CDATA[We previously mentioned that one of our key goals for Gibraltar 2.5 was to scale up.  For the session viewer we wanted to handle larger and more complicated sessions.  For example, we have customers that routinely generate sessions with several million log messages and others that are using metrics aggressively and want to chart a [...]]]></description>
			<content:encoded><![CDATA[<p>We previously mentioned that one of our key goals for Gibraltar 2.5 was to scale up.  For the session viewer we wanted to handle larger and more complicated sessions.  For example, we have customers that routinely generate sessions with several million log messages and others that are using metrics aggressively and want to chart a few hundred metrics at the same time.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Messages.png"><img class="alignnone size-full wp-image-599" title="Log Messages" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Messages.png" alt="" width="590" height="453" /></a></p>
<h2>Message Paging</h2>
<p>The biggest problem with millions of messages is memory.  Gibraltar Analyst is a 32-bit process which means it&#8217;s going to fail if there&#8217;s more than about 1.5GB of RAM allocated at any time.  Of course, we want it to use the least memory possible but we can&#8217;t exceed 1.5GB.  After some memory profiling it was clear that displaying the messages was more memory intensive than loading the session data itself.</p>
<p>We sampled a set of data from our own sessions and customer-provided samples and determined that over about 250,000 messages the value of browsing and dynamically filtering more messages is more than offset by the performance impact.  In Gibraltar 2.5 any session with more than 500,000 messages will get split into pages of 250,000 each.</p>
<p>We&#8217;ve added a status bar to the bottom of the log messages grid to provide additional navigation context as you work with log messages, including paging information:</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Message-Paging.png"><img class="alignnone size-full wp-image-595" title="Log Message Paging" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Message-Paging.png" alt="" width="588" height="102" /></a></p>
<p>You can jump between pages, and there&#8217;s an overlap of messages so if you are working on an issue right at a boundary between pages you don&#8217;t have to keep hopping back &amp; forth.</p>
<h2>How Many Messages?</h2>
<p>We&#8217;ve always shown you how many messages were recorded for a session, but not necessarily what you have access to.  Why would there be a difference?  The main reason is due to data pruning in the agent when a session runs for a very long time or generates a lot of data.  If the session hits the pruning rules you define it won&#8217;t all be there.  Now we show how many messages there are at any time:</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Messages-Available.png"><img class="alignnone size-full wp-image-590" title="Log Messages Available" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Messages-Available.png" alt="" width="588" height="94" /></a></p>
<p>And update that if you start filtering to reflect the filter:</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Messages-Available-Filtered.png"><img class="alignnone size-full wp-image-592" title="Log Messages Available - Filtered" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Messages-Available-Filtered.png" alt="" width="588" height="94" /></a></p>
<h2>Anyone got the Time?</h2>
<p>Many times you only need the approximate time and absolute order of log messages to follow what&#8217;s going on, but some times (like when understanding the performance of your application or understanding the exact timing of external events) you need as much detail as possible.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Messages-Timing.png"><img class="alignnone size-full wp-image-591" title="Log Messages Timing" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Log-Messages-Timing.png" alt="" width="588" height="126" /></a></p>
<p>Just pick any set of messages and the total duration of the selection is displayed in the status bar (unless it&#8217;s zero).  The accuracy of the time is still limited to the resolution of the source clock , so you&#8217;re unlikely to see values less than 16 milliseconds.</p>
<p>You can also switch the grid to display the full time in milliseconds instead of using the default time format for the current culture (this feature was added in 2.1.1).</p>
<h1>Chart Many Metrics</h1>
<p>If you&#8217;ve been using the Gibraltar Agent for PostSharp, or done&#8217; your own event metrics, you may have run into an annoyance that it can generate a lot of distinct metrics.  For example, we use the Gibraltar Agent for PostSharp to inject metrics into the Gibraltar Hub &#8211; and we get a distinct metric for each web service command and database call.</p>
<p>When we want to chart these to, say, find the top 10 time consuming database calls it&#8217;s annoying to have to add them one-by-one to the chart.  It&#8217;s slower and it causes the chart to keep recalculating after adding each metric.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Metric-Chart.png"><img class="alignnone size-full wp-image-598" title="Metric Chart" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Metric-Chart.png" alt="" width="590" height="453" /></a></p>
<p>Now you can drag &amp; drop a whole category of metrics into the chart and add them in one go.  It&#8217;s faster, less error-prone, and lets you get answers fast to common questions.  Now the choice of whether to record everything under one metric or make many metrics isn&#8217;t driven by these limitations.  We have customers that generate thousands of metrics and this optimization as well as a few others related to it really improve the experience.</p>
<p>This actually demonstrated some other performance challenges when we created a few extreme data sets &#8211; with two million events in thousands of metrics and then start dynamically manipulating the chart, well, things can slow down.  We&#8217;re confident if it&#8217;s usable at these sizes, it&#8217;ll be fast enough for your situation.</p>
<img src="http://feeds.feedburner.com/~r/RockSolid/~4/R4ZzkhAHj2E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-new-feature-dive-viewing-sessions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-new-feature-dive-viewing-sessions</feedburner:origLink></item>
		<item>
		<title>Gibraltar 2.5 New Feature Dive – Working with Sessions</title>
		<link>http://feedproxy.google.com/~r/RockSolid/~3/3x6zzF4WSb4/gibraltar-2-5-working-with-sessions</link>
		<comments>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-working-with-sessions#comments</comments>
		<pubDate>Tue, 10 Aug 2010 15:16:16 +0000</pubDate>
		<dc:creator>Kendall</dc:creator>
				<category><![CDATA[Product Information]]></category>
		<category><![CDATA[Gibraltar]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://rocksolid.gibraltarsoftware.com/?p=579</guid>
		<description><![CDATA[Dive into the improvements in Gibraltar 2.5 that help you work with large numbers of application sessions faster.  Manage all of the data from deployed applications easily to get to the information you need.]]></description>
			<content:encoded><![CDATA[<p>One of our key goals for Gibraltar 2.5 was to scale up.  In this case we wanted to be well out ahead of our customers and address issues you&#8217;d run into when you create very large sessions or large numbers of sessions, or perhaps large numbers of different applications &amp; versions.  Fortunately we&#8217;ve been working directly with select larger customers on more elaborate integrations through our professional services group and that gave us a lot of real &#8220;end user&#8221; experience beyond our own internal use.</p>
<h1>Organizing the Session List</h1>
<p>Like most grids in Gibraltar you can do your own grouping, sorting and filtering through the context menu.  But, we&#8217;ve add in a set of canned views that you can easily select through that will quickly reorganize the content.  Beta users particularly liked to view By Added Date and By Application, which work great to quickly get an overview on what&#8217;s going on.</p>
<p>It&#8217;s then natural to have more fun filtering and sorting, but if you want to get back to the view you started with just click the button again and you&#8217;re back to baseline.</p>
<p>When you group a set of messages we now show a breakdown of the sessions in each group:</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Session-List-View.png"><img class="alignnone size-full wp-image-584" title="Session List View" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Session-List-View.png" alt="" width="580" height="163" /></a></p>
<p>If you collapse all of the sessions to groups since you can then get an overview of what&#8217;s going on by each category.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Session-List-Collapsed-to-Groups.png"><img class="alignnone size-full wp-image-580" title="Session List Collapsed to Groups" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Session-List-Collapsed-to-Groups.png" alt="" width="544" height="172" /></a></p>
<p>Try it out:  This is very effective when you combine it with the built in filtering of the tree view to get you in the neighborhood of the data you&#8217;re interested in, then you can easily browse to get a sense of what&#8217;s going on even when there are a large number of sessions.</p>
<h1>Previewing Sessions</h1>
<p>We&#8217;ve upgraded the session detail view to now show the results of analyzing a session&#8217;s messages.  You can select the Errors by Class or Errors by Category to see all of the unique critical, error, and warning messages in the session without opening the session.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Preview-Sessions.png"><img class="alignnone size-full wp-image-585" title="Preview Sessions" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Preview-Sessions.png" alt="" width="580" height="244" /></a></p>
<p>This saves a lot of time both when you&#8217;re just browsing to see what happened in a session and when you are trying to &#8220;look sideways&#8221; &#8211; see what errors happened around another error.  To do this, display the Errors by Class Session summary, click on an error and then select a session with that error to see all of the other errors &amp; warnings that happened in the same session.   This is also really popular when combined with one of the defect tracking summary views for the same purpose.</p>
<p>If you see something worth digging into, go ahead and open the session by double-clicking it.</p>
<h1>Deferred Refresh</h1>
<p>We use Gibraltar day in &amp; day out, but we&#8217;re often not running it that long at a time because we&#8217;re starting &amp; stopping it for development.  In working with a new large client we noticed an annoyance caused by the view automatically refreshing whenever new data arrived from the Hub.  If data is arriving often enough the pause while the view refreshed really got in the way of the task the user was trying to perform, like sorting &amp; grouping the set of sessions.</p>
<p>Imagine that a new session is arriving every 15 seconds, which in a larger deployment isn&#8217;t unreasonable.  It takes about 1-4+ seconds to refresh the view depending on the speed of the system and how many sessions there are, what views are up, etc.   Just about when you start getting back into reading through the data to find what you want, the UI pauses again to refresh.</p>
<p>To address this, we&#8217;ve added an automatic deferred refresh where the current repository view won&#8217;t update to reflect new data as long as it has focus.  So if you&#8217;re working around in one of the summary views, the session list, or the details it will suspend the data refresh.  If you click off the node it&#8217;ll automatically update or if you have another window active or another part of the UI active.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Refresh-Sessions.png"><img class="alignnone size-full wp-image-588" title="Refresh Sessions" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Refresh-Sessions.png" alt="" width="580" height="67" /></a></p>
<p>When new data does appear, we&#8217;ve added a button that will show up to let you know.  We deliberately placed it in a &#8220;white&#8221; area of the user interface so its appearance is conspicuous even out of the corner of your eye while working in the view.  If you want, you can press it and get the latest data or ignore it and at the next best opportunity the UI will update automatically.</p>
<p>This is another case where we&#8217;re trying to make Analyst just &#8220;do the right thing&#8221; without you having to think about it.  We did a few rounds of usability testing with a select group of high-volume users and made some adjustments, and we&#8217;re confident you&#8217;re going to like it.</p>
<h1>Other Improvements</h1>
<p>We added a dedicated Remove button to the sessions list.  While this was always an option on the context menu, this is fewer clicks and is a frequent feature in many workflows when managing a large number of sessions.  We did some usability testing with this to ensure people wouldn&#8217;t hit it by mistake and made some spacing and format adjustments to improve it.</p>
<p>The default session summary view (Sessions by Timeframe) now defaults to the All row so the sessions grid shows the list of all sessions by default.  This was based on feedback from the beta community who commented they were always selecting that row so they could take advantage of the new session grid view features.</p>
<p>We&#8217;ve also improved some data caching behind the scenes which will make the user interface more responsive when switching between nodes in many cases, particularly for large numbers of sessions.</p>
<h1>Keep that Feedback Coming</h1>
<p>Many of the items above came from our real world experience and observation of customer patters, but a few are direct from customer requests.  If something doesn&#8217;t feel right to you please let us know &#8211; don&#8217;t worry if you&#8217;re not sure what would be better or how we should improve it.  We are driven to make sure Gibraltar is an easy, effective tool that just works for you &#8211; providing insight you can use to create better outcomes for your team &amp; your customers.  We&#8217;re always listening &#8211; just shoot your thoughts to support or any of us and we&#8217;ll get a dialog going.</p>
<img src="http://feeds.feedburner.com/~r/RockSolid/~4/3x6zzF4WSb4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-working-with-sessions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-working-with-sessions</feedburner:origLink></item>
		<item>
		<title>Gibraltar 2.5 New Feature Dive – Issue Tracking Integration</title>
		<link>http://feedproxy.google.com/~r/RockSolid/~3/7_qmYmHoYgk/gibraltar-2-5-new-feature-dive-issue-tracking-integration</link>
		<comments>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-new-feature-dive-issue-tracking-integration#comments</comments>
		<pubDate>Thu, 29 Jul 2010 08:11:10 +0000</pubDate>
		<dc:creator>Kendall</dc:creator>
				<category><![CDATA[Product Information]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Gibraltar]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://rocksolid.gibraltarsoftware.com/?p=642</guid>
		<description><![CDATA[In our experience, automated error reporting beats user-reported errors 3 to 1!  Many of these bugs slip past internal testing because they only show up under specific combinations of conditions – exactly the kind of bugs that drive you nuts and waste your time trying to reproduce them. Gibraltar provides contextual information about the conditions leading up to each error that slashes analysis time.  Gibraltar integrates with issue tracking systems to provide intelligent error management. 
]]></description>
			<content:encoded><![CDATA[<h1>Quick Takeaway</h1>
<p>Gibraltar 2.5 includes built-in integration with two issue tracking systems and provides hooks for integrating with others.  This integration extends Gibraltar to automatically create issues for new problems as they occur and make it easy to drill into all of the Gibraltar data related to any issue.</p>
<p>Check out our <a title="Getting Started - What's New - Version 2.5" href="http://www.gibraltarsoftware.com/Support/Documentation.aspx?Page=GettingStarted_WhatsNew_Version2_5.html">release notes</a> for technical details or watch videos of how Gibraltar integrates with <a href="http://www.GIbraltarSoftware.com/See/FogBugz.aspx">FogBugz (by Fog Creek)</a> and <a href="http://www.GIbraltarSoftware.com/See/Gemini.aspx">Gemini (by CounterSoft)</a> to get an overview of our integration.</p>
<blockquote><p>Update:  Check out the article on <a title="CounterSoft:  Closed Loop Software Developmenmt" href="http://blogs.countersoft.com/index.php/2010/07/closed-loop-software-development/">Closed Loop Software Development</a> over at CounterSoft which talks about this integration. It&#8217;s a really easy way to get going, even if you&#8217;re a one developer shop!</p></blockquote>
<h1>The Full Scoop</h1>
<p>While validating the new Gibraltar Add-In API we wanted to pick a real-world, hard problem that would push the edges of the integration capability.  We decided to pick up an idea that had always been on our to do list:  Integration with a defect tracking system.  We built the original integration for our internal use with our in-house system.  After working with that for a few weeks we were clear that this was a must-have feature that became a cornerstone of the Gibraltar 2.5 release.</p>
<h1>Integrate with Your Processes</h1>
<p>The primary goal of the issue tracking integration was to integrate Gibraltar and the data it collects into your existing workflow.  We realized that no matter how great we might make tracking and managing errors within Gibraltar it wouldn&#8217;t be as good as just being able to <em>use your existing workflow</em>.  Why?  Because you would still need your existing system, so<strong> why have two separate workflows</strong>?  Instead, you want to be able to look in your issue tracking system and say <em>this is all there is</em> without having to manually key and translate.</p>
<p>As a baseline, consider what would happen if you just configured email notification to flow from Gibraltar to your issue tracking system.  This would create a new issue each time a qualifying event happened.  In a production environment the number of issues would quickly get out of hand &#8211; one recurring problem and <strong>you&#8217;d be spending your time closing duplicate cases instead of working the important ones</strong>.  Instead you need to be sure:</p>
<ul>
<li>Each new issues creates a new case</li>
<li>New sessions with the same problem just add more information to the open case</li>
<li>You have some way of ignoring errors that don&#8217;t represent a defect.</li>
</ul>
<p>The Gibraltar integration delivers on this by scanning sessions as they come in and mapping errors into your issue tracking system.  This integration ensures:</p>
<ul>
<li>Errors with a new unique signature will open new issues.</li>
<li>Errors that match an existing signature will add additional information to the existing issue.</li>
<li>If an error reoccurs in a new version after the related issue has been closed it will be reopened, unless you&#8217;ve set that issue to be ignored.</li>
<li>Gibraltar sessions and issues will be related so you can easily see all of the sessions in Gibraltar for a particular issue.</li>
</ul>
<p>All of this is possible because Gibraltar queries the issue tracking system while analyzing sessions to determine the right action to take.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/DefectTrackingSystems.png"><img class="alignnone size-full wp-image-654" title="Architecture of Gibraltar's Issue Management Integration" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/DefectTrackingSystems.png" alt="" width="580" height="155" /></a></p>
<h2>Unexpectedly Awesome</h2>
<p>When we first set this integration up ourselves we carefully sandboxed it off so it wouldn&#8217;t interfere with our <a title="How Gibraltar helped Gibraltar 2.1 - our CEIP" href="http://rocksolid.gibraltarsoftware.com/development/how-gibraltar-helped-gibraltar-2-1-our-ceip">existing approach to our CEIP</a>.  Several weeks in, the development team started pulling items out of the sandbox and into our support queue and defect backlog because they were spot on.  Soon we were hooked &#8211; <strong>this was the way it should to be for everyone</strong>.   We took our original implementation and included it in the release as a source code sample and set out to create in-the-box integration for some great systems.</p>
<p>This is one of those cases in software where the system is more valuable than the sum of its parts:</p>
<ul>
<li>Real user errors are accurately and completely conveyed into your issue tracking system without any manual effort.</li>
<li>You manage issues the same way you always have, including whatever reporting you&#8217;re already doing.</li>
<li>You see all of the Gibraltar data for an issue with just a few clicks, no searching for the data by looking at messages until you find the right one.</li>
</ul>
<p><strong>Gibraltar adds value and reinforces your investment in issue tracking</strong> without requiring you to change how you work.</p>
<h2>Translating between Gibraltar and Issue Tracking</h2>
<p>In Gibraltar each session is identified by a distinct Product, Application and Version, like <em>Gibraltar Analyst 2.5.0.742</em> or<em> Gibraltar Hub 2.1.0.594</em>.  These are usually very specific.  On the other hand in your issue tracking system you usually have more general categorization, like <em>Gibraltar Current Development</em> for the active branch and <em>Gibraltar Support</em> for shipped versions.   Not only are the two lists different, but you need enough mapping information to put new issues into the right workflow which may require selecting a priority, area, category, or whatever your issue tracking system requires.<br />
<a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Gemini_Configure_Relationship_Editor.png"><img class="size-full wp-image-646 alignright" title="Issue Tracking Relationship Editor" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Gemini_Configure_Relationship_Editor.png" alt="" width="237" height="236" /></a>Once you&#8217;ve enabled support for your issue tracking system you can configure how to map Gibraltar sessions into it from within Analyst. When a session is being analyzed it&#8217;s compared against the list of mappings until it matches one. To help minimize the amount of configuration necessary you can specify:</p>
<ul>
<li>Just a Product</li>
<li>Just a Product &amp; Application</li>
<li>A Product, Application, and partial or complete version.</li>
</ul>
<p>In the example at right, all sessions for Gibraltar Analyst with the major/minor version 2.2 would match.  You can do more interesting wild card version matching to help fit your exact situation, <a title="Configuring Relationships" href="http://www.gibraltarsoftware.com/Support/Documentation.aspx?Page=ThirdParty_Gemini_Configuration_Relationships.html">see our documentation on configuring relationships</a>.</p>
<p>The idea is to configure a session to get into the right initial state in your workflow.  From there it should flow through just like if you keyed the defect yourself.</p>
<h2>Details you Can&#8217;t Ignore</h2>
<p>As more sessions come in they will be checked and the appropriate issues updated.  A special case for this is when you&#8217;ve closed the related issue.  Gibraltar has to decide whether to ignore the new data or reopen the issue.  To work this out it focuses on the version of the new session:</p>
<ul>
<li>If it&#8217;s the same or older as the latest version previously seen on the issue then the new data is ignored.</li>
<li>If it&#8217;s for a newer version the defect is reopened</li>
</ul>
<p>The idea is that Gibraltar recognizes there&#8217;s a lag between when you declare an issue resolved and when that fix gets deployed to users.  As long as it&#8217;s only occurring in the same set of versions it showed up in previously it&#8217;s still reasonable that the issue is closed.  If it shows up in a newer version then it probably hasn&#8217;t been fixed and certainly should be rechecked.</p>
<h2>Until you have to Ignore Them</h2>
<p>In any system there&#8217;s a set of errors that aren&#8217;t defects.  Temporary network connectivity issues, user errors, server timeouts&#8230;  They are still errors but they don&#8217;t call for any action on your part.  To handle this, <strong>Gibraltar supports marking an issue to be permanently ignored</strong>.  The exact mechanism depends on the particulars of the issue tracking system, but it&#8217;s selected to make it natural and obvious.</p>
<p>When you first enable automatic integration these noise issues will get opened once, but all you have to do is mark them to be permanently ignored and they&#8217;ll never resurface again.  Within a short period of time all of the common noise items will be suppressed and every new item will be gold.</p>
<h1>Researching and Resolving Issues</h1>
<p>Opening issues automatically is just one direction of integration.  Once the issue exists you want to be able to see all of the related sessions in Gibraltar effortlessly.  Within Analyst you can click on a dedicated node in the tree to see all of the open issues with Gibraltar sessions and drill down to the list of all related sessions.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Gemini_RepositoryView.png"><img class="alignnone size-full wp-image-647" title="Issue Tracking Repository View" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Gemini_RepositoryView.png" alt="" width="590" height="377" /></a></p>
<p>Pick a session and you can open it or just preview all of the errors and warnings within it.  In this view you can quickly spot trends in the sessions:  perhaps they&#8217;re all in the same timezone or same operating system, or have another error that&#8217;s the true culprit.</p>
<p>Imagine that &#8211; you receive an email notification that there&#8217;s a new issue for you to look at.  You double-click the Analyst icon on your system tray and Analyst pops up.  Click on the issue tracking node and the most recent issue is on the top.  <strong>In seconds you&#8217;re seeing the whole picture of the error</strong>:  Related exception(s), actions they took leading up to the problem, <a title="It's More than Just Exceptions" href="http://rocksolid.gibraltarsoftware.com/development/logging/its-more-than-just-exceptions-and-errors">performance and memory data</a>.  You&#8217;ll get the whole picture quickly.</p>
<p>The dedicated issue tracking display supports a number of built-in views that are designed to match each system&#8217;s typical grouping &amp; sorting to help you find what you want faster.</p>
<h1>Creating Issues by Hand</h1>
<p>You don&#8217;t have to just rely on the automatic issue management feature:  When you&#8217;re viewing a session you can select a range of messages and make a new issue from them on the fly.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Gemini_ManualIssue_NewIssue.png"><img class="alignright size-full wp-image-648" title="Create a New Issue Manually" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/Gemini_ManualIssue_NewIssue.png" alt="" width="356" height="353" /></a>Each of the messages you&#8217;ve selected are summarized with the last message in full detail.  This lets you <strong>show events leading up to a problem and then the big problem itself</strong>.</p>
<p>Gibraltar will still search your issue tracking system to see if there&#8217;s an existing case matching the last message you selected so it can handle adding new data to an existing issue or creating a new one.  It also checks your mapping configuration to pick the best defaults for the new case in your issue tracking system.</p>
<p>You can add whatever additional text you feel is useful to describe why you&#8217;re creating the issue and override some of the initial defect options like category or priority, depending on the system.</p>
<p><strong>Create issues for suspicious items in our data</strong> &#8211; warnings, or just messages that don&#8217;t make sense.  Regardless of how you create the issue the rest of the integration works the same.</p>
<h1>Work as a Team</h1>
<p>Issue tracking systems are fundamentally about tracking &amp; sharing knowledge on the state of your environment with a team of people.  Gibraltar fits right into this by:</p>
<ul>
<li><strong>Sharing configuration with your whole team: </strong>Only one person needs to go in and update the mapping setup when you deploy a new version or application and the whole team is kept current.</li>
<li><strong>Centralizing Analysis: </strong>You can have the Hub perform all of the session analysis so no one need run Analyst for you to get new issues created &amp; updated.</li>
</ul>
<p>You can perform all of the configuration within Analyst and it flows back and forth to the Hub automatically, no need to get IT involved on the server when you need to adjust something.</p>
<h2>An Army of One</h2>
<p>If you&#8217;re using just Analyst stand alone <strong>you can still take advantage of everything</strong> we&#8217;ve covered &#8211; you just need to leave Analyst running to automatically have sessions analyzed (otherwise they&#8217;ll wait for you to run it the next time).  Fortunately we&#8217;ve <a title="Unpredictable Feature Coolness" href="http://rocksolid.gibraltarsoftware.com/development/unpredictable-feature-coolness">made that a pretty good experience</a> in this release.</p>
<h1>Get Started Today</h1>
<p>We&#8217;ve designed the integration to work without requiring anything be installed into your issue tracking system:  <strong>Just enable the integration feature and go. </strong>You can get it started with just one member of your team and see how it goes, or charge in full-bore by configuring automatic integration with the Hub and sharing the configuration with your whole team.  Download Gibraltar and get started!  If you don’t have a defect tracking system, FogBugz will provide a free hosted instance for 1 or 2 users and Gemini offers a free license for up to three users.</p>
<p>Check out our <a title="Getting Started - What's New - Version 2.5" href="http://www.gibraltarsoftware.com/Support/Documentation.aspx?Page=GettingStarted_WhatsNew_Version2_5.html">release notes</a> for technical details or watch videos of how Gibraltar integrates with <a href="http://www.GIbraltarSoftware.com/See/FogBugz.aspx">FogBugz (by Fog Creek)</a> and <a href="http://www.GIbraltarSoftware.com/See/Gemini.aspx">Gemini (by CounterSoft)</a> to get an overview of our integration.</p>
<img src="http://feeds.feedburner.com/~r/RockSolid/~4/7_qmYmHoYgk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-new-feature-dive-issue-tracking-integration/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-new-feature-dive-issue-tracking-integration</feedburner:origLink></item>
		<item>
		<title>Gibraltar 2.5 New Feature Dive – Email Notification</title>
		<link>http://feedproxy.google.com/~r/RockSolid/~3/eF2vssnh6ps/gibraltar-2-5-new-feature-dive-email-notification</link>
		<comments>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-new-feature-dive-email-notification#comments</comments>
		<pubDate>Tue, 27 Jul 2010 04:11:36 +0000</pubDate>
		<dc:creator>Kendall</dc:creator>
				<category><![CDATA[Product Information]]></category>
		<category><![CDATA[Gibraltar]]></category>
		<category><![CDATA[Notification]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://rocksolid.gibraltarsoftware.com/?p=620</guid>
		<description><![CDATA[With Gibraltar 2.5 you can receive text or HTML-formatted messages when important events are reported.  The messages are pretty and we've worked hard to make sure you won't get flooded when something goes wrong in an app you monitor.  They're easy to configure and are generated automatically on the Server so no one need be logged in.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2frocksolid.gibraltarsoftware.com%2fproduct-information%2fgibraltar-2-5-new-feature-dive-email-notification"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2frocksolid.gibraltarsoftware.com%2fproduct-information%2fgibraltar-2-5-new-feature-dive-email-notification&amp;bgcolor=FF9900" border="0" alt="kick it on DotNetKicks.com" /></a></p>
<h1>Quick Takeaway</h1>
<p>With Gibraltar 2.5 we&#8217;ve added email notifications to the Hub server.  You can receive text or HTML-formatted messages when new sessions arrive at the hub or detailed emails when errors are reported.  You can read about it <a title="User's Guide - Notifications" href="http://www.gibraltarsoftware.com/Support/Documentation.aspx?Page=Viewer_Notification_Introduction.html">in the online documentation</a>.   The messages are pretty and we&#8217;ve worked hard to make sure you won&#8217;t get flooded when something goes wrong.</p>
<h1>The Full Story</h1>
<p>With Gibraltar 2.5 we&#8217;ve introduced a new server-based email notification system that can be easily configured by your team.  Our original goal was to satisfy a common Hub user request to give them some way of knowing that there was new data worth looking at so they&#8217;d know when to power up Analyst, retrieve updates and dig in.  As we scoped out the mission of Gibraltar 2.5 we saw another essential characteristic:  <strong>Email is the most pervasive process management tool in the world</strong>.  By providing the right email messages from the server, we could integrate with the defacto processes of a large number of customers.</p>
<ul>
<li>About a third of Gibraltar customers don&#8217;t have a dedicated issue tracking system.  They informally use email and spreadsheets to track what&#8217;s important.</li>
<li>Most issue tracking systems can intake issues via email, so email notifications become a default integration option for these systems.</li>
</ul>
<p>As we went through the design process for notifications, the key mission we kept laying out is that they had to be good enough to<strong> let you know if you needed to leave a meeting with your boss to go dig into an issue</strong>.  Think about it:  You&#8217;re sitting there in a meeting and your phone vibrates with an email,  You steal a quick glance and need to see enough to decide <em>no biggie, it can wait </em>or <em>uh oh &#8211; better make my apologies and get back to my desk</em>.  This meant it had to be readable on mobile mail clients (iPhone, Android, etc.) as well as your full email client (Outlook, GMail, etc.).</p>
<h1>What Kind of Notifications?</h1>
<p>We decided there needed to be two types of notifications:</p>
<ol>
<li><strong>New Session Notification: </strong> Alerts you that an interesting application session has been received with a summary of the overall session.</li>
<li><strong>New Error / Warning Notification:</strong> Alerts you that an error or warning has been received.  You get an email for each unique error or warning in a session.</li>
</ol>
<div id="attachment_631" class="wp-caption alignright" style="width: 351px"><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/GAM_Notification_SessionSummarySample.png"><img class="size-full wp-image-631 " title="Example Session Summary Notification with a number of errors to report" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/GAM_Notification_SessionSummarySample.png" alt="" width="341" height="449" /></a><p class="wp-caption-text">Example Session Summary Notification</p></div>
<p>Sometimes you just need to know if there&#8217;s new data available and if so a very quick summary of what it contains.  This is primarily interesting for users that don&#8217;t receive a lot of sessions, for example where sessions are only submitted when an end-customer has a runtime problem with the application or you&#8217;re primarily supporting one or two web sites.</p>
<p>For this scenario you can select <strong>Send a Session Available Notice</strong> and get few emails that are fairly high level.  You can see from the example that you get a summary of the session including what exact application &amp; version it related to and the most commonly used information about the computer where it was running.  After that, each unique message that matched your notification threshold is summarized.  If it occurs many times the total number of occurrences is listed along with the timestamp of the first occurrence.  This format is designed to handle scenarios where a single error (like being unable to open a database connection) results in a storm of other errors (e.g. record not found) you can see both instead of the first error being lost in the storm.</p>
<div id="attachment_621" class="wp-caption alignleft" style="width: 344px"><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/GAM_Notification_LogMessageSample.png"><img class="size-full wp-image-621 " title="A full log message example showing exception detail and session summary" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/GAM_Notification_LogMessageSample.png" alt="" width="334" height="428" /></a><p class="wp-caption-text">Example Log Message Notification</p></div>
<p>The other scenario is to see deeper drill-in information on each specific error as they happen.  This is needed if you want to integrate with an external issue tracking system (since it needs something specific and somewhat unique to build an issue from) or you need to be able to take action on a problem quickly, possibly without even starting up Gibraltar Analyst.</p>
<p>For this scenario you can select <strong>Send Details on Qualifying Messages</strong> and get an email for each error individually.  The full details of the log message will be written out in an HTML format optimized for quick visual scanning.</p>
<p>If the log message that triggered the notification includes exception details the exception(s) will be written out to the detail with the call stack for each in order from outermost to innermost.</p>
<p>At the end of the message  a session summary is included with the most common information about the application &amp; computer to help you perform quick triage.</p>
<h2>Safety first &#8211; Notification without Noise</h2>
<p>One thing we were worried about from the start was flooding prevention. <strong>You don&#8217;t want to be bombarded with 1300 emails </strong>because a web server went crazy and started screaming about a connection problem or your server got hit by a DoS attack.   With session notifications this is easy because you&#8217;ll just get one notification per session which significantly reduces the rate they can happen.  With log messages it&#8217;s a different story.</p>
<p>What we did was leverage an existing idea built into Gibraltar of grouping messages by a fingerprint &#8211; typically the class &amp; caption or the category &amp; caption.   In our experience this tends to be a fair grouping of &#8220;sameness&#8221; &#8211; The captions tend to only include a modest amount of really variable content (like file names &amp; user names) but are unique enough particularly when paired with the location the event happened.  By grouping messages in this way recurring errors that might otherwise flood you are all pulled together and carried as a single alert.  We display the first occurrence in full detail then just let you know how many more times it happened in the same session.</p>
<h1>Getting Just the Alerts You Want</h1>
<p>It was clear to us from the start that notification couldn&#8217;t be as simple as &#8220;always send an email when there&#8217;s an error&#8221;, it was going to have to be more contextually sensitive or it&#8217;d be turned off.  We&#8217;re highly opposed to features that look great in a demo but not in the real world (e.g. <a title="Beware Demoware" href="http://rocksolid.gibraltarsoftware.com/development/beware-demoware">demoware</a>) so we knew it had to be easy to configure to just &#8220;do the right thing&#8221;.  We also work with enough real world customers to know that it had to be configurable from Analyst.  In many shops the Hub server is run by IT who treats every change to its configuration as a change request.  That barrier, no matter how well meaning, would create enough friction to make notifications less nimble in the real world.</p>
<p>To configure notifications, you just select Notification Options from within Analyst.  As long as you have a Hub connection you can then view &amp; edit all of the notifications and changes will take effect on the server as soon as you click OK.</p>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/GAM_Notification_HubNotificationOptions.png"><img class="alignnone size-full wp-image-626" title="Notification Options Dialog within Gibraltar Analyst" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/GAM_Notification_HubNotificationOptions.png" alt="" width="566" height="284" /></a></p>
<p>We wanted the notification rules to be as simple to understand as possible, but we wanted to hit all of the reasonable user scenarios we could.  The basic model used for a notification rule is to define the matching sessions, indicate what type of notification you want, and then where you want it sent.  You can pick a single entry from the address book which in turn forwards to a single email address.  If you want to sent it to a group of people, just put in the address of the right email distribution list.  The address book makes it easy to update a set of destinations in one place, as well as disable HTML formatting for emails if necessary.  For example you could create a single address book entry for your issue tracking system with HTML turned off and then one for yourself with HTML turned on.</p>
<h2>Finding the Right Sessions</h2>
<p><a href="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/GAM_Notification_Rule_Edit_Dialog.png"><img class="size-medium wp-image-627 alignright" title="Notification Rule Editor" src="http://rocksolid.gibraltarsoftware.com/wp-content/uploads/GAM_Notification_Rule_Edit_Dialog-252x300.png" alt="" width="252" height="300" /></a>You can match sessions by specifying just the required elements:  Product, Product &amp; Application, Product &amp; Application &amp; Version and separately Computer.  For Version you can match exactly, less than, or greater.</p>
<p>We considered more elaborate version matching capabilities but as we walked through user scenarios we just couldn&#8217;t justify the added complexity of the user experience.  In a typical environment either:</p>
<ol>
<li><strong>Version is irrelevant: </strong>If you have a web site and aren&#8217;t tracking version, then it doesn&#8217;t matter at all.  In this case Computer is more important to separate out environments.</li>
<li><strong>Production &amp; Development Versions:</strong> If you are tracking versions there are usually older version(s) that are in production and then after a certain point all newer versions are development/QA/experimental.  You then are looking to either match production versions or development versions which just requires less than and greater than.</li>
</ol>
<p>We knew from our customer conversations that some folks were very concerned about warnings, and most were just concerned about errors and crash events (critical messages in Gibraltar).  You can configure how bad something has to be to qualify in the same editor.</p>
<h2>The Server that Cried Wolf</h2>
<p>There are often computers that you never want to hear from &#8211; typically development systems or internal test systems.  You want to be able to run the production code in the production configuration &#8211; so they&#8217;ll still submit sessions to your Hub &#8211; but not want to be bothered when there&#8217;s a problem.</p>
<p>To solve this, you can add the computer to the list of suppression rules and that will prevent any related session from generating a notification even if it matches a rule.  This simple approach will get rid of most of the noise alerts.</p>
<h2>Avoiding Duplicates</h2>
<p>When the server is processing a session it calculates the messages it needs to send based on all of the rules and then sends each unique message to the set of qualifying recipients.  This effectively merges all of the rules together that would cause the same message to be generated.  It then eliminates duplicate destinations by email address (so if two address book entries use the same email address and both qualify for the message only one entry is added).  Finally, since a single message with all of the addresses is submitted to the mail server the mail server can eliminate duplicates once it expands address lists.</p>
<p>All of this is designed to <strong>prevent you from receiving multiple copies of the same notification</strong> even if you are obliquely included due to distribution lists.</p>
<p>Another way you may get duplicate messages is due to the same session being provided to the hub multiple times.  This can happen for a few reasons, most commonly because it&#8217;s being submitted incrementally as problems are happening but the session hasn&#8217;t ended yet.</p>
<p>To prevent the notification engine from reprocessing messages it has already examined the Hub server keeps track of exactly what set of messages have previously been checked and ignores them when the session is resubmitted.  This way <strong>only new messages are processed</strong>.  If you read the resulting alerts carefully you can see when this happens because the notification subject will say that an updated session is available or the error detail will describe &#8220;new&#8221; occurrences of an error.</p>
<h1>Broad Compatibility</h1>
<p>Since notifications are primarily about getting information out to other systems and for use in situations when you may not be able to run Analyst <strong>it&#8217;s more important that they look OK wherever you are than that they look awesome in any particular viewer</strong>.  If you&#8217;ve ever worked on HTML formatting an email you know the differences between email clients are stunning (and really appalling - You&#8217;ll be partying like it&#8217;s 1999).  We did a range of testing of each of our HTML formats using:</p>
<ul>
<li>Outlook 2003, 2007, 2010 (It&#8217;s what we use along with most of our customers)</li>
<li>Outlook Web Access 2007, 2010 (Also what we use)</li>
<li>Gmail (second most popular mail client our customers use)</li>
<li>iPhone Mail</li>
</ul>
<p>Just between the first three we had major problems to work around &#8211; each ignored font sizing or coloring when declared in different ways for example.  Ultimately we found a combination that worked reasonably in all of them.</p>
<p>When we generate each email the HTML version is technically an attachment to the main text version.  This way a client that doesn&#8217;t understand HTML formatting will see the text-optimized version and continue unaware of what it&#8217;s not seeing.</p>
<h2>Just the Text Please</h2>
<p>If you are sending emails to an address you know you never want the HTML version for (either because it just doesn&#8217;t display well or it just isn&#8217;t necessary because you always want it as text) you can disable the HTML version from being generated &amp; attached by clearing the HTML Formatting option in the address book.  The Text versions do more-or-less fixed width text formatting to attempt to create tables of items where necessary and may be parseable if you are feeling frisky.</p>
<h1>Get Notifications Today</h1>
<p>If you&#8217;re using the Gibraltar Hub Service, just download &amp; install the latest version of Gibraltar Analyst and you can start receiving notifications today.  <strong>You don&#8217;t need to do anything to your deployed application</strong> &#8211; this change only affects the Hub &amp; Analyst.</p>
<p>If you&#8217;re using your own private Hub you&#8217;ll need to first upgrade it to the latest Gibraltar Hub before you can configure notifications.  You&#8217;ll also need to configure a mail server for your private hub to send mail through &#8211; complete details are <a title="Hub Server Administration - Mail Server" href="http://www.gibraltarsoftware.com/Support/Documentation.aspx?Page=ServerAdmin_MailServer.html">in the user documentation</a>.  If you or your IT department have any questions just contact our support department via email, we&#8217;re here to help.</p>
<img src="http://feeds.feedburner.com/~r/RockSolid/~4/eF2vssnh6ps" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-new-feature-dive-email-notification/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://rocksolid.gibraltarsoftware.com/product-information/gibraltar-2-5-new-feature-dive-email-notification</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.346 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-08-17 17:16:24 -->
