/tableau-prometheus-exporter

Tableau Server Manager Prometheus Exporter

Primary LanguagePythonApache License 2.0Apache-2.0

Monthly Downloads

PyPI-Server

image

Project generated with PyScaffold

Tableau Prometheus Exporter

Tableau Server Manager Prometheus Exporter

This repository contains the codebase to expose the Tableau Server Manager metrics to prometheus and visualize them in grafana.

Metrics Example

# HELP tableau_service_status Tableau services statuses
# TYPE tableau_service_status gauge
tableau_service_status{instance_id="0",node_id="node2",service_name="filestore",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="0",node_id="node2",service_name="authnservice",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="0",node_id="node2",service_name="databasemaintenance",state="Disabled",status="Stopped"} 0.0
tableau_service_status{instance_id="0",node_id="node2",service_name="dataserver",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="1",node_id="node2",service_name="dataserver",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="0",node_id="node2",service_name="cacheserver",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="1",node_id="node2",service_name="cacheserver",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="0",node_id="node2",service_name="interactive",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="0",node_id="node2",service_name="searchserver",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="0",node_id="node2",service_name="statsservice",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="0",node_id="node2",service_name="vizportal",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="1",node_id="node2",service_name="vizportal",state="Enabled",status="Active"} 1.0
tableau_service_status{instance_id="0",node_id="node2",service_name="backuprestore",state="Disabled",status="Stopped"} 0.0

Install it from PyPI

$ pip install tableau-prometheus-exporter

Usage

Python

from tableau_prometheus_exporter.server import Server

Server(config).start_and_run_forever()

Command Line

$ python -m tableau_prometheus_exporter --h

Docker

$ docker run --rm -p 8000:8000 -v ${PWD}/config.yaml:/app/config.yaml tableau-prometheus-exporter --config-file config.yaml

Go to http://localhost:8000/ to see the metrics.

Configuration

A sample configuration can be found at samples/config.yaml.template

Dashboard

A sample Grafana Dashboard can be found at samples/grafana.json

Grafana Dashboard

Alerting

A sample of prometheus alert can be found at samples/prometheus.yaml

Contributing

Please refer to the CONTRIBUTING file for information about how to get involved. We welcome issues, questions, and pull requests.

Note

This project has been set up using PyScaffold 4.5. For details and usage information on PyScaffold see https://pyscaffold.org/.