Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Checking Website Health From Different Parts of the World

DZone's Guide to

Checking Website Health From Different Parts of the World

All this can be done for free, which is why I recommend anyone who is responsible for, or interested in the health of a particular service, to add these monitors.

· Performance Zone
Free Resource

New Relic is a company that offers many different tools and is perhaps best known for its application performance monitoring (APM). At least that’s what I know it best for since we often use this tool when we do performance tests at Abstracta to get useful information about how our infrastructure behaves under tests. Besides the APM, it has another tool that I want to cover in this post, New Relic Synthetics, which you can use with a free or paid New Relic account. It’s useful for adding monitors for services or websites (anything accessible by an HTTP URL) and setting up email notifications for when said monitors fail.

How to Set Up Your Monitor in New Relic Synthetics

After creating an account in New Relic, one has access to the different tools that it provides. In particular, we will look at how to get started with Synthetics. First, we must create a monitor, taking us to this page:

crear-monitor-ping-en-Synthetics-New-Relic-290x300-min

There are several different types of monitors available. For example, there is one called Ping, which tries to access the given URL and makes a validation of some text in the response. You can also implement an automated test that is a little more complex, but for that one, you’ll need a paid account.

Here there is documentation from the New Relic site, but to create the monitor, all you need to do is put a name, the URL for what you want to validate, and some text that you want to check that appears in the response page. You’ll also have to enter your email to receive notifications, the places in the world from where you want it to access your URL, and how often. In the following image, you can see one of the monitors that I have created recently:

monitor settings in new relic synthetics

So, with this setup, I have it so that it will try to access the URL (this blog) every 10 minutes, from five different places in the world, and if there is a failure, I’ll get a notification by email.

Benefits of New Relic Synthetics

Besides the email notifications, all results and response times are recorded, so I will be able to access the historical information later (in the free version, it is saved for a week), as shown in the following image:

stats-de-newrelic-synthetics-min

In addition, I have historical information about the failures, can list the worst response times by location in the world, and I can do a little deeper analysis of how the network behaves in each case:

network timings image

You can see the list of monitors and some relevant information from the home page of Synthetics:

image of list of monitors in new relic synthetics

When there is a problem somewhere that is of interest to me, I know that I will find out about it 10 minutes after it occurs, max! In addition, I have historical information on response times from different parts of the world. All this can be done for free, which is why I recommend anyone who is responsible for, or interested in the health of a particular service, to add these monitors and rest assured that you will find out when there is a problem.

To show you even more of the reporting, here is another example of some crashes that the TestingUy site saw over the last week that New Relic notified me of. This is how Synthetics presented the information regarding that failure:

caídas-de-testinguy-Synthetics-New-Relic-min

And the details about one of those crashes:
fallo-sitio-testinguy-Synthetics-New-Relic-min

Topics:
new relic ,performance ,tutorial ,synthetic monitoring

Published at DZone with permission of Federico Toledo, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}