It started as a joke. Then it became a pretty good idea.
You see, often times Tableau Server admins get a lot of flak. We *constantly* get comments stating:
- Tableau is slow
- This workbook is slow
- Tableau can’t do this because someone I know said as much
- I like <insert silly dashboard tool here> more because it does <something I can’t remember right now but I’m just trying to sound smart>
- You’re just an analyst so you don’t know how to optimize data
- and more!
Let’s be honest, the above comments can, 99% of the time, be tied to someone who designed something incorrectly but wasn’t aware of the implications of said design. Until now 🙂
And in a natural way that a Slack conversation can allow, the comment dropped: ‘It’s like a dumpster fire’
It goes like this:
- Slow TWBs trigger alerts all the time on our platform (Server admins should know these bottlenecks already)
- We pull log data (yes, you can also pull from Postgres but logs are so rich) for those queries via Logentries
- We parse the log data and convert to the unruly string data into something usable (thank you PowerShell and, specifically, ConvertFrom-String)
- At an interval of our choosing, we drop the results in Slack (only our team) with a mixture of funny GIFs (because levity is a good thing)
- We analyze and reach out to the workbook owners for learning opportunities & improvement
This is the trigger and the cause of much confusion around what Tableau can actually do. You see, if the performance concerns aren’t addressed, every Server admin is going to get the ‘Tableau is slow’ argument. At that point, you’re left defending the platform you set up. But, the question and concerns should all be about what is *causing* Tableau to appear slow.
We address the performance concern with a solid Log Analytics strategy. The above image is one of many examples of alerts we’ll get. This time, we’re going to leverage the Logenties CLI to automatically pull this info out. Yes, automatically.
Here’s what we’ll use:
lecli query -n vizql -q slowwb -f $start -t $end | Out-File -FilePath $workpath\slowwb.txt -Force
The start and end variables are timestamps; we usually do a rolling 24 hours.
If you haven’t explored PowerShell’s ConvertFrom-String cmdlet, you’re missing out. It’s pretty remarkable what it can do with a template file and some string data. And it’s based off of some solid (and profound) research.
After you have (1) pulled the log data and (2) set up your template file, run this:
ConvertFrom-String -InputObject $((gc $workpath\slowwbclean.txt)|Out-String) -TemplateFile $workpath\template_slowwb.txt | select Name,Value
Once you do that, you get a beautiful PowerShell object for which the possibilities are endless (well, as much as you want them to be).
So that string data from above is now easily manageable and prepared for a Slack channel drop.
Here’s what the daily GIF might look like in our Slack channel. No, no one sees this but us and the ‘movement’ of it really forces us to pay attention. We’re (as Server admins) responsible for maintaining and teaching others how to best use the platform. If we ignore it, then the tool (Tableau) gets misused and decision makers may start to see if the grass is greener.
Again, and I can’t stress this enough, levity is a good thing. I can’t tell you how many times I’ve seen C-level people view workbooks that take 3+ minutes to load. Three minutes of awkward silence. That. Scares. Me.
So we monitor and when it gets bad and we’re being questioned about the slowness, we need to laugh. That’s healthy and I can’t be convinced otherwise. If you’re intentions are wrong, you’re not being human.
That’s it! Pretty easy, right? So what else can we do with this?
Well, here are a few ideas, based off of the magic of GIFs.
And remember, be responsible and kind. There are too many rude people on this planet. One more isn’t a good thing.
(1) Slow extracts become:
(2) Slow login times on Apache become:
(3) Large Server downloads become: