the open source diagnostics platform of the web

Post navigation

It was just over six years ago that Anthony and I first released Glimpse. Since then it’s been a wild ride where we’ve learned a lot, seen a lot and met a lot of great people.

Nearly two years ago Anthony and I joined Microsoft. It was a very exciting time to join, particularly where web development is concerned. Since we’ve been here, Microsoft shipped a new and evergreen browser in Edge. ASP.NET has been completely reimagined into a leaner, more modular, cross-platform and cloud optimized framework/runtime. Azure is growing at a breakneck pace while continuing to support and embrace the open source technologies that so much of the web community thrives on. We really couldn’t be more proud of the work that’s happening here.

In addition, web development paradigms have changed and matured a lot since the early days of Glimpse. Front-end engineering is now a full-fledged practice, and systems leveraging microservices built in cross-platform, polyglot environments are the norm.

Amid all these changes, innovation and excitement, we began to ask ourselves “What does Glimpse, and web diagnostics in general, look like in this new world?” Part of the reason you haven’t heard much from us recently is because we’ve purposefully stepped back to explore how we’d answer this question. However, we’re now at a point where we feel ready to begin sharing more about what we’ve been doing.

In our explorations, we’ve see a lot of Node.js usage for “API glue layers”, along with several challenges with server-side diagnostics in those use cases. We believe we can help solve those problems. As such, our first public announcement is the release of an experiment called “Project Glimpse: Node Edition”. In Project Glimpse: Node Edition we’ve tried to maintain the original spirit of Glimpse as you know it, but we’ve reimagined it as something entirely new that more closely aligns with current web development trends and solves the problems we’ve seen.

Project Glimpse: Node Edition

Project Glimpse: Node Edition is now live on npm. We can’t wait for you to try it and to hear your feedback. We hope that this experiment will quickly become an indispensable tool for you. As is the nature of an experiment, we expect that we still have a lot to learn and will be pivoting quickly and often based on your feedback, which you can submit at the Glimpse/Home repo.

You may be wondering, “What about Glimpse for .NET?” While we don’t have any announcements to make, I am happy to say that we have been making progress on that front as well. Anthony and I have been quite involved with Diagnostic Source and Activity since their inception, and we see them as cornerstones for a future Glimpse for .NET version. We’ve got a way to go with our Glimpse for Node experiment, but you can rest assured that no matter what happens with it, Microsoft will ship world class diagnostics and debugging tooling for .NET Core.

We appreciate all the support you’ve given us over the years, and are looking forward to our next chapters together making functional, reliable and performant web applications easier to build.

The following is a guest post from Beckylin Orooji, detailing a cool community built Glimpse plugin that exposes Application Insight’s telemetry. You can find out more about it on Beckylin’s post on the Azure Blog.

Glimpse is a great tool for profiling and debugging your web applications during development. Application Insights is a tool for diagnosing issues and monitoring performance in live production. Because developers need both a great tool during development and a great tool in production, an integration of these products was created.

What is Application Insights?

Application Insights monitors your web application in production for performance, availability, and usage. It helps you understand what your users do with your app, diagnose failed requests and exceptions, and find performance issues in browser, web server or backend services.

What does the integration provide?

Application Insights items are now accessible alongside the other data collected by Glimpse. One place where Application Insights data is shown is in the Glimpse timeline tab. Application Insights automatically collects client and server-side telemetry about requests, outbound calls to dependencies such as http calls, as well as business metrics.

The new Application Insights tab shows all the Application Insights telemetry from the client and server that you will be gathering after your application is deployed to production. Looking at the Application Insights tab, you can see exactly what data will be collected for specific pages as you browse through your application. Doing this during development enables you to ensure you have implemented your telemetry collection in the way you intended. After you release your application, this telemetry will be your source of business and diagnostic insights.

Try it now

Installing the Glimpse Application Insights Web package will turn on Application Insights for your application and enable a basic set of Glimpse packages. This package includes dependencies to other packages you will need for web applications making this a simple solution for everyone. If you have not onboarded to Application Insights, you should use this package. Glimpse Application Insights Web will support .NET web applications without any additional work from you.

Glimpse v2 is a major evolution of the platform. We’re extremely proud of what we’ve accomplished thus far, and we think you’ll like what you see. You’ll find lots of new bells and whistles that make Glimpse better than it ever has been, but I’d like to outline four key improvements to the Glimpse v2 experience.

Curated UI

Glimpse has always been about getting the diagnostics you need, when and where you need them. However, one of the most overwhelming pieces of feedback we have received over the years is that beyond the Heads-Up-Display, those diagnostics were not necessarily well presented and were sometimes difficult to parse.

In v2 we’ve strived to solve these issues by curating disparate data points from across multiple tabs and pulling them together into one cohesive story. We’ve also allowed diagnostics to become the real star, freeing them from the cramped space you’re used to seeing them in, and giving them the full window treatment they deserve; which coincidently makes switching between requests much easier than it was in v1. Take a look for yourself:

Cross Platform

Glimpse v2 is built completely upon ASP.NET 5 API’s, concepts and the CoreCLR. This means that Glimpse v2 automatically inherits all of the benefits of ASP.NET 5, including its ability to run cross platform on Windows, Linux and OSX.

