Archive for Release
Gibraltar 3.0 Released
Posted by: | CommentsWe’re thrilled to announce the release of Gibraltar 3.0! It’s been three betas and a release candidate, along with a number of private betas but finally we’re ready to release the hounds. You can jump strait in and download it now, or read on for what’s new in 3.0.
What’s new since Gibraltar 2.5? A lot:
- Super Sized Session Handling: Edge to edge we’ve focused on long running processes, really large log files, and all the implications of this.
- Real-time Log Viewing: You can see what’s happening within Windows services & web sites in real time, faster than anything else on the market!
- Hub Support for SQL Server: You can store index data for the Hub in SQL Server for better scalability and reporting options.
- Dramatically Smaller Files: We’ve deeply dug into our log file compression and found ways to reduce files by 70%.
- Analyze Session Summaries: The built-in pivot table and chart in Analyst can slice & dice session summary information to spot all kinds of trends across all of your data.
- Categorize Sessions by Environment and Promotion Level: Go beyond Product & Application to separate data based on where it was run or the status of the release.
- Hub Synchronization Options: Save hard disk space on your workstation by downloading sessions on demand.
- NuGet Packages: You’ll find all of the various agents for Gibraltar are now available on NuGet, and it’s a great way to stay current. Any package published under “Gibraltar Software” is official and supported.
- Mono Support: You can now use the Gibraltar Agent with recent versions of Mono.
- 64-bit Analyst: Analyst can now take advantage of all of the memory you can find. We’ve made a number of changes to reduce how much it uses just the same.
That’s the highlights, but there are a hundred changes in the detail. The big thing they add up to is we’ve aggressively tackled issues that prevented data from getting from Agent to Analyst. We’ve combed through our CEIP data to make sure we could deliver on the promise that it all Just Works.
You can read about more of the details in What’s New – Gibraltar 3.0 (from our documentation).
Upgrade Options
If you have active maintenance on your Gibraltar licenses then you’re free and clear, just download it and go. Since it’s a major release it’ll activate, so you’ll want to install it when you’ve got Internet access.
If you don’t have active maintenance, contact us for the right upgrade pricing. Depending on when your maintenance expired you’ll need to purchase the right version upgrade and then you can re-enroll in our upgrade assurance program to get the next 12 months of updates for free. You’ll want that, because we have a lot up our sleeve!
What’s Next?
We’ve bee eagerly waiting to ship 3.0 so we could dig into the next development cycle. We expect to ship Gibraltar 3.5 later this year and another update in the winter. Each of these will build on Gibraltar 3.0 and are designed to help you get a lot more from the data you’re already collecting. So, it’s a great time to upgrade to 3.0!
Gibraltar 3.0 RC – Ready to Rock
Posted by: | CommentsWe’ve shipped Gibraltar 3.0 RC1, the release candidate build of Gibraltar 3.0. This is our last planned build prior to the Release To Web (RTW). Compared to the last beta we’ve incorporated a range of defect fixes from our CEIP data as well as performance improvements just like you’d expect. Beyond that, we’ve incorporated several improvements that our beta community felt were critical enough to warrant making changes late in the development cycle.
To download the latest build, we recommend you go to the Version History page and pick the top version under Other Version Information. As with previous betas, you can use this with any valid Gibraltar license key (trial or unrestricted). You will need current maintenance on your unrestricted key. If your maintenance has expired, contact us and we’ll get you set up to try out this latest version and discuss your upgrade options.
Working Fluidly with Sessions
Talking with the beta community we’ve seen that people are able to really take advantage of the scalability improvements in 3.0, in particular opening dramatically larger session files and keeping much larger repositories. This created a few new feature requests we’ve managed to slide in for the release candidate:
- Independent Session Display: With larger sessions and repositories it was understandable but annoying when UI updates would pause the entire application. We’ve separated out the user interface threads so each session viewer and the repository viewer have their own, keeping them from interfering with your work.
- Selective Session Download: You can pick individual session(s) to download data for immediately and they’ll copy down right away without blocking you. This is particularly useful if you want to download a large session to complete analysis on it or view later but don’t want to open it right now.
- Parallel Download: When you have Analyst set to download all session data automatically it used to first download summaries then full data. If you had a lot of data that meant you weren’t seeing the latest session headers until it completed downloading the backlog of data. We’ve made these two operations independent and done other optimizations so you can see the latest session information right away, no matter how long it’s been since you ran Analyst.
We also found out from beta users that in the real world they would frequently try to open sessions that didn’t have any local data and the way the system acted (displaying a modal message box) was not very friendly. As part of making the session display independent we’ve improved how it checks and downloads data to work in the background so it doesn’t interrupt your workflow. Instead, you’ll see a warning in the status bar
Fortunately, we’ve also found a number of cases where session data should have been available but wasn’t. We’ve gone through the CEIP data from beta users as well as our own test cases and weeded these cases out. When the session data is available, you’ll see the progress of it opening the session in the status bar instead.
Live View Changes
Earlier betas had two ways of displaying live sessions – there was a tab on the repository viewer and you could double-click a session to open it into a live view like a local session. Displaying the live data in the tab had several problematic side effects – it was easy to open many data streams unintentionally by cycling through the session list with the live data tab active and there was no way to let Analyst know to close them. Additionally, it caused the available space for the list of sessions to be very small.
Talking with a few users that are really taking advantage of live view we determined it was better to provide more space for the list of sessions and make it more explicit when the full stream is opened and closed. With the latest build we’ve changed it so a new live stream is established when the live session view is opened and it’s shut down (all the way back to the original agent) when the live session view is closed.
Faster, Scalable Analysis
With it being easier and easier to get larger sessions through Gibraltar we’ve had to make upgrades across the board. One place we’ve improved for 3.0 is how Analysis is performed. Previously, it would load all of the available data in memory and analyze it together. Conceptually this was the simplest and fastest approach, but it has two problems:
- Sessions have to fit into RAM: If you had a large enough session, it might not actually fit into available memory when loaded all at once.
- Memory was Thrashed: Even when you have a lot of memory it takes real work and can make your application unresponsive if it’s being allocated and freed by the Gigabyte.
Notifications are Back
Previous 3.0 builds didn’t support Hub notifications, either editing them or processing them. This functionality is back and better than ever in 3.0 thanks to our new session analysis approach that minimizes duplicate analysis when used with a 3.0 Agent.
If you’ve never used notifications, or were discouraged previously because they weren’t fast enough you should give them another look. With the combined changes in Agent and Hub the time between when something happens and when you get the email is a lot shorter, even under load.
As before, it’s still smart enough to group problems together so you won’t get spammed with email yet it focuses on getting events out as quickly as it can. You can choose to get HTML-formatted messages (like the one shown on the right) or plain text.
Ready to Use with the Hub Service
We’ve upgrade our public hub service (hub.gibraltarsoftware.com) to a 3.0-compatible build so you can freely use it with the Release Candidate. We’d encourage you to give it a try because the difference, particularly for web applications and services, is amazing. We’ve been internally using 3.0 for some time- tracking pretty closely to our nightly builds. Some of our largest customers have been using it live in production since Beta 2.
We’re confident enough in this build that we’re providing full production support for it – if you use it in production, we’ll provide you with the same support we do for a full release. So go ahead and use it!
From Here to RTW
What’s left before Release to Web (RTW)? Not much. We’re down to:
- Documentation Upgrades: We’re going through the documentation looking for any content that might be out of date and extending it to cover new features.
- Packager Improvements: To help with .NET 4.0-only deployments we’re creating a new .NET 4.0-only packager. This will have a different file name so it doesn’t conflict with the .NET 2.0 packager.
Other than that, it’s really up to you – let us know your feedback so we can be sure we’re on the mark and ready to go.
Gibraltar 3.0 New Feature Dive – Super sized Sessions
Posted by: | CommentsA major challenge customers have had with Gibraltar 2.0 is working with long running and large sessions. This stems from the early on design decision to target smart client applications for the first releases of Gibraltar. From this decision we made a series of assumptions – how large sessions would be, how people would want to count and interpret them, when they would get sent in, etc. For example, early beta versions we assumed by default that you only wanted to keep 50MB of total log data and each session would be around 5MB. Looking back, this just isn’t how things turned out at all.
Once you start using Gibraltar with server applications – like web sites or even windows services then a few things happen:
- Long Life: Gibraltar equates a session lifetime to the application domain it runs in. For windows services this could be months, possibly even years. For web sites it’s typically a day or less.
- Session Size: It’s hard to imagine in a single user smart client recording more than 50MB of information. Our analysis of log files we receive and our customers use indicates this is a pretty fair assumption. For a busy corporate line of business web application you can easily generate 500MB of log data each day.
- Submitting Sessions: By default, Gibraltar waits for a session to end before sending in the data. This works well with end-user applications but doesn’t match up with operating your own web sites or services. What use is it to find out a month later your Windows Service was having a problem? You could trigger sending data manually and even when an error happened, but if your session got to large this could be dangerous because we merged together all of the data first to send it.
The biggest problems people have with using Gibraltar 2.x in these situations is:
- If you log a lot of data, you need a lot of memory and processor to submit the data to be able to view it – about five times as much as the log data. To add insult to injury, every time it submitted the data it pushed it all to the server, and that got completely re-analyzed for issues then copied down to each Analyst. Very inefficient.
- You had to add code to your application to explicitly push the session to the server to see any of the data. And when you did you could run into the first problem.
No question about it, this sucks and it had to stop.
Editor’s Note: Not all of the optimizations discussed below have shipped in Gibraltar 3.0 Beta 2.
Smaller Data Files
Our original compression approach was based on a sampling of files between 5 and 50MB. It turns out that the files we really should worry about were in the 50 to 500MB range. Saving 25% on a 5MB file isn’t likely to impress anyone. Cutting 100MB off a log file makes a real difference. We’ve substantially revised how we compress files and will get an average of 65% reduction in size for typical files. That’s right – they’re now 1/3rd as big. This is all done with no impact on the throughput of the log system because of the asynchronous, queued approach Gibraltar uses to record data.
We also reduced the memory it takes in the Agent to perform this compression. Previously it was possible to use up to your maximum log file size in RAM (in extreme cases) while logging. To avoid the problem of merging fragments (which uses even more memory) some customers ran into this when they dramatically upped their log file sizes. Now the compression uses a fixed buffer size measured in KB to ensure it’s both efficient and predictable.
These smaller files have another advantage: We previously zipped files before they were sent to the hub to save network time. This would get us about a 40% reduction in file size but took time, processor, and disk space. With the new scheme there’s no advantage to doing this – the files would actually get slightly larger. So we can skip this step which saves time on both the client and server.
We’ve also added a feature to let you understand why your data files are as big as they are. In Analyst, you can open a session and then click File Stats on the Session Details tab.
Here’s the analysis we get for one of our Gibraltar Hubs we’re using for testing. It logged about 700,000 messages in a 24 hour period.
You can see that the average size of each log message is 57 bytes. Now that’s good stuff from a compression standpoint. The process also recorded a fair number of metrics and performance counters. There are metrics for each data operation, web service call, etc. and these add up to a total of about 350,000 individual samples at an average size of 31 bytes. All of the performance counter samples – 35,000 of them – came in at an average of 10 bytes. All in, the file was just over 50MB.
From this information you can get a good feel for what’s driving your log file size. Now, you may never care – but when you get into logging millions of messages and millions of metrics then it’s good to have around.
Incremental Data Files
For Gibraltar 3.0 we’ve changed it so that the individual file fragments Gibraltar stores data into (each representing a period of time) are never merged together – all the way down to Analyst. When data needs to be made available Gibraltar has always rolled over the current log file (called a session fragment) and started a new one. Previously these fragments all had to be merged together before the data could be sent anywhere off the computer. Now they’re each managed individually. Thanks to this change, each time your application wants to send data to the Hub only the fragments that haven’t already been sent are processed. Likewise when this data needs to be analyzed for issues or sent down to clients that want to view the details it’s just the new information.
We’ve also gone through the processes that send data – whether it’s to the Hub server, email, or files – and worked to eliminate unnecessary file copies that were being done previously in an overabundance of copies (these get expensive if you have a 300MB file) and minimize the memory required. The bottom line is that you can safely send session data at any time – regardless of how much data you’ve logged or how long your application’s been running.
Let Your Application Run Forever
Making the session files smaller and keeping them in fragments helps with large sessions, but when you have a really long application there are a few other things that kick into play. First, you want to make sure you can discard older log data off the computer (to keep down local disk space) even while the application was still running. In many cases, Gibraltar 2.x would end up throwing away the start of the session and all you’d have is the last 150MB of data (if you used the default limits). For 3.0, session fragments can be sent automatically as soon as the log file rolls over for any reason. The default limits of 50MB and one day mean that for each Windows Service you’d at least get a fragment every day – which would be sent up to the server and then pruned locally. You can still trigger sending data more often from within the application like you used to and it’ll work great.
The Hub server works better with this as well – it will analyze each fragment without having to load up information it’s previously worked through. This means you get steady updates and the memory required on the server is dramatically reduced. We’ve had customers with Gibraltar 2.x that had servers perpetually behind analyzing sessions because by the time they analyzed a large file they received another copy of it with just a modest amount of new information. Now this is a non-issue because the server can load just the new data and check it.
Of Course, You’d Like to see All of That
The final problem area for Gibraltar with very large sessions was viewing them in Analyst. Historically you could load up a session with between 1.2 and 2 million messages. More than that and it’d fail with an out of memory exception. This was because Gibraltar Analyst was a 32-bit only application. We’ve rewritten our graphing system to use the DevExpress XtraCharts like we use for Charting and that means we’re good to go for 64-bit in Analyst. If you have 8GB of RAM, you can use all of it for session data if you want. In practice this means you’re still limited to a session with perhaps 10-15 million messages. We’re going to work on that in a future release to really achieve our goal of infinite logging.
This is all fine and good, but it’s still missing something… The ability to handle the server-on-fire-right-now scenario we’ve all experienced at some time in our career. For the story on that, stay tuned for our next deep dive!
After a long time baking we’re happy to announce that Gibraltar 3.0 Beta 2 is available for immediate download. While this is still a beta release, we’ve run it through more testing than normal so it’d be ready for you to try out. This is just a quick overview of what’s new in Beta 2; stay tuned for drill in articles on the high points.
What’s it Mean?
Our focus with Gibraltar 3.0 is:
- Scalability: Big sessions, long running sessions, large data sets, lots of sessions… We want to up the limits in every direction.
- Easy Adoption: We want every team member from the project managers down to the junior developers to be able to get into Gibraltar and be comfortable.
- Servers and Data Centers: Where Gibraltar 2.0 was focused on applications shipped out to hundreds or thousands of computers, Gibraltar 3.0 adds features specifically for monitoring just a few servers in your own data center.
Scalability
When we originally designed Gibraltar we had to pick some target limits for the number of log messages in a session and the number of sessions in a repository. Since our initial target was smart clients deployed to hundreds of systems (this was the customer base that we’d been working with for years that motivated creating the product in the first place) we went back and looked at the size and scale of what had been done in the past. We applied some scale up factors and came up with a target of 500,000 log messages per session and 2000 sessions in a repository.
This turned out to be laughably low.
We now know that people will cheerfully log millions of messages (biggest we’ve seen: 55 million messages in one session that was just 12 hours of data) and will gather tens of thousands of sessions per day. We’ve nibbled around the edges of this problem before – we added paging to the log viewer which let us get from around 1 million to about 2 million messages that still could be displayed.
For 3.0 we’ve made fundamental changes to how data is moved and tracked to make sure we’re ready for large, long-running sessions and lots of them. Still, this is more of a journey than a destination – if there’s one thing we’ve learned it’s that people will push scale until the infrastructure pushes back. We’re working hard to move those limits well out so you can get the most from Gibraltar.
Making it Easy
We’ve done some usability testing with Gibraltar and the results weren’t what we wanted to hear. The feedback we got was that we’d designed a tool for experts. Not expert developers, but experts in logging and performance monitoring. In one usability session we saw a junior team member be visibly startled by the information overload presented by Analyst. The developer closed it and didn’t want to go in again – too much information to find the detail they needed to work on. Now, we haven’t had a chance to incorporate this research into 3.0 Beta 2 but we have work already underway for the 3.0 release that is squarely aimed at making sure everyone on the team can get value out of Gibraltar. Stay tuned and wait for Beta 3 for a preview of these changes.
Servers and Data Centers
To help out with monitoring your own server applications we’ve added new session categorization features for tracking the environment and promotion level of each session so you can view information by where it was gathered (environment) or the stage in your development process (promotion level). You don’t have to use these at all, but when you want them they’re ready. We’ve enabled long running sessions like windows services to work much better with Gibraltar and added a real time log viewing capability specifically for internal server scenarios so you can see the contents of your web server logs as things are happening, all without affecting your application’s performance.
What’s Changed?
Internally we’ve made a few big changes:
- The Agent works just off files and directories without an index: We’ve dropped the index database approach Gibraltar 2.0 used to instead rely on scanning directories for their contents. This is much more resilient in the face of manipulating files and directories and eliminates the problem of upgrading the index database schema.
- The file format is now much smaller: We’ve extensively optimized our serialization format based on sampling hundreds of thousands of real-world data files. In many cases, log files will be around 30% the size they would be under Gibraltar 2.0. The benefits are particularly visible on large log files.
- Sessions are no longer merged in the Agent: Previously if a session was recorded into multiple files, these files were merged together in the agent before the data could be sent anywhere. This could take 5x as much memory as the file fragments in question, a real problem for long running applications. Now these individual fragments are handled individually all the way down to Analyst.
- There is a new live streaming protocol: In addition to writing data to a file it can now be sent across the wire via TCP/IP to be viewed in real time.
- Gibraltar Hub can now use SQL Server or VistaDB for its database: For larger customers, or situations where you want to do your own reporting and analysis, you can elect to have the Hub use SQL Server for tracking session data instead of VistaDB, which is included by default.
- Analyst is now 64-bit ready: We reworked the graphing in Analyst so we could make the whole application run in 64-bit, helping with large data sets.
Try it Out Today
You can download 3.0 Beta 2 right from our site. To install it you’ll need to have a valid Gibraltar license that’s up to date with upgrade assurance. If you’ve let your upgrade assurance lapse and want to give 3.0 a try, contact us to discuss your options.
If you aren’t a Gibraltar customer, you can get a trial key and then use that to try out 3.0 as well.
We’re planning on one more round of beta for 3.0 after this so there is still time for your feedback to make a difference. Don’t be shy, tell us where we’ve missed the mark by emailing support or post your comments on the forums.






