• Stars
    star
    105
  • Rank 328,196 (Top 7 %)
  • Language
  • Created over 9 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Load generator for Tableau Server

Latest Release

  • Release 2022.2.3 is the latest TabJolt release.
  • Please consider using the 2022.2.x releases in order to ensure you are running with all available bug fixes and new features, including no log4j or Spring vulnerabilities.

Supportability & Help

Tabjolt is officially provided As-Is to the community as defined here. However, there are lots of knowledgeable people in the Tableau community, and asking questions at the Tableau Community Forums is a great path forward. In addition, questions can be posted in the Tableau #DataDev Slack workspace either in #general or #tabjolt-feedback.

Quick Start Guide

Please note
  • Tabjolt runs only on Windows.
  • Tabjolt can test both Windows and Linux Tableau Servers. However, this guide is geared towards a Windows Tableau Server installation.
  • Online resources can provide guidance for Linux Tableau Server specific portions of configuration and execution.This guide will be updated with Linux Tableau Server testing details in the near future.

Here are step-by-step instructions for getting a quick start on TabJolt:

Step 1: Installation and setup

Pre-requisites

Install Java

  • To ensure that JDK is present and installed correctly, run this command on the command prompt
    java -version
    The command should return the JDK version. Example:
    openjdk version "11.0.11" 2021-04-20
    OpenJDK Runtime Environment Microsoft-22268 (build 11.0.11+9)
    OpenJDK 64-Bit Server VM Microsoft-22268 (build 11.0.11+9, mixed mode)
  • If you encounter an error that says 'java' is not recognized as an internal or external command, please see the troubleshooting steps.
  • Tabjolt supports only x64 bit openJDK version 11 or above. If needed, please download it from here. Β 

Install PostgreSQL

PostgreSQL must be installed for Tabjolt to be able to save its results.

  • Download PostgreSQL 14 or above from here. Install all the components including the Command Line Tools.

  • While installing Postgres, ensure that:

    • Either you use the root postgres user or your user has the rights to create and drop DB and tables.

    • The password for the postgres user (or your own user) and the port number matches with what is specified in <Tabjolt Install Folder>\config\perftestconfig.yaml
      Β 

      Example:

      Attribute Value
      DBUserName postgres
      DBPassword tabjoltresults
      DBServerName localhost
      DBPort 5432
      DBName perfresults
  • To verify that PostgreSQL was installed correctly, run command postgres -V from the command prompt. The command should return the postgres version
    postgres (PostgreSQL) 14.2

  • If it returns the following error:
    'postgres' is not recognized as an internal or external command, operable program or batch file.,
    Set the environment variable PATH to the bin folder of your postgres installation.
    Example:
    set PATH=%PATH%;C:\Program Files\PostgreSQL\14\bin Β  Β 

