WAN observability with agents running in the cloud
“Do not try this at home!” It’s the all too familiar warning you may have heard way too many times while growing up. Perhaps when watching an Evil Knievel stunt. Or, seeing the antics of Johnny Knoxville and Steve-O on MTV’s Jackass series. (Seriously, do not try any of that at home.)
Instead, try observing the performance of the network between your home Internet connection and another endpoint somewhere else in the world. All you need is a ThousandEyes trial account (unless you already have a subscription) and a Raspberry Pi 4 Model B. Aside from the coolness of trying this at home and getting to see what is going on with your network, you also get the benefit of understanding how ThousandEyes operates. You can see if it is a good fit for you and your team, and even see how to get things going swiftly in a production environment.
First, let us set the stage by describing what ThousandEyes is so good at.
“The network must be down!”
That is another all too familiar term used by many when something is not working. It could very well be the network but is it your (the company) network? Or these days, could it be your home network? The ISP? What if it is the service endpoint that is suffering an outage instead? In today’s increasingly complex technology stacks, there are so many places where things can go sideways.
ThousandEyes strengths are in providing observability in the WAN with agents running in the cloud, on prem, or on your end host (such as your laptop). Collectively, these agents help you find what is, or just as importantly, what is not wrong with the WAN connection. The observability it affords is insight into latency, packet loss, network hops, and BGP routing. To that last point, if you see the network is operating as designed, then you isolated the problem to domains at the edge of the network and used data to focus efforts on solving the right problem. In this instance, the issue is likely the client-server interaction beyond the network’s influence. As such, use your ThousandEyes agent to connect to a webserver (or other endpoint) where DNS lookup, network time in flight, and HTTP page load time is assessed as a real client.
Watch ThousandEyes in action!
Getting started with a Raspberry Pi
It is difficult to ignore the Rasperry Pi 4b you may have sitting at home looking for a purpose in the world. Wait… you do not have a Raspberry Pi? That’s okay. Don’t know what a Raspberry Pi is? That’s okay too. A Raspberry Pi is a highly functional, but low-powered and low-cost single board computer that runs a Linux operating system. More information is available on the Raspberry Pi website.
If you feel like buying one for this, or the many other things you can do with a Raspberry Pi, here is what you will need:
- Raspberry Pi 4b with 4GB of RAM
- 32 GB Micro SD
- 1V / 3.0A DC power supply with USB-C plug
- Wired Ethernet connection
Raspberry Pi’s are available for purchase from many vendors including Amazon. Amazon sells the CanaKit that includes the items above along with a few extra accessories to help you get started. If you already own the extra pieces, such as the USB MicroSD card reader and HDMI cable, then you are better off just buying the board. It’s that flexible.
Now that you have a Raspberry Pi, you can follow the instructions on the Installing an Enterprise Agent on a Raspberry Pi Device page. This includes the steps needed to register the agent in your ThousandEyes account. You will see your Enterprise Agent appear in the dashboard after it is successfully added.
I installed the enterprise agent and added to ThousandEyes – now what?
Great! You are off to a good start! Navigate to Cloud & Enterprise Agents->Test Settings->Add New Test where you can add a new test. One example is observing an endpoint such as https://developer.cisco.com which you can add to the URL field under Basic Configuration, setting the interval to 5 minutes, and selecting your agent by selecting “Enterprise,” and then selecting your newly added agent.
Click “Create New Test” and you’re set to begin observing traffic from your home network out to the endpoint you configured for your new test. You can also consider adding a HTTP server or page load test against your company’s website. (Hey, why not be the rock star that alerts support to connectivity issues!)
Connectivity issue in action
One of Cisco’s Distinguished Engineers, Jason Davis, observed the recent Facebook, Instagram, and WhatsApp outage as it was happening. If fact he knew about it well before it was reported by the media. The screenshot below illustrates the information about the network incident as it occurred.
OK, I tried this at home – How do I try this at work?
It is worth noting that the Enterprise Agent running on a Raspberry Pi only applies to a very small set of use cases. I am shining a light on it only to help us developers who are working from home, and might want to try something different while putting a Raspberry Pi to good use.
A much more likely scenario would involve using the Cloud Agents or the Enterprise Agents installed on a networking appliance or in Docker on a virtual machine running on-prem or in a public cloud. I tried both. The screenshot below illustrates the two Enterprise Agents I installed. The first is the Raspberry Pi running from my humble home office setup and the other running in Docker on a virtual machine in our lab. Just below the Agent Status map on the dashboard, you can see the two tests I configured to observe traffic from my home network to developer.cisco.com, and from the lab to google.com. You can do the same and I am curious to see your results.
That is scratching the surface on what ThousandEyes does so well. To learn more, the Getting Started with ThousandEyes page is a great resource to see what else you can observe.
Stay tuned for the part 2 of this series where we will look at extracting data from the ThousandEyes REST API and visualize it on your Grafana Dashboard.
We’d love to hear what you think. Ask a question or leave a comment below.
And stay connected with Cisco DevNet on social!
Visit the new Developer Video Channel