Archive for Charts

Apr
05

Gibraltar 2.2 Beta 1 Now Available

Posted by: | Comments (2)

The first beta of Gibraltar 2.2 is now available to download.  The big picture items in this release are:

  • New add-in integration API: You can do some fun stuff with this, like exporting data to your own data warehouse or integrating with your favorite defect tracker.  We’ve provided some samples to get you started and make sure it’s easy.
  • System tray and run at login integration: Particularly if you’re using Gibraltar Hub this is a killer feature that you have to experience.  It makes integrating Gibraltar into your personal workflow much more fluid.
  • View errors without opening sessions: You can preview the errors in a session without having to open it up to decide if it’s worth drilling into.  This saves a lot of time when reviewing large numbers of sessions.
  • Add metric groups to charts in one step: You can add any number of metrics to a chart at once just by dragging the folder they contain onto the chart.  It’ll sort out the compatibility for you in one step.  If you’ve been using metrics, particularly using our aspects for PostSharp, this feature will save you a lot of time.

A hidden feature for existing Gibraltar users is that we’ve dramatically reduced the memory used for packaging and sending sessions via email or writing them to files.  Basically, we’ve optimized the case where a session isn’t fragmented to never buffer the data in memory resulting in a small and predictable memory footprint even for very large sessions.

Safe for production use

The reason this is considered a Beta release is because of the new Add-In integration API.  This affects Analyst only.  Otherwise it has passed all of our production tests and is safe to deploy and use broadly.  We are likely to make changes to the Add-In API based on your feedback and our own experience for the final release.

We will provide our normal full support for this release at least through shipping the final release of 2.2.

Path to final release

We expect to wrap up the beta of 2.2 and ship the production version in the next 6-8 weeks depending on your feedback.  We want to make sure there are several add-ins available on initial release and get in some other exiting capabilities we can’t talk about just yet before we close the books on Gibraltar 2 and move on to our next major release.

This is a great chance to influence the design of a major feature of Gibraltar – play around with creating add-ins and let us know what you think.  What are we missing? What type of add-ins do you want to see (perhaps there’s someone else that wants the same thing)?  Drop us a line and let us know.

Trial users

We’d encourage you to try out this new release as well, particularly if you think you’ll get more out of the new features we’ve added. All you need to do is register for an account (free and fully automated) and you can get it.   Your existing 14 day anonymous trial or 30 day trial key will continue just fine with this beta release.

Categories : .NET, Development
Comments (2)
Feb
19

Gibraltar 2.1.1 Released

Posted by: | Comments (1)

kick it on DotNetKicks.com

We’ve published Gibraltar 2.1.1, you can download it right away.  There are a number of great enhancements in this release.  We’ve already covered a few of them before:

Based on feedback on the beta release we’ve added some additional capabilities:

  • Send Session Now: If you subscribe to the Message Alert event you can send the current session immediately to the Hub or Email based on the current configuration by setting one property.  Check out the code sample to see how.
  • Easy email notifications: You can leverage the same email configuration the Agent is configured with to send messages within your application for any reason.
  • Anonymous Data Collection: Session data can be anonymized during collection so no personally-identifying information is sent to you.  Just set one option and you’re good to go.
  • Detailed .NET Memory Counters: You can now enable detailed memory performance counters that monitor the .NET CLR’s garbage collector and memory monitoring.  Very useful for monitoring for memory leaks in production applications.
  • PostSharp Enhancements: We’ve made argument tracking more sophisticated so you can do more without compromising the performance of your application.

We also fixed a number of defects (23) that mostly apply to edge cases, but no defect is minor when it affects you.  In particular, our CEIP identified a error on first time startup in several cultures that prompted users to restart Analyst.  Ouch.  Fortunately we were able to figure it out and fix it.  We addressed Thread Ids too.

Hub Subscriptions Live Too

On February 15 the Gibraltar Hub Service is fully live.  You can get a free 30 day trial and then if you like what you see you can subscribe for terms from 1 month to one year at a scale that works for you – from a single laptop up to your whole large team.   There’s no long term commitment, and you can even easily migrate from the Hub Service to your own private hub down the road if you want to.

This Release Made Possible By People Like You

We say it all the time, but this release in particular was driven entirely by end-user requests.  We’re working on the next major release of Gibraltar but we stepped back and wanted to address requests from our customers and a few prospects as well.  When you read the list of everything we’ve done, other than a few defects we found internally and through the CEIP this is based on what our customers felt was most important.  Are we missing something you need?  Let us know:  we’ve proven we listen again and again and again.

You can read a thorough list of the new features, defect fixes, and changes at What’s New in Gibraltar 2.1.1.
kick it on DotNetKicks.com

Categories : .NET, Development, ISV
Comments (1)

I spend most of my time on the development side of Gibraltar – I lead the team writing the code and supporting our customers.  I sometimes get involved in presales activities – if you click our web site chat link, it’s a good bet I’m on the other side – but the bulk of our marketing and presales work is done by my partner Jay.   A few times a week we discuss what he’s hearing from folks trying out Gibraltar and we decide if we need to make any adjustments to our development plans. We give first priority to development requests from our customers, then prospects, then the fun cool ideas we have. Every once in a while those ideas collide at the same time and we know we’re onto something.