Verify Tableau Server connectivity

  • On the machine where Tabjolt is going to run, ensure that you can log in to both the Tableau server (Example: http://<myServerPortalURL>) and the TSM UI (Example: https://<myServerTSMPortalURL>:8850) from your browser using their respective credentials.
  • Please ensure that the server under test is in a good state by assuring that the TSM UI portal homepage states - Tableau Server is running - on the top right. Also ensure that all services on the page show a green check as shown below:

Tableau Server Status Β 

Configure Tableau Server

  • In order to collect JMX counters from the Tableau server, ensure that JMX is enabled on the server. To confirm run the following on the Tableau Server machine:
    tsm configuration get -k service.jmx_enabled
  • If the response to above command is true then JMX is enabled. Otherwise, please follow steps provided in this article. Β  Β 

Install Tabjolt

  • Tabjolt is available as a free download from here
  • Copy Tabjolt_[Version].zip to the machine that will run Tabjolt (the "load injector") and unzip it to the location of your choice. We recommend Tabjolt installation directory to be C:\TabJolt
  • The machine running Tabjolt, also referred to as the load injector, should be a different machine from Tableau Server.

Β  Β 

Step 2: Configuration

Create the Tabjolt results DB

The Tabjolt results DB (perfresults) will be created in the PostgreSQL server by running the script <TabjoltInstallationFolder>\sql\CreateTabjoltResultsDatabase.sql using the psql shell

  • First, open the SQL Shell (psql) window by clicking ”Start | PostgreSQL 14 | SQL Shell (psql)β€œ. A window such as below will open up and ask for some information. Accept all the defaults, and then type in the password for user postgres user when prompted. All of the values need to match with what is contained in <TabjoltInstallationFolder>\config\perftestconfig.yaml. After the password is correctly entered, you will see a screen as below - Screen 3

  • Once the above step is completed, run the following command to create the Tabjolt DB in the PostgreSQL server.
    \i 'C:\\TabJolt\\sql\\CreateTabjoltResultsDatabase.sql' (assuming that Tabjolt installation folder is C:\TabJolt)

  • The console output looks like below

psql:C:/TabJolt/sql/CreateTabjoltResultsDatabase.sql:32: NOTICE:  create database
DO
DO
DO
DO...

Configure Tabjolt

  • To configure Tabjolt, run the script <TabjoltInstallationFolder>\ConfigureTabjolt.bat from command prompt. Provide values as in the examples shown below. Β 

Screen 1:

  • Provide the server endpoint and credentials for your server as shown below
  • Enter a Master Password of your choice. This will be used as a key to encrypt all other passwords.
    Please note: If you specify a master password you will need to pass it to RunTabjolt.bat using the --m flag. (see the Run Tabjolt step below)
  • Click Next
    Example:
    Screen 1 Β 

Screen 2:

  • Click Next Β 

Screen 3:

  • Enter the credentials for the TSM
  • Click Finish
    Example:
    Screen 3 Β  Β 

If using a Linux server: Manually create ssh file:

  • The ssh file is needed by the Data Retriever to connect to the server machines and collect performance counters.
  • It will not be created by the Configure Tabjolt steps above.
  • Go to the config folder in your Tabjolt installation and open the dataretriever.templ.config file.
  • Find the following line in that file:
        <sshSettings>
            <identity userName="centos" identityFile="sshUserIdentityFile.txt" port="22"/>
        </sshSettings>
  • Replace centos with the user account you use to connect to the Linux machine hosting the Tableau Server.

  • Note the identity file name sshUserIdentityFile.txt that will be created later.

  • Connect to the Linux machine hosting the Tableau Server.

  • Go to your home directory (cd ~) and run ssh-keygen.

  • Do not enter a passphrase when prompted.

  • This will create 2 files in the .ssh folder in your home folder - id_rsa and id_rsa.pub.

  • The output should look something like this:
    Example:
    Screen 4 Β  Β 

  • Copy the contents of the id_rsa file to the sshUserIdentityFile.txt file in the config folder in your Tabjolt installation. This was defined in the dataretriever.templ.config file described above.

  • On the Linux machine, under the ~/.ssh folder, there should be an authorized_keys file. If not, create it.

  • Add the contents of the id_rsa.pub file created by ssh-keygen command above to the authorized_keys file. This will allow clients who have the sshUserIdentityFile.txt file to connect to this Linux machine.

Β  Β 

Step 3: Run Tabjolt

  • Now, you can start your load test by navigating to the TabJolt installation directory (Example: C:\TabJolt), and running the command such as the one below
    RunTabjolt.bat --t=testplans\InteractVizLoadTest.jmx --m=<yourMasterPassword> --d=60 --c=1

  • If you have not used a master password while configuring Tabjolt, please skip the --m parameter
    RunTabjolt.bat --t=testplans\InteractVizLoadTest.jmx --d=60 --c=1

  • The above example tells TabJolt to run the test for 60 seconds (using β€œ--d”) and run a single user client thread (β€œ--c") and use a master password key (β€œ--m"). You can change these parameters as you wish.

  • Below are some of the frequently used command line parameters available for Tabjolt

    Flag Options/Default Value Description
    --d The duration for the test. Time unit is seconds
    --t Location of the Jmeter test plan
    --c The number of threads to be used in the test
    --r The description of the test
    --s Options: true/false
    Default: false
    Whether or not to skip saving the result to DB
    --m The master password if used during tabjolt configuration. Eg. RunTabjolt.bat --t=testplans\InteractVizLoadTest.jmx --d=60 --c=1 --m=<masterPasswordYouUsed>
    --skipcounters Options: true/false
    Default: false
    whether or not to skip collecting perf counters
  • Once the Tabjolt run starts, make a note of the run id that is displayed on the output as below. This will be used for filtering out the results as explained in the next section.
    Perf run result is saving to result repository. Please use this RUN ID 4 to view your result in Tableau

Β  Β 

Step 4: Analyze Results

  • You can check for the error count on the CMD console while the test is in progress from the Errors: field as shown below
#0      Threads: 5/5    Samples: 1      Latency: 0      Resp.Time: 2714 Errors: 0
#1      Threads: 5/5    Samples: 3      Latency: 0      Resp.Time: 2811 Errors: 0
#2      Threads: 5/5    Samples: 3      Latency: 0      Resp.Time: 1139 Errors: 0
#3      Threads: 5/5    Samples: 1      Latency: 0      Resp.Time: 1123 Errors: 0
#6      Threads: 5/5    Samples: 2      Latency: 0      Resp.Time: 3870 Errors: 0
#8      Threads: 5/5    Samples: 1      Latency: 0      Resp.Time: 5237 Errors: 0
#10     Threads: 5/5    Samples: 3      Latency: 0      Resp.Time: 6789 Errors: 0
  • Once the run is finished, open up the analysis workbook located at <TabjoltInstallationFolder>\vizes\PerformanceViz.twb using Tableau Desktop. You may need to provide the username and password for your postgres user.
  • Filter by the Test Run ID on the top. You can select multiple test run ids to get a comparative view.
  • You can find some client-side performance metrics like Average Reponse times, throughput (average TPS) and error rates in the dashboard Key Perf Indicators in the workbook.
  • The start and end time of the test can be found in the Run Description dashboard
  • The CPU and Memory on the host machines are provided in the CPU & Memory dashboard
  • Perf metrics for the Vizql server are provided in the Vizql dashboard
  • Similarly, perf metrics for the application server and data server can be found in the Application Server and DataServer dashboards.

Β  Β 

Using Replayer

  • The Replay tool is now part of the Tabjolt installation.
  • You can learn more about the Replay tool on the Tableau Community Forums here.
  • To use the Replay tool from the UI, run RunReplay.bat.
  • The replay tool can also be run as a test in Tabjolt. A Replay.jmx file is provided in the testplans folder. You can call
    RunTabjolt.bat --t=testplans\Replay.jmx --z={replayFile:mytraffic.json}. You will need to put the json file with traffic to replay in your Tabjolt installation folder, and specify it in the custom parameters argument.

Β  Β 

Frequently Asked Questions (FAQs)

1. I encountered the following error related to Java while running/configuring TabJolt:

Error 11000 was unexpected at this time

Solution: Please set both the environment variables PATH and JAVA_HOME prior to configuring or running TabJolt. Sometimes, you may have multiple versions of Java running on your machine (which is fine!), hence, you may point both the environment variables to the correct Java version. Please note, TabJolt supports only x64 bit openJDK version 11 or above. If needed, please download it from here (https://openjdk.java.net/projects/jdk/17/). If PATH and/or JAVA_HOME are not set properly, you may also encounter an error that says:

'java' is not recognized as an internal or external command

Please follow these steps to set the PATH and JAVA_HOME appropriately:

  • First, you may also want to ensure that JAVA_HOME is set to point the location of the JDK installation directory. Run the following command to verify. echo %JAVA_HOME% The command should return something like: D:\jdk-17.0.2
  • If it does not return the path to JDK directory, set JAVA_HOME by running a command such as in the example below: set JAVA_HOME=D:\jdk-17.0.2\
  • Once JAVA_HOME is set, please set the PATH variable to point to the \bin folder in the JDK installation directory, as shown below set PATH=%PATH%;d:\jdk-17.0.2\bin

Β  Β 

2. I am receiving the following error while running ConfigureTabjolt.bat. What is a possible cause?
Error: Could not find or load main class com.tableausoftware.test.tools.TabjoltUI.tabjoltUI

Solution: ConfigureTabjolt.bat must load the class TabjoltUI class, and in the example above, the class is not on the path.
To resolve this, on your command prompt, please navigate to the folder containing ConfigureTabjolt.bat (usually the TabJolt installation folder) and issue the command from there.

Β  Β 

3. I see no results when I run RunTabjolt.bat . What’s wrong?

Solution: Most likely, your RunTabjolt.bat script has no content/erroneous content and it may be the result of a previous copy-paste that has rendered it empty. For example, one can pipe it by mistake if the whole of the below code is copy-pasted and executed on the console. The > will erase all content from the target (RunTabjolt.bat in this case)

C:\TabJolt>RunTabjolt.bat --t=testplans\InteractVizLoadTest.jmx --d=10 --c=1

Example:

C:\TabJolt>C:\TabJolt>RunTabjolt.bat --t=testplans\InteractVizLoadTest.jmx --d=10 --c=1
'C:\TabJolt' is not recognized as an internal or external command,
operable program or batch file.
//After this command, the RunTabjolt.bat is rendered empty!

Β  Β 

4. I am not able to configure TabJolt, receiving the error message : Unable to get the top view URLs from Tableau server.

Solution: This happens when your default site has no content. Please add some workbooks to the default site to make this work. Also, please verify that no errors were seen on the console while configuration.

Β  Β 

5. My TabJolt test was running fine with 0 errors and now all of a sudden, I see errors java.net.SocketTimeoutException: Read timed out

Solution: You may have uncovered an actual performance issue!

This error means that the server is taking longer to send the response until time-out is hit. It could be due issues on the network or server-side.

You may try running the same test by lowering down the thread count and see what happens. If it runs fine on lower thread count, then your server/server-cluster is not able to scale with the higher load.

Β  Β 

6. During configuration stage, I am receiving an error at the first screen β€œUnable to login to Tableau Server. Please double check that Tableau server Uri, user name, and password that you have entered are correct”

Solution: Please follow these steps:

  • First, from the machine that has TabJolt installed, please make sure you can login to the site manually using your browser. If you cannot login with the browser, TabJolt will also not be able to login.

  • If you can login through your browser, but not through TabJolt, please copy and send the errors and full console log during this configuration step to us.

  • After a successful logging through the first screen during the configuration step, the typical structure of ServerTestConfig.yaml (in the \config folder of your TabJolt installation) should look as below.

    default {
    proxyEnabled: false
    proxyPort: 8888
    adminUserName: tsi.lan\<tsmUsername>
    hostUri: http://<URL of your server> (http://srajimwale1/)
    userAgent: java-client-requests
    proxyHost: localhost
    requestTimeout: 180000
    users:
    - !!com.tableausoftware.test.server.configuration.User {email: '', friendlyName: '',
    lookupKey: '', name: <yourVizPortalUsername>, password: <yourVizportalPassword>, role: null, site: null}
    adminPassword: <tsmPassword>
    }
    perftestconfig.yaml
    

    Β  Β 

7. I ran a simple test using TabJolt on the command line and got a run id. I just want to know load times of the vizzes. What is the best place to look for it?

Solution: On the PerformanceViz.twb workbook, Key Perf Indicators dashboard (It’s the first from the left. You may need to scroll to the very left) would be the place to look for that. The field AVG Response Time (msec) in the table is the one for the average of the load times for all requests. The field Error Rate % It will also show you percentage of error (requests that resulted in erroneous server status codes) and the field AVG TPS (Test Per Second) will show you the throughput, i.e. rate in terms of average number of requests per second for the test.

Β  Β 

8. I want to see the breakdown of the response times. Where do I look?

Solution: On the PerformanceViz.twb workbook, please use the Test Drill Down dashboard. On the top chart, you can select individual data points (hits) for response times and the bottom chart will show you where the time was spent for that request.

Drill Down 1Drill Down 1

Β  Β 

9. If I have 5 vizzes in my test, and if I run Tabjolt with this command -

RunTabjolt --t=testplans\InteractVizLoadTest.jmx --d=240 --c =1,

does TabJolt execute 1 user hitting 5 vizzes at once, or does it cycle through the 5 one at a time?

Solution: Let’s say TabJolt is executing the Jmeter test scenario InteractVizLoadTest.jmx with --d=240 --c=4, parameters. The --c=4 means that you have just 4 parallel threads each hitting all your 5 vizzes again and again, one after the other in their iteration. All the 4 threads keep iterating like this until the duration of the test.

Further, the rate at which vizzes are loaded together by the 4 threads in 240 seconds can be found from the AVG TPS (Test Per Second) field in the Key Performance Indicators dashboard. (AVG TPS => average transactions per second or average viz-hitting per second)

Β  Β 

10. I messed up while creating the TabJolt results DB using Postgres. How do I drop and re-create the database?

Solution: If for some reason, you need to drop and re-create the TabjJolt results database, please follow these steps:

  • To delete the TabJolt results DB, you can run the script TabJoltInstallationFolder>\sql\DeleteTabjoltResultsDatabase.sql located in \sql folder in the TabJolt main installation directory.

    • Open psql shell (you will find that in Start Menu β†’ PostgreSQL <version> β†’ SQL Shell (psql)). A window such as below will open up and ask for some information. Accept all the default and then type in the password for user postgres user when prompted. All the values need to match with what is contained in <TabjoltInstallationFolder>\config\perftestconfig.yaml. After the password is correctly entered, you will see a screen as below -

    Create DB

    • Once the above step is completed, run the following command to create the Tabjolt DB in the PostgreSQL server.

    \i 'C:\\TabJolt\\sql\\DeleteTabjoltResultsDatabase.sql' (assuming TabJolt installation folder is C:\TabJolt)

    Console output

    postgres=# \i 'C:\\TabJolt\\sql\\DeleteTabjoltResultsDatabase.sql'
    psql:C:/TabJolt/sql/DeleteTabjoltResultsDatabase.sql:8: NOTICE:  table "jmeter_data" does not exist, skipping
    DROP TABLE
    psql:C:/TabJolt/sql/DeleteTabjoltResultsDatabase.sql:9: NOTICE:  table "counter_data" does not exist, skipping
    DROP TABLE
    ....
    ....
    ....
    DROP DATABASE
    
  • To create the Tabjolt results DB, run the script TabJoltInstallationFolder>\sql\CreateTabjoltResultsDatabase.sql (located at the same folder as DeleteTabjoltResultsDatabase.sql) in the same way as above.

    Console output

    postgres=#
    psql:C:/TabJolt/sql/CreateTabjoltResultsDatabase.sql:45: NOTICE: creating database now!
    DO
    DO
    DO
    DO
    DO
    DO
    DO
    ....
    ....
    

Β  Β 

11. While connecting to PerformanceViz.twb, received a message saying, `an error occured while connecting to PostGreSQL.``

Details of the error:

An error occurred while communicating with the PostgreSQL data source 'Perf_Counters (Postgres_Linux)'
Unable to connect to the server. Check that the server is running and that you have access privileges to the requested database.
Error Code: BC42EF73
Connection to localhost:48123 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
Unable to connect to the PostgreSQL server "localhost". Check that the server is running and that you have access privileges to the requested database.

Solution: Please ensure you are using the port 5432 to connect to postgres. Also, please ensure you are supplying the same password for the postgres user that is mentioned in perftestconfig.yaml file in your \config folder.

Β  Β 

12. After issuing the command for RunTabjolt.bat, I received the following error: Option only takes one value: for RunTabjolt.bat command. What am I missing?

Console output:

C:\TabJolt>RunTabjolt.bat --t=testplans\InteractVizLoadTest.jmx β€”d=60 β€”c=1
Java version is  11011+9
Exception in thread "main" uk.co.flamingpenguin.jewel.cli.ArgumentValidationException: Option only takes one value: --testPlan -t value : the location of the jmeter test plan (.jmx).
       at uk.co.flamingpenguin.jewel.cli.ValidationErrorBuilderImpl.validate(ValidationErrorBuilderImpl.java:71)
       at uk.co.flamingpenguin.jewel.cli.ArgumentValidatorImpl.validateArguments(ArgumentValidatorImpl.java:112)
       at uk.co.flamingpenguin.jewel.cli.CliImpl.parseArguments(CliImpl.java:33)
       at com.tableausoftware.test.tools.perfRunHarness.PerfRunHelper.parseArguments(PerfRunHelper.java:1019)
       at com.tableausoftware.test.tools.perfRunHarness.Main.main(Main.java:60)

In the most recent versions of TabJolt, you may see something like:

You will need to provide duration as parameters.
You will need to provide thread count as parameters.

Option takes 1 value

Solution: The most likely cause behind this is:

  • Using a single dash - as opposed to a double-dash -- for one or more command line flags (parameters) for the RunTabjolt.bat command by mistake. (Notice the β€”d parameter in the above example)
  • Some editors like TextEdit or Notepad convert double-dashes into single-dash.

Please ensure that you use use double-dashes (--) for each and every flag for RunTabjolt.bat command.

More Repositories

1

TabPy

Execute Python code on the fly and display results in Tableau visualizations:
Python
1,558
star
2

webdataconnector

Bring the data you care about into Tableau
HTML
678
star
3

server-client-python

A Python library for the Tableau Server REST API
Python
656
star
4

rest-api-samples

Samples for the Tableau REST API
Python
379
star
5

document-api-python

Create and modify Tableau workbook and datasource files
Python
324
star
6

js-api-samples

Sample code for the Tableau JavaScript API
HTML
274
star
7

extensions-api

Extensions API sample code and developer docs.
JavaScript
268
star
8

VizAlerts

Data-driven alerting for Tableau Server
Python
209
star
9

tableau-log-viewer

Tableau Log Viewer is a cross-platform tool for quickly glancing over Tableau log files
C++
168
star
10

hyper-api-samples

Sample code to get started with the Hyper API.
Python
134
star
11

community-tableau-server-insights

Community-built data sources for answering questions about Tableau Server
Python
125
star
12

TabMigrate

A lightweight tool for moving Tableau content between multiple Tableau Server environments
C#
120
star
13

Logshark

A Tableau log file analysis utility
C#
111
star
14

TabMon

A Tableau Server performance monitoring service
C#
109
star
15

connector-plugin-sdk

SDK for Developing Tableau Connector Plugins
Python
108
star
16

ts-checked-fsm

TypeScript library providing compile-time checking for state machine transitions
TypeScript
94
star
17

tableau-ui

React UI components that have the look-and-feel of Tableau.
CSS
92
star
18

query-graphs

A visualizer for queries - Hyper, Postgres, Tableau
TypeScript
88
star
19

server-install-script-samples

Sample code showing how to script Tableau Server installations
Python
83
star
20

altimeter

Graph AWS resources in Neptune
Python
82
star
21

metadata-api-samples

This repo holds samples using the Tableau Metadata API with Tableau Server or Tableau Online.
70
star
22

tableau-viz-lwc

(Archived) Lightning Web Component for embedding Tableau into Salesforce
65
star
23

embedding-playbook

You want to embed your Tableau content in lots of places. Start here.
CSS
57
star
24

tableau-server-in-kubernetes

Examples and documentation on how to run Tableau Server in a Container within a Kubernetes environment.
43
star
25

tabcmd

A Python based app that replicates the functionality of the existing TabCMD command line utility
Python
42
star
26

custom-portal-sample

Sample code showing how to integrate and embed Tableau in a web portal
HTML
39
star
27

webhooks-docs

Webhooks developer documentation and resources.
38
star
28

tableau-data-dictionary

This data dictionary provides information about the tables and views in the "workgroup" PostgreSQL database of the Tableau Server repository.
HTML
38
star
29

react-native-dns-lookup

A React Native module that leverages iOS and Android native networking libraries to lookup all of the IP addresses associated with a hostname
Objective-C
32
star
30

embedding-api-v3-samples

Samples for the Tableau Embedding API V3.
HTML
28
star
31

embedding-api-v3-guide

migration guide for moving to embedding api v3
28
star
32

mobile-app-bootstrap-react-native

A React Native template for creating iOS and Android apps that embed Tableau vizzes
JavaScript
26
star
33

mobile-app-bootstrap-cordova

A Cordova template for creating iOS apps that embed Tableau vizzes
JavaScript
22
star
34

tableau-docker-samples

Samples for Dockers for Tableau Server/Online clients
21
star
35

hyper-db

Documentation for Hyper, the blazingly fast SQL engine powering analytics at Tableau and Salesforce
TypeScript
19
star
36

npm-pack-here

An alternative to the Yarn link and NPM link workflows, this tool packs a local NPM project and puts the packed contents into the given destination directories.
TypeScript
19
star
37

extension-data-driven-parameters

Automatically update your parameters based on your data!
JavaScript
18
star
38

datadev-hackathon

Resources and materials for Tableau #DataDev hackathons.
17
star
39

redshift-monitor

Capture, save, and analyze AWS Redshift performance metrics
JavaScript
17
star
40

analytics-extensions-api

Extend Tableau to dynamically include popular data science programming languages and external tools and platforms.
HTML
17
star
41

teenypath

A filesystem wrapper
C++
16
star
42

tableau-postman

This repo is for the Tableau REST API Postman collection hosted in the Salesforce Developers Postman workspace. Use the collection to call your Tableau Server or Tableau Cloud site for demonstrations, learning, development & testing of any method in the API.
16
star
43

tableau-migration-sdk

An SDK for building your own application to migrate to a new Tableau environment.
C#
15
star
44

Visualization-Linting

Code associated with a research project for experimenting with different ways of surfacing stylistic, analytic, or visual discrepancies in visualizations.
JavaScript
14
star
45

mobile-app-bootstrap-objc

An Objective-C template for creating iOS apps that embed Tableau vizzes
Objective-C
13
star
46

TabProvision

TabProvision is a flexible tool for automating user/role/groups provisioning in Tableau Cloud
C#
12
star
47

octopus-python-client

Python script and a GUI to manage Octopus deploy servers through the Octopus Restful APIs
Python
12
star
48

tc16

Companion tool for attendees of Tableau Conference 2016
CSS
11
star
49

tab-compare

TabCompare is a visual comparison tool to understand differences in dashboards across different versions of Tableau.
Python
11
star
50

tableau.github.io

Contains the content for Tableau's OSS contribution guidelines
HTML
10
star
51

connected-apps-jwt-samples

Java
9
star
52

emb-hot-ca-v3

Embedded Hands-on-training course materials. Connected Apps and Embedding API v3
CSS
8
star
53

extension-date-updater

Automatically update your date parameters to today's date.
TypeScript
8
star
54

discover-pane-template

Template for customizing the Tableau Desktop Discover Pane
HTML
8
star
55

extension-hierarchy-navigator-sandboxed

Visualize your flat/dimensional or recursive data in a Tree/Hierarchy Extension an a Tableau Dashboard
JavaScript
8
star
56

mobile-connected-client

Keep mobile users signed in with long-lived tokens. Works alone or in conjunction with the Mobile App Bootstrap
Objective-C
8
star
57

extension-parameter-actions

A Tableau extension that allows you to update parameter values from worksheet selections.
JavaScript
7
star
58

tableau-data-acceleration-client

A script to help administrators configure data acceleration for specific workbooks.
Python
7
star
59

extension-filter-bookmarks

Instantly revert your dashboards to predefined filter settings.
JavaScript
6
star
60

wdc3

Web Data Connector (WDC), connecting to web application data from Tableau.
6
star
61

redux-saga-observer

a library that provides observer patterns to redux-sagas, allowing powerful abstractions
TypeScript
5
star
62

bridgectl

Tableau Bridge Utilities
5
star
63

extension-jungle-book

This extension allows you to create filters using shapes mapped on top of images.
TypeScript
5
star
64

vail

VAIL (Visual Analytic Intent Language) is a language for modeling user intent, inferring missing or ambiguous intent, and figuring out how to effectively visualize intent
TypeScript
4
star
65

wdclib

Used to generate the WDC shim library
JavaScript
4
star
66

Tableau-TA

4
star
67

gradle-test-timeout

Gradle plugin to turn hanging JUnit4 tests into TestTimedOutExceptions
Kotlin
4
star
68

extension-single-checkbox-parameters

Dashboard extension which enables adding a parameter to a Tableau dashboard which will display in the UI as a single checkbox.
JavaScript
3
star
69

tableau-viz-lwc-samples

(Archived) This repository contains sample code that shows how you can add the Tableau Viz Lightning web component (LWC) within the body of another Lightning web component.
JavaScript
3
star
70

connectivity-support

Provides a set of tools which can be used to diagnose common infrastructure concerns in the connectivity layer.
C++
3
star
71

VizQL-Data-Service-API-Postman-Collection

2
star
72

create-tableau-dashboard-extension

JavaScript
2
star
73

extension-quick-what-if

A dashboard extension that allows you to create a list of controllable inputs based on values of a dimension for quick what-if analysis.
JavaScript
2
star
74

bridge_k8s_poc

Shell
2
star
75

hyper-api-dotnet

C#
2
star
76

sf-exp-cloud-tableau-embedded-analytics

JavaScript
1
star
77

bridge_docker_build

Shell
1
star
78

Accelerators

This repository is used to share external prerequisites for dashboard accelerators that are published to exchange.tableau.com
1
star
79

container_image_builder

Use this tool to install database drivers and other artifacts needed in your Tableau containers.
Shell
1
star