Using Tableau’s database to build your own Tableau Server usage reports


Tableau provides some good tools to monitor what is happening on each Tableau site on the Tableau Server. Site admins and above have access to these dashboards.

They provide information on who is viewing what dashboards, the number of extracts updating and length of time to update, and information on the subscriptions sent by the server.

However, these aren’t always enough to get a good view into what’s happening on your Tableau server.

All activity on the Tableau server is captured in a postgres database. Using this database opens many options for enhanced server monitoring

Using the Tableau postgres database

Tableau allow querying of the underlying postgres database to create views.

However, until recently, there was very little documentation available to help.

In addition, using the database comes with the ‘do so at your own risk’ warning.

Now things are beginning to change and there are many good sources of information about this database. This includes Tableau themselves providing a data dictionary.

Andre Pandre wrote up the following very useful post about the underlying Tableau postgres database, essentially bringing all the vital information into one place.

The Tableau postgres database provides information on the server performance and what users are doing on the server.

As I often do large scale Tableau dashboard implementation projects, I like to monitor dashboard usage.

Usage statistics are very important to measure the success of these projects.

Monitor Tableau dashboard usage with the postgres database

First connect Tableau Desktop to the Tableau postgres database. To make this connection requires two things:

  1. installing the postgres driver
  2. getting the postgres database password from the server admins

This is what I had to enter to connect to my server, although no guarantee this will also work for your server:

connect to the tableau postgresql database
Connect to the Tableau database

As previously mentioned my main interest is around dashboard usage. To get all of the data I need I connect to the following tables:

join the Tableau postgres tables needed
Join the tables

Build the Tableau Usage Statistics dashboard

Next step is to create your Tableau Usage Statistics report.

This is for you to use so create whatever is most interesting for you.

My version, although more functional than beautiful, does exactly what I need it to do.

It shows me who is using what dashboards, when they’re using them and how often they check them.

This is what it looks like:

an example of a Tableau usage stats dashboard using the postgres database

The postgres database also contains data on Data Extract updates.

In an extract heavy environment there can be many competing demands for Tableau Server resources.

Therefore it is good to monitor what is happening with the scheduled updates.

To see how I improved the default extract monitoring dashboard check this post showing the alterations made to the Tableau Server extract monitoring dashboard.

11 thoughts on “Using Tableau’s database to build your own Tableau Server usage reports”

  1. Hello,

    This is a nice introduction.

    For general use case, you should always use a left join between historical_events and the other hist_* tables.

    In your case this is working because you only want to monitor accesses to workbooks and views. However, these tables provides other information where an inner join won’t work (for example, user login).

  2. Hello, i would like to know the workbook design. if you can share us the copy of the workbook/screenshots of how it is setup, it will be easy to replicate. I am working on a similar task to track user activity.Thanks for your assistance.

    • I can’t share the workbook, it’s the property of my client. You’re welcome to send me a packaged workbook with the data pulled in as the post states.

  3. Hello, I’m late to the party, but I have the need to create these types of reports but are using Tableau Online. Do you have any advice for getting access to the appropriate data structures?

    • Hi Paul, I’m not aware this information is available for Tableau Online, although I can see how it would be useful. If you find it is available please add another comment to this post, I expect many readers would also be interested in this.

  4. Are you still responding to requests for assistance if I send you a packaged workbook?
    I’m having some issues trying to connect the specifics. I have a user who has asked for a dashboard so that they can see who, when and how often their dashboards are accessed.

    Thanks in advance.

    • Sure, send it over, [email protected]. I can’t guarantee I can look immediately as paying clients obviously take priority. Hopefully it’ll a quick and easy one in which case I should be able to get it back to you in good time.

  5. Very easy to understand. Thanks Andrew.
    One question : Can we publish the usage reports for specific users in server ? Or extract it in any static form if access limitation is any factor??

    • Yes, you can put permissions on this report the same as any other. Generally I use permissions on the Project level to restrict access to this, so only a small number of specified users have access. You could always publish it on to the server in a very controlled project and pull down pdfs, if you prefer.


Leave a Comment