Loupe now analyzes logs to track the unique users that are generating activity across sessions and even applications. Depending on the type of application Loupe will look for a session-wide user or even detect the unique end-users that are causing the log messages to be generated. Each user associated with an event (such as a warning, error, or critical log message) is recorded so it's easy to see all of the problems a user may have recently experienced. Loupe also tracks the number of users for each application which is frequently more useful than the number of computers or sessions to measure the usage of an application.
Additional displays have been added to Search and the Usage area to show the users of your application without having to find a session or computer first. For more information see User Tracking - Introduction.
Often you'll have a set of computers - like your development systems - that you want Loupe to largely ignore. If these computers report an error you don't want to be notified or have it clog up the review lists or recent event history. If while debugging a problem they produce an error over and over you don't want that to distort the statistics. Now you can mark a promotion level or environment as being suppressed which will hide those sessions from the general lists of sessions and prevent them from being analyzed.
The Loupe AddIn functionality has been replaced with an extended and updated Loupe Extensions feature which is designed to fully integrate with server repositories. Loupe Desktop now supports loading extensions for each repository it is connected to with distinct configuration options for each. Extensions can intercept a range of events on the server for enhanced integration with external systems. For more information see Loupe Extensions - Introduction.
Sometimes log messages include values in their captions that prevent them from being aggregated effectively, like a timestamp, URL, or file path. Now you can configure Loupe to redact those unique parts out of the message prior to aggregating them. This prevents Loupe from creating a large number of unique Application Events to be reviewed. You can apply these redaction rules after the fact based on a log event and the system will recalculate and merge them in the background as well.
We also added prompting to the Application Event and Log Event screens when we see a unique event to suggest that it might be a candidate for redaction to make this feature easier to find.
Previously the general site search in the upper hand corner would only look at issues and events. We've extended this search to find application users and computers along side the previous search. When you find a computer or application user you can easily jump from their detail to sessions, events, and issues they've encountered.
You can find a session on the Loupe Server by searching for the user name, computer name, or domain name at the same time or by filtering down the list of sessions by a range of criteria. There are several pre-configured session views in the Usage area to make it easy to find interesting sessions and then drill into them to understand what's happening in your environment.
A new default home page has been created that brings much more of the application into a single screen summary that dynamically updates as your data changes. This page includes data-aware assistance prompts that help you get the most from Loupe. This page is designed to help new team members get started with Loupe and improve the initial implementation experience.
The Loupe Server now has a display of each Session including its session details (very similar to how they are displayed in Loupe Desktop) as well as the Log Events and any issues related to that session. From the session view you can also delete a session from the server (permanently removing it and all related event information and detailed log data) or just drop the detailed log data, if it's present on the server. Custom session properties are also displayed.
The Loupe Server now has a display of each Computer including details on its configuration, what applications it has run, sessions, recent events, and a change history to help with troubleshooting problems. You can edit a computer record to associate it with a specific promotion level or environment as well. This new view makes it easy to look across all the information available for a single computer and see if any reported problem is due to an application error or possibly a recent configuration change on that computer.
Previously Loupe Server only had an edit area for an application version. It has now been extended so that wherever a version shows in the UI it links through to a display about that version which includes information on known issues in that version and adoption information. Adoption data shows what computers have yet to upgrade to that version, are using that version, or are no longer using that version (because they have moved on to a later version).
Loupe now supports a batch resolution feature for Issues and a batch ignore feature for Application Events. These let you quickly handle large number of items for older versions or older timeframes without having to individually select them. For example, you can ignore all events based on a version or last occurrence date or resolve all issues that haven't happened since a previous release.
Links can be added to issues pointing to external sites using a template system designed to make it easy to manually link issues with external defect tracking and support systems. The same capability is available in the Extension API so extensions can automatically link issues with defects, support cases, or other external items.
The default user to get issues assigned to them for each application can be set to speed up manual issue creation. We've added a configurable default environment and promotion level to make it easy for customers that want to manually configure a small number of exceptions instead of configuring environment manually.
We've completely rewritten the web UI, replacing the collection of different JavaScript frameworks that were available when the original UI was implemented with AnguarJS. This eliminated many seams in the user experience, improves back-button behavior, and opened the door to improving the responsiveness of the UI. We also re-implemented the background queries and changed the database schema to make common operations much faster.
The result is that the web UI performs well, even with large repositories or slower network connections.
We've restructured how the server queues work to separate long-running activities (like analyzing sessions and processing add ins) from fast, performance critical tasks such as generating notifications for new log events and opening issues. This addresses the problem where if the server gets behind processing sessions notifications are held up until the backlog can be resolved. In general this means users aren't going to notice surge loads causing problems with responsiveness.
The full application help file content is published to the server and linked with the server's user interface so it isn't necessary to go either to Loupe Desktop or to Gibraltar Software's site to access the help.
The server now recognizes the version numbers for various Windows 10 installations and will display them as such instead of using their raw version number.
The preferred way of deploying Loupe Desktop is to install it from your server. This ensures you get exactly the version that your server is designed for. Loupe Desktop will then automatically update from your server so if a new version is deployed there each connected client will be prompted to upgrade to that version. Once connected to a server, users will not be prompted to upgrade to new releases directly from Gibraltar Software.
When connected with a Server running 4.0 or later, instead of synchronizing down a copy of the session data that's independent of the server it now runs natively against the server repository. This new integration means the latest sessions are available quickly. Additionally:
When connected with a Server running version 4.0 or later, Loupe Desktop will show the histogram of session data for large sessions first and let the user select a time frame to load before downloading any data from the server. This data is then downloaded using a new parallel processor that makes much better use of faster network connections. This way even a session with millions of messages and gigabytes of data can be opened in moments.
When you select a session in a server repository view you can now see a list of all of the unique errors and warnings in the session detail area without opening the session. Double-clicking one of these Log Events displays all of its information in a window and provides a link to take you to the Loupe Server's web UI so you can see all of the related Application Event and Issue information.
Configuration data can now be loaded from an arbitrary file instead of having to be loaded from the application configuration file. This feature has been requested by teams to make it easier to isolate the logging and diagnostic configuration in a single file they can deploy across their applications. File configuration works with the other configuration modes to be loaded first, then application configuration overrides, then API overrides during the Initializing event.
The current approach of subscribing to the Initializing event and then specifying configuration options is difficult to use in some environments, notably PowerShell. The Loupe Agent now supports providing a populated configuration object to StartSession to act as the baseline configuration. This works with the other configuration modes allowing the coded configuration to be overridden by the application configuration file, then the API during the Initializing event.
The Agent can now record additional information for application users to provide a better display and analysis than is possible with just a user name. By subscribing to the ResolveApplicationUser Event an application can specify several additional fields including a display caption, email address, organization, and role. This information is automatically merged on the server to provide a complete picture of the application user.
In addition to the traditional approach of specifying session criteria for inclusion in packages and for sending to the server it's now possible to provide a simple predicate to do your own custom selection. This makes it easy to use any criteria that can be determined from the session summary information. This is supported with the packager class as well as Log.SendSessions.
Previously, Loupe Server assumed the computer that submitted a session is the computer that recorded it. With the new computer displays in Loupe 4.0 this would create problems for cases where customers copied session data files to a different computer and then uploaded them. Now a unique Id is assigned to each computer the first time it starts a log file which is embedded in the session data file.
Loupe 4.0 is generally backwards compatible with 3.0 with the following notes: