Monitoring Sitefinity Websites with Pingdom

Pingdom is a service that's suited for Sitefinity administrators who wish to remotely monitor and track a website's uptime and performance. Recently, I've been using it to monitor Sitefinity Down Under and thought it would be a good opportunity to share with you some of the things I like about the service. In particular, I'll be writing about Pingdom's check and notification system for monitoring sites.

Pingdom offers different packages to suit your needs. If you're looking to evaluate this service, I'd suggest signing up for its complementary offering, which allows you to monitor 1 website for free. Alternatively, each of its subscriptions start with a 30-day trial period.

Once you have signed up, you will be asked to setup your account and to create a check:

Pingdom: Create New Check

Pingdom: Create New Check

Pingdom features three categories of check:

  • Web
  • Network
  • Email

Network and email checks include those for lower-level network checks like responses from TCP ports and the availability email services such as SMTP.

Web checks include three kinds of HTTP-based checks:

  • HTTP
  • HTTP Custom
  • Transaction Monitor

A HTTP Check is the simpliest one available. It hits a URL/IP and requests the header and static content (i.e. HTML) of the endpoint. It doesn't request any dynamic content like images or scripts.

A HTTP Custom Check hits a predefined endpoint that can execute scripts to determine the status of your site. For Sitefinity-based sites, this can be an endpoint such as an ASP.NET handler or an ASP.NET page. The protocol for a HTTP custom check requires an XML-based payload to be returned by the endpoint:

Pingdom: HTTP Custom Check Settings

Pingdom: HTTP Custom Check Settings

A Transaction Monitor Check is one that executes a series of requests against a URL/IP. For example, you can create a check that requests the homepage of your Sitefinity-based site, logs into the Sitefinity administration section, and then logs out.

A feature of the Transaction Monitor Check that I really like is its ability to provide an IntelliSense-like dialog to construct your instructions on-the-fly:

Pingdom: Create Transaction Monitor Check

Pingdom: Create Transaction Monitor Check

You can easily create checks that conduct a series of instructions against your site. In the example (above), I show how to create one for the Sitefinity adminstration backend. However, it's simple to create a more advanced transaction.

Checks will probe remote URLs/IPs on a periodic basis to see if your site is up, down, or in an "unknown state". You can tweak these settings to trigger notifications when your site is down.

Note: At the time of this writing, Pingdom is currently providing a new service called BeepManager (currently in Beta), which enhances the alert model for Pingdom quite significantly.

In the case of sitefinitydownunder.com, I configured the HTTP check to notify me via email and SMS:

SMS-based notification from Pingdom

SMS-based notification from Pingdom

Last month, we migrated sitefinitydownunder.com from Sitefinity 6.2 to Sitefinity 6.3. We had to take the site offline for a short period of time to perform this upgrade. Notice the 5-minute delay in the SMS-based notification (above) and the email-based (below).

Pingdom: Check Notifications via Email

Pingdom: Check Notifications via Email

In addition to notifications like these, Pingdom provides a series of reports that you can look through to gain insights about your site's uptime:

Pingdom update report for sitefinitydownunder.com

Pingdom update report for sitefinitydownunder.com

Pingdom also features an iPhone app that provides these same reports while you're on the road:

Pingdom on iOS

Pingdom on iOS

In addition to notifying site administrators of downtime, you can also configure Pingdom to create a public status page that will provide your site's visitors with a recent history of your site's uptime performance. You can check out the public status page for sitefinitydownunder.com at the following URL:

http://stats.pingdom.com/j9soofkjsenc

Pingdom provides an excellent service for Sitefinity administrators looking to remotely monitor their sites. In this blog post, I wrote about Pingdom's check and notification system for monitoring sites. Make sure to check it out!

Scott Hanselman at YOW! Brisbane and Brisbane .NET/Azure User Group

Earlier this week, I was fortunate enough to see Scott Hanselman during his visit to Australia. Scott is currently down under as part of the YOW!, one of the better developer conferences we have here in Australia.

Scott Hanselman at YOW! 2013 (Brisbane) Photo credit: https://twitter.com/pbouwer/status/409972933365227520

Scott Hanselman at YOW! 2013 (Brisbane)

Photo credit: https://twitter.com/pbouwer/status/409972933365227520

Scott's a great speaker and his presentations are well worth your time. Before the conference, I quipped on Twitter that his presentations have the potential to expand your mental abilities:

Scott's presentation featured the dynamic duo of web development today:

"Wonder twin powers, activate!" Photo credit: https://twitter.com/mdjnewman/status/409985380234969088

"Wonder twin powers, activate!"

Photo credit: https://twitter.com/mdjnewman/status/409985380234969088

In case you've been living under a rock for the past 3 years, the cloud and browser are eating the world right now.

Scott used a number of analogies that resonated with me during his talk.

For starters, Scott started off by sharing his experience with his attempts to teach an industry veteran of low-level programming the fundamentals of "the Internet". He employed the analogy of the building blocks of a modern operating system to the building blocks of modern web development. (Truth be told, I've done the same in the past. When teaching, I find it's useful to connect the dots with something folks know already.)

Another analogy made by Scott is the idea that a virtual machine is much like a hotel room; it's a temporary place that you're free to trash with the expectation that everything will return to normal upon your return. Here, with the cloud, you can commit apocalyptic-style operations against a virtual machine, all with the experience that the state of the world can be returned to normal. Or, easily replicated to service the business requirements of an organisation. Here, Scott made reference to the door you're find in hotel rooms that join the adjacent room. With sufficient funds, you can have both rooms to scale out, much like with the cloud running on Windows Azure.

I liked this one a lot.

Scott Hanselman at Brisbane Azure/.NET User Groups Photo credit: https://twitter.com/TeamMexia/status/410162647855034368

Scott Hanselman at Brisbane Azure/.NET User Groups

Photo credit: https://twitter.com/TeamMexia/status/410162647855034368

Scott Hanselman at Brisbane Azure/.NET User Groups Photo credit: https://twitter.com/pbouwer/status/410189587651125248

Scott Hanselman at Brisbane Azure/.NET User Groups

Photo credit: https://twitter.com/pbouwer/status/410189587651125248

The following day, Scott delivered another presenation. This time, to the fine folks at the Brisbane Azure User Group and the Brisbane .NET User Group.

Telerik was proud to help sponsor this event. It's rare that we get folks like Scott down here. That's why we felt it was a good event for us to support for the Brisbane community.

Analytics: A Turnkey Solution for Development Teams

Application analytics are one of the most valuable sources of information to a development team because they help measure an application’s usage and runtime performance in a real-world setting. And yet, far too often, development teams choose not to instrument their applications to gather this information. It’s not because they don’t care; rather, it’s often because they lack the means to do so; they are missing the infrastructure that’s necessary to collect, manage, and analyze these analytics in a quick and efficient manner.

That's why EQATEC Application Analytics from Telerik is such a compelling offering. It provides a turnkey solution for development teams looking to take advantage of application analytics.

EQATEC Application Analytics helps you answer questions like:

  • What exceptions are being thrown by your application? When are these exceptions being thrown?
  • What system configurations do your users have?
  • Which application features are the most used? Which features are the least used?
  • Where are your application’s users located?

EQATEC Application Analytics is able to accomplish this task through the integration of a small monitor into the application code.

From there, developers can track feature usage, feature timing, thrown exceptions, and much more. Once the monitor is successfully integrated into the application, the data that’s collected is sent to a cloud-based service and website that analyses this data and generates a set of rich, detailed reports. These reports can be manipulated through filters to provide deeper insights into an application’s usage.

Recently, the team has been extremely busy, building a new, state-of-the-art HTML5-based interface that’s based on Kendo UI, which will be released later this year. In addition, a new SDK is being prepared which will allow you to monitor Icenium applications. This monitor is due to be released next week.

I encourage you to talk to your customers about the power of application analytics and how it can enable you to gain valuable insights into your applications through EQATEC Application Analytics. The service is free to try forever - it will monitor one application with up to 100 installations/users per month for free.

Glimpse for Sitefinity

Recently, I’ve been spending some time exploring the development capabilities of Sitefinity, Telerik’s CMS that’s built on ASP.NET. There’s a lot of features that come out-of-the-box with Sitefinity – features like an integrated security model, a set of customizable modules for news items, blogs, and other content types, a fantastic set of content creation features, and extensible workflows.

It was during a recent development session with Sitefinity that I found myself asking questions about the underlying object model. Sitefinity features a rich set of APIs for everything that’s exposed to you as a developer. The problem I was having was one of discovery; I didn’t know what answers I needed until I knew which questions to ask. In the case of Sitefinity, the APIs were documented but there wasn’t much context for me (as a developer).

Enter Glimpse.

Around the time of my developer explorations into Sitefinity, I was also looking into the extensibility points of Glimpse, a powerful utility for ASP.NET developers. I had used Glimpse a number of times in the past on projects and I was keen to see if I could write a plug-in that would expose the underpinnings of Sitefinity. Over the course of a couple of weeks learning the Glimpse extensibility model and the Sitefinity API, I was successful in building Glimpse for Sitefinity.

Glimpse for Sitefinity.png

Glimpse for Sitefinity is available via NuGet and can be used to output Sitefinity-related diagnostic information for system configuration, data configuration, virtual path settings, workflows, and pages: 

Glimpse.png

Once installed, you'll need to configure web.config with binding redirects for the assemblies I reference: Telerik.Sitefinity, Telerik.Sitefinity.Models, and Telerik.Sitefinity.Utilities. I built Glimpse for Sitefinity against v6.1 so there's a good chance you'll have a different version.

On a side note: I did consider adding binding redirects automatically upon installation of the NuGet package but quickly thought otherwise. It's probably best to have this step be an opt-in process. 

If you encounter any problems getting set up, please let me know. Otherwise, I hope this utility helps you in your Sitefinity development! 

EQATEC Monitoring of Windows Store Apps

EQATEC Application Analytics is the latest product offering from Telerik that provides in-depth app usage stats and issues to developers, as they arise in real-time. It's so powerful that I feel like the character, Whistler from the movie, "Sneakers" when I use it:

Transient

At this point, you might be wondering: What is EQATEC Application Analytics?

In short, it's two things: (1) a small, monitor for tracking things like where your app is used, when your app is used, exceptions that are thrown, features that are used, etc. and (2) a reporting service that collected this data and presents it in a way that's easy to understand:

  The Environment Report shows the user’s hardware and software configurations.

 

The Environment Report shows the user’s hardware and software configurations.

The Installations Report shows the number of new users of your application over time.

The Installations Report shows the number of new users of your application over time.

We currently support 12 different platforms. Last month, we added support for Windows Store apps via a WinRT monitor.

Untitled.png

Getting the WinRT monitor integrated into your Windows Store apps is simple:

In the code (above), the WinRT monitor is integrated into the App object to provide consistent access to the reference across all views, controls, etc. This enables you to track exceptions and features at any point in your application.

The WinRT monitor has also been integrated into event handlers for the app's execution states of resuming and suspending. This is important because of the manner by which WinRT monitor reports back; either on a periodic basis or when monitoring is stopped. When your app is suspended - potentially for the last time - we want to ensure that the WinRT monitor synchronizes its data. This "last call home" can also occur when an unhandled exception is thrown. This is why the WinRT monitor is integrated in the handler for the Application.UnhandledException event. It can be considered a catch-all for any exceptions encountered by the XAML framework. (In Windows 8.1, exceptions from async calls can propagate as an UnhandledException event. This includes your own async code.)

Debugging the WinRT Monitor 

When integrating the WinRT monitor into your app, you can integrate diagnostics through a custom logger via the ILogAnalyticsMonitor  interface:

This logger will route diagnostics through the System.Diagnostics.Debug class.  From there, you can watch these statements via the Output window of Visual Studio or via a simple utility like DebugView.

So, what's next? Two things: 

1) Check out EQATEC Application Analytics for yourself by using the demo credentials we provide.  You'll get a better idea of how our application monitoring works. This should help you appreciate the value it can provide to your organisation.

2) Sign up for a Starter subscription and give it a try. 

Glimpse and Why You Should Care

Glimpse and Why You Should Care.jpg

In the world of web development, there are many roles involved. They include front-end developers, database administrators, testers, framework writers, those folks in DevOps, accessibility folks... the list goes on and on.

One trend I've noticed is for developers to specifically identify as a "front-end web developer". My experience tells me that the world of web development is more than just that. In fact, I find it odd to see developers differentiating themselves on which side of the fence they sit on; those on the front-end and those behind the firewall (or in the cloud).

I bring this up because in order to be a successful web developer, you have to know what is going on in the back-end. Treating the edge of your browser like the Gates of Mordor serves you no good. There's simply too much going on behind-the-scenes that you need to be aware of.

Which brings us to our tools.

Today, web developers have all sorts of tools at their disposal, from integrated tools inside the browser to trace inspectors that allow you to watch what is hitting the wire. At the risk of sounding like a grizzled, old man: these days, the web development kids have it pretty good. Back in when I was cutting my teeth on angle brackets and Java applets, we didn't even have the console object to log to! We had alerts and we loved them, dammit!

Coming back to reality.

As I stated before, in order to be successful as a web developer today, you've got to know what's happening on the server. The problem is that most of our tools still treat the divide between the browser and back-end as a boundary that few should have to cross.

Enter Glimpse.

Glimpse is a tool that bridges the gap between knowing what's happening on the client-side with knowing what's happening on the back-end. It runs inside the context of your browsers. There are no tools to install, only a minor installation and configuration change to your server.

Once installed, Glimpse will run at the bottom of your page. New to Glimpse is a supremely-awesome HUD view that gives you the most important information that developers need when clicking through their web applications:

The supremely-awesome HUD of Glimpse

The supremely-awesome HUD of Glimpse

(Image shamelessly stolen from the Glimpse homepage blog. Sorry, guys!)

For a breakdown of the HUD, make sure to check our Anthony van der Hoorn's post entitled Glimpse Heads-Up Display released. Alternatively, you can watch his presentation from NDC.

I reacted when I first saw the HUD:

Transient

Anyway, there are numerous tabs that ship with Glimpse. One of the cooler ones is the SQL tab which shows you the actual T-SQL statements that execute against your databse.

It's insanely cool.

SQL tab for all your database-y goodness

SQL tab for all your database-y goodness

Glimpse provides boat-loads of information to better understand your server's configuration, HTTP-related "intrinsics" (like what the server actually saw as the request and what it actually sent as the response), and a whole bunch more. It's particularly useful for developers targeting ASP.NET, as it provides diagnostic information into the ASP.NET runtime, including route resolution. This includes insights for ASP.NET MVC too. And, as I stated earlier, if you're doing anything against a database via ADO.NET, Glimpse can offer insights into the T-SQL that's between executed against your database. You can think of it like having SQL Profiler inside your browser.

In short, Glimpse is a must-have diagnostic tool for web developers wanting to learn more about what's happening on the server.

My reaction after installing Glimpse and gaining insights into what's happening on the back-end:

Transient

So, what's next? That's easy. Head to the Glimpse homepage, download the bits via NuGet, and start poking around.

In the meantime, I'll be working on a plugin for Glimpse that I'm working on. More on this later...

What's New in Telerik DevCraft Q2 2013 in 7 Minute

We love shipping at Telerik. Our customers love it too. Here's the response we typically see on "Ship Day":

Transient

Okay. Maybe that's a bit exaggerated. But still, it's always an exciting time for us.

If you're looking for a quick round-the-world tour of everything that new and improved, look no further:

Where to go from here?

We hope you love the latest bits!

TeamPulse R1 2013 (AKA, Awesomesauce Edition)

Awesomesauce.jpg

Last week, we took the wraps off the R1 2013 release of TeamPulse, our agile project management solution for software development teams. This release represents a significant update since - among other things - it features a killer new HTML5-based interface. In short, this was my reaction to seeing this new interface:

at-first-i-was-like.png

For a rundown of the latest & greatest goodness that's been added to TeamPulse, make sure to read Yordan Dimitrov's (excellent) overview: TeamPulse R1 2013 is Here - New Look, New Features.

At a high level, TeamPulse helps you manage requirements and bugs, plan releases and track progress while keeping your team constantly connected.

A big challenge of understanding the how a solution works is getting your hands dirty and/or watching others do that for you (AKA, a demo). The good news is that we provide both with TeamPulse.

To get your hands dirty, you have a two options: get a hosted instance up & running or download the bits to run on-premise. For either option, your starting point is here:

If you're more interested in watching a demo or two, our team has published a number of great videos that summarize the newest features that have been added to our R1 2013 release:

Take a few minutes and go check out TeamPulse. There's a lot of awesomesauce in there. If anything, check out the new digs (i.e. our HTML5 interface). It's a mind-scrambler.

Transient

The New, New Telerik Australia Office

Say hello to Telerik Australia:

Left to right: Cameron Marsland, John Bristowe (me), Andrew Marsland, Vesselin Vassilev

Earlier this week, we moved into our new office in North Sydney:

The New, New Telerik Office in North Sydney

Where are we, you ask? Well, I'll tell you. This is where you'll find the new awesome:

Our new address is 80 Mount Street in North Sydney. We haven't moved that far from our old address.

The space is awesome:

Spacious! And clean... well, for now:

The running joke on our team for the new office:

We didn't have a lot of room in our previous office.