Now everywhere you can run your site, you’ll be able to use Glimpse v2 to debug and diagnose it as well.

Full Stack

Since its inception, Glimpse has been known as “F12 tools for your server”. But as you’ll no doubt know, web development doesn’t happen only on the server.

With this in mind, Glimpse v2 has begun to leverage new browser diagnostic API’s to tell a more complete, full stack story. You’ll now be able to glean insight into some of the processing happening in the browser, right in the context of your server side diagnostics, for many request.

Production Ready

Glimpse really shines during development time. Its ease of installation and use is what’s made Glimpse v1 a favorite among web developers for years. Unfortunately, in many situations Glimpse did not work well once your application was pushed to production.

In Glimpse v2, this all changes. A much larger class of applications will now be able to use Glimpse in production environments to debug and diagnose problems in real time.

In the coming weeks we’ll devote more of this blog to covering the ins and outs of these four key features, as well as other changes, and cover exactly what they mean for you.

βeta Beware

Of course, it wouldn’t be responsible for me to cover all of the greatness that is Glimpse v2 without also reviewing its current limitations and known issues.

First of all, what we’re releasing today is an early beta build meant for gathering feedback from users and extension authors. It may have a few rough edges, the user interface is a work in progress and it certainly isn’t feature complete. Look for more stable builds, improved UX and the re-introduction of beloved features such as Timeline and the Trace tab in the future.

It’s also worth noting that Glimpse v2 Beta1 only runs on ASP.NET 5. While using the latest and greatest does have its own perks, for existing applications you’ll need to stick with Glimpse v1. That also means that Glimpse v1 extensions are incompatible with Glimpse v2. In the future we’re going to bridge this gap so that everyone, including .NET 4.5 and .NET 4.0 users will be able to benefit from the new features of Glimpse v2.

Next Steps

Over the next several weeks, keep an eye on this blog and our GitHub repository where we’ll continue to improve Glimpse v2, support and update along with ASP.NET 5 and march towards a full, final 2.0 release.

The community around Glimpse is continuing to swell as each release includes the effort of more and more people. This release is comprised almost entirely of contributions from outside the “founders team” of Anthony and I (who have been focusing much of our effort on the forthcoming release of version 2.0).

Caching Tab
The big feature in this release is the new Cache tab, which provides insight into the state of the application’s usage of data caching via the HttpRuntime.Cache object.

Async Patch
Additionally we have release a patch fix for a small number of users which have experienced problems with the Async support we released in 1.8.0 and crossing AppDomain boundaries. This has come up for users when they navigate to a page that contain a ReportViewer control, or using VS2010/12 Dev Web Server (instead of IIS Express or full IIS), or a couple of other edge cases.

A full fix for this will come in v2 but if you run into an exception that reads something similar to:

Type 'System.Web.HttpContextWrapper' in assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable.

Our last meeting was quite successful, so we’re really hoping to continue with that momentum. We’re looking to have even more content (the last Town Hall was a bit of a “party”), and we are working through an agenda now. If there is something you’d like to share, see or hear about, please add a comment to this post.

The meeting will be Tuesday, April 16th at 3:00 PM (UTC-5:00). We’ll be on Google Hangout again, so bring along your microphone and web cam if you can! (Or just text chat with us…)

All of this activity is really great for Glimpse and the Glimpse community, but it can make finding the right Glimpse components for your project a bit daunting. (Although the NuGet team has recently improved the search syntax to help this problem along, it still isn’t enough.)

So today, standing on the shoulders of the giants over at MyGet.org, we are releasing the Glimpse Extension Gallery and Extension Gallery Feed.

The Glimpse Extension Gallery is simply a listing of available Glimpse extension on our site. It’s still early days with the gallery, but it should get better and better in the coming months.

What I’m really excited about is the Extension Gallery Feed which allows users to get a special package source of just Glimpse extensions, which looks like this:

Whats more, we’ve made adding this package source to Visual Studio a breeze by leveraging the Package Source Discovery specification on getGlimpse.com. This specification allows you to easily add our feed to Visual Studio by issuing the following two commands from the Package Manager Console:

We finally did it! Glimpse 1.0 is out and things are working relatively smoothly. It took a little longer than anticipated, but we are generally pleased and happy with ourselves.

To celebrate, on Tuesday March 12th, at 3:30 PM (UTC-5:00), the Glimpse team is going to be throwing a (slightly late) virtual release party.

What does a virtual release party entail, you may ask? Well, I’ll probably at least buy myself a cupcake. You can do that too, but I find that eating cupcakes alone can be a little sad – so lets do it together.

I’ll tweet out a link to a Google Hangout a few minutes before 3:30 (is there really no way to schedule these things?!?) and we can celebrate together.Thanks to Cecil, I now know how to schedule a Google Hangout and here’s the direct link the the party. Of course, it won’t all be self congratulations and high-fives, we’ll demo new features of Glimpse, answer any questions you may have and discuss what’s on the road map for vNext.

We want this to be the first in a series of monthly town hall meetings which will provide an outlet for plugin authors to demonstrate what they have built, discuss challenges with the Glimpse platform and gather user feedback. We’ll experiment with times and technologies until we find the right fit to include the most number of users.