Never the one to be fully satisfied with the out-of-the-box admin reporting for Tableau Server, I have a new addition to the custom admin reporting that I previously made available here. The new view give you a different take on disk monitoring that helps you see the hours of the day where disk capacity is low and simultaneously see what was going on with your backgrounder for extract jobs.
Large extracts can be a hog on disk resources so I wanted to see what what the patterns were. Each blue line represents a day where the line fades as you go further back in time. So the darkest blue line is today. Each worker is displayed as a small multiple.
The view for concurrent backgrounder jobs was a little more challenging since I needed a snapshot table, which doesn't exist. So I got creative and dynamically generated one. First I needed a table with 5 minute timestamp intervals. I generated one with the code below. Then I used a theta join to the backgrounder table to create the snapshot view. A theta join uses greater than and less than operators to make joins between tables. Essentially what this does is replicate the backgrounder record for each five minute interval that is within the start and complete range.
In the backgrounder snapshot view, the small lines are specific days. The thick grey line is a moving average of averages to help highlight the overall pattern. If you'd like to add this to your set of admin views, you can grab the workbook here. As usual, this is published with no promise of support. To use it, you just need to point it at your Tableau Server Postgres database.
1 2 3 4 5 6 7 | SELECT DISTINCT (CAST('1900-01-01 00:00:00' AS TIMESTAMP) + (CAST(CAST(TRUNC(((EXTRACT(EPOCH FROM created_at) / ( 60 * 60 * 24) + (365 * 70 + 17)) * 288)) AS BIGINT) AS DOUBLE PRECISION) / 288) * INTERVAL '1 DAY') at time zone 'UTC' at time zone 'EST5EDT' as FiveMinET ,(CAST('1900-01-01 00:00:00' AS TIMESTAMP) + (CAST(CAST(TRUNC(((EXTRACT(EPOCH FROM created_at) / ( 60 * 60 * 24) + (365 * 70 + 17)) * 288)) AS BIGINT) AS DOUBLE PRECISION) / 288) * INTERVAL '1 DAY') as FiveMin FROM historical_events WHERE created_at >= current_timestamp - interval '7 days' |