Loupe Agent: Production-Safe Logging
At its core, Loupe has a lightweight assembly that runs in the background of your programs logging the data you need to troubleshoot bugs and bottlenecks in your .NET applications. In addition to recording log messages as you’d expect from any logging framework, Loupe also records unhandled exceptions, performance metrics, and important details about the execution environment of your programs.
Most importantly, the Loupe Agent is designed to be safe in production:
- Messages are logged asynchronously on low-priority threads so Loupe doesn’t increase user response time.
- Our most important design principle for Loupe Agent is “first, do no harm.” Special logic handles internal errors and overflow conditions so that Loupe will never cause a crash.
- Data is efficiently stored in a compressed binary format so you get rich data without storage bloat.
- Logs are buffered to the local file system to ensure reliable data collection with no dependency on network or database connectivity.
- Logs are automatically pruned within configurable limits for age, size, and free space so Loupe will never run your system out of disk.
Loupe Desktop: Deep Analysis of Log Files
But what good is all that data without a tool to analyze it? Are you sick of pawing through massive log files that are hard to find, hard to read, hard to dig around in, and sometimes hard even to open without running out of memory?
Loupe Desktop puts all the rich data Loupe collects at your fingertips. It gives you a birds-eye view across all your log files and helps you quickly zoom in on the critical details you need.
… at a price you’ll love – FREE!
And did I mention that both Loupe Desktop and Loupe Agent are completely free? Yes, free as in beer! Previously, we sold this tool under the name Gibraltar Analyst at a price of $495 per user. But we are so confident in the added value offered by Loupe Server that we’ve decided to make the other parts of Loupe completely free to the entire .NET community.
And this is not crippled freemium software! Loupe Desktop does everything that Gibraltar Analyst did – and then some. We’ve even upgraded the user interface and added a few cool new features like the ability to view logs in real-time.
Use Loupe Desktop on all your .NET desktop apps, web apps and services to:
- Organize and find logs by application, date, computer and other criteria.
- Easily analyze logs containing millions of messages.
- Filter and highlight messages by class or category.
- View the source code associated with each message.
- See exception call stacks and other details associated with individual messages.
- Graph memory and processor usage along with dozens of other Windows performance counters automatically collected by Loupe.
- Chart the frequency and duration of method calls.
- Extend Loupe Desktop with your own custom controls and commands.
- Connect directly to your application and view a live stream of log messages in real-time.
Loupe Server: Practical, Streamlined Error Management
While Loupe Desktop is an invaluable tool for .NET programmers to test and support their applications, Loupe Server multiplies the value of the data Loupe collects by providing a central repository for logs and a powerful web UI to address the needs of IT Operations, Tech Leads, Product Managers, Test Leads, QA Engineers, and Customer Support Engineers as well as Programmers.
The diagram above shows how Loupe Server builds on the free Loupe Desktop and Loupe Agent to create a complete solution for managing logs and more effectively responding to errors detected in your applications. Note that Loupe Server is offerred both as a subscription (SaaS) and as a licensed product you can self-host on your own server. The core functionality of Loupe Server is available in both versions:
Smart Data Aggregation and Filtering
Loupe Server includes a web service that interacts with Loupe Agent to automatically gather logs from all the computers running your applications. You can configure Loupe to automatically associate each log with the proper environment, release type and promotion level so that rules for notifications and other workflow events can be precisely targeted. For example, Loupe rules might automatically create issue tickets only when errors occur on production systems or occurs in released versions of an application.
Loupe supports a wide range of events so that notifications can be finely targeted to ensure that the right people are notified when something significant happens without spamming anyone with nuisance notifications.
Live Web Dashboard
The Loupe Server web UI includes dynamic dashboards allowing you to monitor significant events across your entire .NET application portfolio.
Full Text Search
As Loupe Server merges logs into its central repository each log is analyzed and indexed to enable full-text search and efficient data visualization of aggregated results.
The reason we describe Loupe as providing “practical, streamlined error management” is because it includes important features lacking in many other systems such as the ability to:
- De-dupe multiple error occurrences within a single application session.
- Aggregate error occurrences across multiple computers and sessions.
- Identify and group clusters of distinct errors that are multiple symptoms of the same root cause.
- Suppress nuisance errors.
- Suppress superfluous notifications related to users encountering errors for known bugs that are fixed in later versions of an application.
- Automatically reopen a closed issue if it reoccurs in a later version of an application in which it was declared to have been fixed.
These features are combined with displays allowing you to quickly understand the context of each error (frequency, breadth of systems affected, characteristics of those systems, etc). Loupe also provides details about each error and its precipitating events. This all works together to provide you a practical error management tool that eliminates the busy work and tedium you may have experienced in failed past attempts at continuously monitoring and managing errors in your software.
Built-In Issue Management
Some customers find that Loupe is detecting an enormous number of errors that were previously going unnoticed. They face a challenge of picking and choosing the most important errors to address first without getting overwhelmed by the sheer number of distinct error events being recorded. For this reason, Loupe makes a distinction between “issues” and “events”. All errors and warnings reported by your programs are recorded as events, and through a combination of our triage process and rules you can configure, you decide which ones you wish to promote as issues. Issues can be assigned and optionally related with tickets in external defect tracking systems. Loupe also allows notes and workarounds to be associated with issues to enable more effective team collaboration and customer support.
Self-Hosted Loupe Server
If you choose to self-host Loupe Server the following additional features are also available:
Integration with External Reporting Systems
Loupe uses SQL Server as the backing store for the data it extracts from each log it analyzes. This database is available to you for integration with other systems or reporting tools such as Crystal Reports.
Loupe Server supports an API allowing you to write add-ins that execute within Loupe Server as part of the analysis pipeline for each log received. Through add-ins you can integrate Loupe with other systems. For example, a custom add-in might extract logged data such as a license key number then use that data to update the associated customer record in your CRM.
Real-Time Remote Log Viewing
A challenge many developers face is highly restricted access to the production servers running the applications they support. Loupe Server can allow developers to stream live feeds of log data from remote applications directly to their desktops. Here’s a scenario illustrating how live logging fits into the overall support solution Loupe provides:
- An error occurs in a website that Bob supports.
- Loupe notices that the error occurred on a production system and executes rules Bob configured to immediately create an issue and notify him.
- Bob receives the email notification which includes a description of the error and a link to the Loupe issue with additional details.
- Clicking the link, Bob views the Loupe data and concludes that this issue requires immediate attention.
- Bob reviews the precipitating events in Loupe Desktop and formulates a theory as to the root cause.
- Bob then connects to the live log stream for the troubled server and confirms his theory by monitoring the log stream in real-time as he issues a web request.
- Bob updates the issue in Loupe with a workaround for the benefit of IT Operations and Customer Support.
- Bob then makes the code change, tests it locally and closes the Loupe issue indicating the version number of the website (not yet deployed) that includes his fix.