Several weeks ago I was handling a support request from a new customer and Jay had a conversation with a prospect that hit on the same issues: Our charting features for metrics looked really good on the surface, but fell down in real life:

  • Really Long Strings: Our customer wanted to track the execution characteristics of every database query, and used dynamic SQL – so the query could be really long.  If a label was longer than you could show diagonally on the screen, the whole chart wouldn’t show.
  • Outlier Filtering: In any set of data some weird points will fall.  Perhaps your code was just spinning up or whatever, it should be ignored.
  • Show Me the Money: It’s all great you can summarize the information, but what details went into that?  To take actions on the information most people ended up replicating the chart in the Metric Grid tool to see the individual elements of data to work with.
  • Bad Topping: When you added secondary data to a chart you were topping (restricting the display to the Top N values) it re-topped the secondary data, causing downright bizarre results.

Now, we knew about the last two of them but the first two came out from real users solving problems with Gibraltar.  Frankly, our test data always generated relatively short strings partly because we knew how our tool worked and how to get good results from it.  The killer comment came from our prospective customer, and it hurt:

I mean, it all looks nice but basically it’s demoware until you address these issues

Ouch.

We hate demoware.  We will not make demoware.  This hurt even more because we really believe in the need for great charting – it’s important, it’s one of the things really unique about Gibraltar, and yet we also had a list of things we wanted to do with it.  The trouble is we have a list of things we’d like to do with just about every part of the product; we’re insanely passionate about application diagnostics.

So we wrote out a set of things we had to address and moved this to the front of the development queue.  We got sample data from a few customers we knew were using the feature and having trouble and went to work.

Previously we prepared the data and fed it to the chart control for analysis.  Unfortunately, to fix the topping problem would be really problematic with the chart doing the work – the control vendor disagreed that what we wanted was sensible and working around it was going to be complicated.  Additionally, we were jittery about having the same calculation done two different ways – one way to show the details and another to display the data.  In the end, we chose to rewrite the analysis into a central set of code we could check and control.  That way we could guarantee the results were consistent, and tailor them to our needs.

That’s just the way the breaks go – some things are easy, some are hard, but in the end it’s about what it’s worth to our customers.  Here’s what’s fun and new:

See the Details

As the data is grouped up you can see all of the raw data that went into it.  Don’t like one outlier?  You can suppress it and immediately see the chart change to show how that affects the analysis.   Curious as to why there’s a big spike in the chart? Click it and look at the individual rows to see the little details to know what to do.

This is one place I really love what we do vs. traditional performance profiling:  You can see not just the overall time used by a method but the exact parameters used for each call and their individual time to know if it’s a problem of just one particular set of options taking a lot of time or the method is generally slow.  This is useful to eliminate false leads so you know what methods are really worth profiling with your full up performance tool.  The great part is that it’s safe for use in production – which gives you much more accurate information on what really matters.

Have hundreds of group items?  That’s OK too – we’ll automatically scroll the chart to keep things at a sensible size.  Otherwise, you can use the Top feature to just show the most significant information, whether that’s based on a top count, percentage, or threshold.

Without the Noise

In the real world there’s always some noise in the data – points that will lead you astray.  In particular, if you’re looking at the duration of something you really shouldn’t judge its performance on the average or maximum; the maximum is likely a worst case scenario that reflects first time startup or a transient and the average will hide operations that are often slow, and often fast.  The problem is that you’re still upsetting users with the slow ones.

To resolve this, we’ve implemented a 95th percentile performance summarization that gives you a good real-world feel for performance data.  Here’s an example from our web site:

Notice that if you sorted by the average page duration instead of the 95th percentile you wouldn’t get the same pages floating to the top.  It’s clear from this that we have a few pages that are consistently slow for some users – we’ll definitely be taking a look at that!

Work with Any Data

We’re often… impressed… with what people do with Gibraltar.  We’ve seen proof positive that if you design a product to go to X, users will immediately take it to 3X.  We’ve previously addressed some edge cases with the log viewer, now we’ve applied the same lessons to Metric Charting.  Want to group by raw SQL Statements that are a page long?  No problem.  It’ll be fast, it’ll display, and you won’t have to worry about tooltips trying to go off the edges of the screen.

Need to still be able to see the full page of SQL when you find that slow request?  Yep, you can do that too.

With more Freedom

Previously, you could only chart a single metric at a time.  This was a big coding shortcut, and it worked for us internally because we designed our metrics to work with it.  But, in the real world things aren’t quite that simple.  Our own Agent for PostSharp, which is probably the way most people start trying out metrics, records data in multiple metrics and really can’t be charted well if you can’t throw a bunch of them together.

We’ve updated the charting to let you throw just about any combination of metrics together you think could be sensibly put together – and it’ll figure out what columns are common enough and can be graphed.  In the end there are a range of reasons why you might want to record metrics in different ways in your application – and we’d rather you could do what was convenient and minimize how much you have to worry about how it shows up in Analyst.

We’ve also made the charting more configurable – you can change most of the different labels if you don’t like the autogenerated values and show or hide various elements to get the chart the way you want it.  When you’re done, you can export it right to the format of your choice

Bringing it All Together

I hope you get a sense from the pictures above just how much you can do with the new metric charting features, but there’s no substitute for downloading a trial and seeing it for yourself.  All of the data behind the charts in this example was collected using the Gibraltar Agent for ASP.NET so no coding was necessary to get these results.   Try it and you’ll see that Gibraltar can help you solve problems in the real world you live in, not just in some theoretical abstract place where demos happen.

Check out our recent post on error notification for another example of how we are incorporating customer feedback to help you build rock solid .NET software.

Categories : CEIP, Development
Comments (4)