Prerequisites
Before installing Gibraltar, you need to have .NET 2.0 SP1 or later installed.
If .NET 2.0 is installed without SP1 or SP2 installation will proceed but the application
will fail to start.
Installation Notes
Uninstall any previous version of Gibraltar before installing a new version.
On computers with Visual Studio installed the installation will pause for a while
at 99% while it updates the help content. Please do not interrupt this process
which, depending on the speed of your computer and how many other products have
integrated with Visual Studio Help, may take from one to ten minutes.
New Features in This Release
Log Viewing Enhancements
- Millisecond Time: You can switch the Timestamp column to show milliseconds, enabling you to see the precise timing of events in
the log.
- Time span Indicator: Whenever more than one log message is selected, the total time span of the current selection is displayed
in the upper right of the toolbar. This enables you to quickly determine the gap in milliseconds between two messages.
Metric Charting Enhancements
Charting of Event Metrics was substantially improved in this release based on end user feedback. New features include:
- Detailed Data Display: The details of each group of data in the chart including all of the individual samples that were brought
together to create that detail is instantly available in a grid at the bottom of the chart.
- Sample Suppression: You can suppress individual samples or whole groups of samples quickly to adjust the analysis.
- Multiple Metric Support: You can display multiple metrics with multiple definitions on the same chart.
- Top Value Synchronization: Previously if the Top records feature was enabled it was evaluated independently for each series on
the chart. Now the top is applied to the first series and only those matching groups are used in the secondary series.
- Large Numbers of Groups: Previously the entire set of groups for a chart were fit onto the screen at the same time, even if that
meant they were displayed on top of each other. Now the chart will scroll to respect a minimum size for each group.
- Long Text Values: When grouping or displaying very long text values (like long SQL queries) the chart would previously fail to
display if the text couldn't be fit onto the screen. Now it will be intelligently truncated in each display mode to ensure the chart can display, and
the full value is always available through drilling into the group.
- Show and Hide Elements: You can control whether many of the chart elements such as titles, labels, and legend are
displayed.
- Percentile Summarization: A new method of summarizing numerical values has been added to calculate the 95th percentile peak
value. This is particularly useful for examining duration and performance information.
Agent Log Message Alert Event
The central Log object now has a Message Alert event that will be raised every time a warning, error, or critical message is recorded. This event has
a number of safety features such as:
- Asynchronous: The event is raised on a background thread that is not part of the logging path, ensuring that time spent handling
the event will not slow down logging or affect other threads.
- Batching: When a burst of messages are recorded that qualify they will typically be raised together to allow more efficient
processing
- Throttling: A minimum delay between events can be easily specified to ensure the event isn't raised too frequently, particularly
in error cascade scenarios. Messages are batched up until the next time the event can be raised.
- Hang Protection: If the event handler never returns the Agent will continue to process messages and not queue them, allowing
them to be released from memory.
- Loop Protection: Messages that are recorded by your event handler will not cause additional events to be raised. This
prevents notification loops where an event handler records an error during notification which subsequently causes the message alert notification to be
raised again.
The Message Alert event is particularly useful for automatically triggering immediate data transmission in the case of an error or implementing your own
error notification mechanism. The full detail of each log message is available in the event.
Recording Detailed Memory Counters
The Agent now supports an option for gathering an extended set of .NET-specific performance counters designed to assist in tracking down memory
leaks. The set of counters included is:
- .NET CLR Memory/# GC Handles
- .NET CLR Memory/# Bytes in all Heaps
- .NET CLR Memory/# Gen 0 Collections
- .NET CLR Memory/# Gen 1 Collections
- .NET CLR Memory/# Gen 2 Collections
- .NET CLR Memory/Large Object Heap Size
- .NET CLR Memory/Gen 0 heap size
- .NET CLR Memory/Gen 1 heap size
- .NET CLR Memory/Gen 2 heap size
- .NET CLR Memory/% Time in GC
The option is not enabled by default. To enable it, set the EnableMemoryPerformance option to true.
Agent Disk Counters
Previously, the Agent recorded PhysicalDisk performance counters because
these are active by default back to Windows 2000. Based on user requests
and other research the Agent now records the same counters under
LogicalDisk. This works better in server scenarios that use certain RAID
controllers. Additionally, the following counters have been added:
- % Free Disk Space
- Avg. Disk sec/Transfer
- Disk Reads/sec
- Disk Writes/sec
- Free Megabytes
Agent Integration with Hub
The Agent now handles the scenario where a Hub has expired (either the Gibraltar Hub Service or an evaluation license for a Private Hub) and will
efficiently treat it as unavailable, falling back to alternate transfer methods as appropriate.
PostSharp Enhancements
The Gibraltar Agent for PostSharp has been enhanced to provide the option to suppress logging object
parameters that aren't strings. Previously these would always be converted to a string, meaning that if they overrode ToString() to provided enhanced
information that would all be recorded into the session data, often causing a significant performance issue. This behavior is now optional and can be
disabled by setting the LogParameterDetails Property to
false. Additionally, when recording an object without details it is now recorded as the type name and object hash code, allowing the exact object to be
identified through multiple calls without requiring the overhead of converting its state to a string.
Defects Fixed In This Release
This is the list of issues fixed since the last release version (2.1.0.588)
Agent
- Fixed: Agent ignores message provided to StartSession(string)
method, substituting the default message instead.
- Fixed: Agent can be slow to shut down if performance counters are
being recorded during shutdown.
- Fixed: Browsing for a location to save a package to in the
Packager Dialog can change the Save File Dialog path for the rest of the
application.
- Fixed: Agent treated all threads in the same application domain
with the same Thread Id as the same thread which isn't necessarily true in
processes that create and destroy threads over time.
- Fixed: Agent PackageSendEventArgs doesn't inherit from EventArgs
and should.
- Fixed: Agent doesn't record disk performance counters for
physical disks with multiple mounted volumes.
- Fixed: Packager Dialog and Live Viewer don't respect programmatic configuration.
- Fixed: Agent for ASP.NET causes Aspnet_compiler to hang.
Analyst
- Fixed: Displaying Top Count doesn't flow to secondary axis
correctly.
- Fixed: Metric Chart doesn't include the top value when
auto-ranging.
- Fixed: Metric Chart fails to display when any X axis label
exceeds the chart display area.
- Fixed: Metric Grid fails to filter on Timestamp.
- Fixed: Metric Grid doesn't respect decimal settings on grouping
summarization display.
- Fixed: Log Messages Grid doesn't correctly support filtering
by less than or greater than a Timestamp.
- Fixed: Log Message Detail shows incorrect ordinal of log message
in window title.
- Fixed: Double-Clicking a metric chart, grid, or graph causes the
pane to float which in turn causes errors in the session viewer.
- Fixed: Repository file size is incorrect when over 2GB.
- Fixed: Repository doesn't correctly clean up partially recorded
sessions, causing display errors if the partial record is accessed.
- Fixed: Changing between hub accounts doesn't remove server
subscription.
- Fixed: Repository Viewer doesn't group computers, products, or
applications that vary only by case together when populating filter combo
boxes.
- Fixed: Analyst reports fatal error when first run in certain
cultures like Russian (ru-RU).
- Fixed: User-defined folders in the user repository can disappear
after restarting Analyst despite being still in the repository.
- Fixed: Application Error Details Report doesn't format problem
percentage as percentage.
- Fixed: Product Health Analysis report doesn't format Time Used in
HH:MM:SS format, leaving it in raw (total seconds) form.
- Fixed: Report footers don't reflect licensed user status and
owner caption.
- Fixed: Analyst shows component trial warning dialog with some features.
Compatibility Notes
Because of the API
changes, the Assembly Version for the Gibraltar Agent and related
assemblies is now 2.1.1.0. If you have references that are set to a
specific version they will need to be updated to use this new assembly and
then recompiled. Any strong named assembly that references the
Gibraltar Agent or related assemblies will also have to be
recompiled.