/exaquery

Query timeline visualisation for Exasol

Primary LanguageJavaScriptMIT LicenseMIT

Exaquery

Exaquery is a UI for visualizing the timeline of Exasol queries. It also allows you to see detailed (profiling) information on each query.

Use touchpad's pinch & scroll functionality to zoom and move:

IMAGE ALT TEXT HERE

Warning: UI is tested on Macbook Chrome only. No idea how this looks on other browsers.

Running

The easiest way to run the docker image:

docker run \
    -i \
    -t \
    -e HOST=<exasol_host:port> \
    -e USER=<user> \
    -e PASSWORD=<password> \
    -p 8080:8080 \
    sztanko/exaquery:latest

If you are using a tunnelled connection, use host.docker.internal as your hostname.

docker run \
    -i \
    -t \
    -e HOST=host.docker.internal:9000 \
    -e USER=sys  \
    -e PASSWORD=xxxx \
    -p 8080:8080  \
    sztanko/exaquery:latest

Then just open [http://0.0.0.0:8080] in your Chrome.

Database auditing and (system-wide) profiling needs to be enabled. Any user that can FLUSH STATISTICS and with SELECT ANY DICTIONARY privilege can be used for the project. App is not sending to third party server/recording/logging any information. Neither it writes any changes to the database.

Server

Server's code is written in Python 3. It is located in the backend directory, cd into it to work on the backend code.

Install dependencies

Follow Dockerfile instruction for installing

cd backend
pip install -r requirements.txt

Backend development

cd backend
source .env/bin/activate
HOST=127.0.0.1:9000 USER=sys PASSWORD=exasol python server.py

Client

Client's code is in the ui directory, cd into it to work on the frontend code.

Install dependencies

To install the UI dependencies:

cd ui
yarn

Client development

Just run:

cd ui/
yarn start

The frontend is based on Facebook's Create React App.

Production build

To build for production, simply run:

cd ui
yarn build

Docker container

To build the Docker container with the backend and UI:

docker build -t exaquery .