At Tableau, our mission is to help people see and understand data, including data from Tableau services—a process we call “using Tableau on Tableau.” In the spirit of self-service, we are proud to announce the release of TabMon, our open source cluster monitor for Tableau Server.

You can use TabMon to monitor physical (CPU, RAM), network, and hard-disk usage. You can track cache-hit ratio, request latency, active sessions, and much more.

TabMon records system health and application metrics out of the box. It collects built-in metrics like Windows Perfmon, Java Health, and Java Mbean (JMX) counters on Tableau Server machines across a network. It displays the data in a clean, unified structure, making it easy to visualize the data in Tableau Desktop.

Selected counters collected by TabMon

TabMon gives you full control over which metrics to collect and which machines to monitor, no scripting or coding required. All you need to know is the machine and the metric name. TabMon can run both remotely and independently of your cluster. You can monitor, aggregate, and analyze the health of your cluster(s) from any computer on your network with almost no added load to your production machines.

TabMon is community-supported, and we are releasing the full source code under the MIT open source license. We hope you'll add your own contributions to this tool. We are excited to see where you take it.

Download TabMon, read our installation guide, and visit the Tableau Server Admin Community page to join the discussion. You can also download the source on the TabMon GitHub page. Our Sample Workbooks can also be found on our Github page.

You might also be interested in...


This is awesome! Been waiting for something like this for ages!

Hi Michael ,Its really awesome tool for the Tableau Community.
But I would like to have clarification here.If we have More JMX counters ,will that affect the performance by any chance.

Hi Michael Chen, I just tried to add second host into TabMon.Config file but dashboard only show one machine, how to show all machines? (I even installed TabMon on all machines)

It works only one machine, please advise, thanks

It can't be started and I got the following error:

2016-05-03 12:43:09,094 [5] INFO Topshelf.Runtime.Windows.WindowsServiceHost - [Topshelf] Started
2016-05-03 12:43:09,094 [6] INFO TabMon.Sampler.CounterSampler - Polling..
2016-05-03 12:43:09,109 [6] FATAL Topshelf.Runtime.Windows.WindowsServiceHost - The service threw an unhandled exception
System.ArgumentException: Cannot set column 'machine'. The value violates the MaxLength limit of this column.
at System.Data.DataColumn.CheckMaxLength(DataRow dr)
at System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args, DataRow eRow, DataRowAction eAction, Boolean fireEvent)
at System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Boolean suppressEnsurePropertyChanged, Int32 position, Boolean fireEvent, Exception& deferredException)
at System.Data.DataTable.InsertRow(DataRow row, Int64 proposedID, Int32 pos, Boolean fireEvent)
at TabMon.Sampler.CounterSampler.SampleAll()
at TabMon.TabMonAgent.Poll(Object stateInfo)
at System.Threading.TimerQueueTimer.CallCallbackInContext(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()
at System.Threading.TimerQueue.AppDomainTimerCallback()

someone said "The reason that column is limited to 16 is because the max NETBIOS computer name length in Windows is 15 characters."
I'd like to know how to fix it?

Add new comment

Subscribe to our blog