2 of 2 people found this helpful
Great questions.. I'll do my best to give an overview here, but let me know if you have any clarifying questions or want additional details. Some of this will be review for you but I want to provide a full explanation in case it helps other who may have similar questions.
TabMon does not pull data from Repository at all. There are currently two core types of counters TabMon samples:
1. PerfMon counters exposed by the host Windows OS. Based on your credentials from your GitHub post, I'm guessing you are very familiar with these For the sake of performance, connections to these counters are established at TabMon startup, with the exception of the counters labelled "ephemeral" in Counters.config which are queried every polling cycle. This "ephemeral" process concept is useful for monitoring certain types of processes which are frequently spawned & destroyed during the lifetime of the application.
2. MBean counters exposed by certain Tableau Server processes. These are application-specific counters that vary from version to version. This feature has to be manually enabled on Tableau Server using the instructions in Enable the JMX Ports. Once enabled, each process exposes it's own Java Management Extensions port. You can connect to these manually using a tool like Java Mission Control or JConsole to see what's there. At startup, TabMon looks for these RMI ports on each configured host by scanning the configured JMX port ranges specified in Counters.config. These port ranges always start from a base port and have one port per process, so for example if you have 4 VizqlServer processes on your host and the base VizqlServer JMX port is 9400, then JMX will be running on ports 9400, 9401, 9402, and 9403.
Each polling cycle, TabMon loops through and does the following for each configured host (from TabMon.config).
1. Sample all persistent PerfMon counters that were discovered at service startup
2. Query for the presence of any "ephemeral" PerfMon counters, and sample each one that is found.
3. Query for the configured JMX counters on each JMX port that was discovered at service startup, and sample each one that is found.
Once polling each host is complete, TabMon will then drop any expired data from it's results database (in accordance with the data purge threshold in TabMon.config) and write out all of the new data samples.
By changing the polling frequency from 1 minute to 5 minutes, you will indeed lose some granularity. It is up to you to figure out the trade-off between fine-grained data and data volume for your use case. If you're analyzing data captured from a short window of time, then a shorter polling interval (like 30 seconds) is probably more useful; if you intend to leave TabMon running for weeks or months for historic tracking and capacity planning, a slower polling cycle (such as 5 minutes) is probably adequate.
Hope that helps,
Hey Justin. I forget, for the time grain that you have, does it do a sum or avg?
TabMon is just grabbing and persisting the raw value at the time of polling. For the PerfMon counters this translates to whatever the value happened to be when the sample was taken. The JMX counters vary a bit; many are cumulative values over the lifetime of the process, which prevents data loss at larger polling intervals but means you have to diff the value against the previous sample to use them.
All of the aggregation is done at the workbook level in the TabMon sample workbook.. for PerfMon, in most cases we average the samples over time. For the JMX counters that are cumulative from the start of the process, we are using table calcs to compute the difference from the last sample (which is why occasionally a value will dip into the negative if its underlying process is recycled).
One other question, somewhat related: It looks like TabMon is using GMT when logging metrics rather than the time zone defined on the server. Is this true and can this be changed? Our servers are running in US Mountain time (GMT – 6:00)
Joseph A. Bossle III, “Jody”
Sr. Technical Consultant / Global Information Technology
Baxter International Inc.
One Baxter Parkway / Deerfield, Illinois 60015
T 224.270.3563 / M 630.650.9413
image001.png 5.3 KB