Monitoring your Tableau Server using Pulseway
Tableau Server is one of those beautiful server applications that you just install, occasionally update, but for the most part just let it run and do its thing. Trouble is, its thing is making it super simple for people in your company with data to share their insight and develop understanding of how the company’s performing. So people tend to start using it quite a lot and begin to rely on its 100% uptime.
So when the unforeseen does happen what can you do to be a step ahead of those emails complaining of problems?
Detecting Underlying Issues
At The Information Lab our consulting team run a dedicated helpdesk for our clients which means we get good visibility on what tends to happen to a Tableau Server. More often than not an issue soon to become a big problem will manifest itself in server application processes shutting down and spinning back up again. As far as your end users are concerned they may only notice a temporary error message when viewing a dashboard which is bypassed by refreshing the view.
We’ve also seen servers that are becoming overloaded with background processes, such as extract refreshes, over utilising available CPU resource and blocking other processes such as the data server from spinning up entirely.
The common theme of these issues is a red light appearing in the admin’s maintenance view.
So Why External Monitoring?
Why would you want to use external monitoring, especially when you’ve configured Tableau Server to email you when it’s found health issues?
Well the server health issue email system is really only valid for repository and gateway monitoring and unless in a high availability configuration is itself a single point of failure. For instance should the Background Tasks process fail as in the example above it will not be immediately obvious to server admins or end users as no warning email will be sent and end users won’t notice any impact until their data extracts don’t refresh as expected.
What does Pulseway Give You?
Like most third party monitoring tools Pulseway is delivered with a server agent which will monitor key metrics such as CPU, RAM and disk usage as well as the state of server processes. The difficulty with these monitoring tools is configuring them to properly monitor the Tableau Server application as Tableau Server components don’t surface themselves as Windows services, although once active they are listed as a server process. Even if we can monitor processes however that will only show if the process is up, not necessarily that it’s working as expected.
Before we look at how to configure Pulseway more fully let’s take a look at what the application gives you in terms of a failure of Background Tasks as above:
These screenshots are taken from Pulseway’s Android application and alert the user of a specific application failure from within the Tableau Server environment.
In order to allow Pulseway, or any third party monitoring tool, to monitor Tableau Server’s applications we need an endpoint to monitor which is specifically related to the specific application.
Hidden in the underlying html of the Tableau Server maintenance view are just that, a URL for every process in the server application stack. The method may vary for each browser but in Chrome you can find the application URLs by right clicking on the maintenance view status light and selecting ‘Inspect Element’. The underlying html will look something like:
The two lines of IMG tags represent the two status lights of the VizQL processes. The interesting part of the code is ‘/admin/status_vqlweb/0/9100’. Appending that to the end of the Tableau Server URL (e.g. tableau.company.com/admin/status_vqlweb/0/9100) will result in either a brief message stating “vizql is alive” or a 503 error message if the process is down.
The monitoring URLs are fairly standard but may be specific to the configuration of the Tableau Server. It seems that each URL as the following structure:
/admin/status_[process name]/[cluster machine number]/[application port]
In Pulseway these URLs can be added to the website monitoring tool to periodically check each application process:
A Word of Warning
The monitoring method described above is not documented or approved of by Tableau Software.
The method has been checked for server version 8.2.0 and above although it’s still expected to work on earlier versions.
No guarantee of future support is made although should the method change we will make sure to post updated information.
Want to Know More About Monitoring?
Coming soon is a blog post on integrating New Relic to monitor the end user experience of Tableau Server.