Skip to content

[Install] API Server

Marcel Verkerk edited this page Dec 16, 2019 · 1 revision

The timings API is a node/express based API the uses ElasticSearch and Kibana (we'll call that "ELK") to store & visualize data. The idea behind the API is to submit/validate/store/assert performance measurements as part of regular functional test cycles.

The API can be run in various ways (see below) and it can be run without ELK although that is not recommended (you miss out on a lot of the goodies!). You can run ELK yourself or you can make use of the convenient timings-docker repo!

The API can be installed on both Windows and Linux Operating systems. Linux is highly recommended but of course, the choice is yours! Following are some system recommendations:

  • Enterprise Linux, 64-bit [recommended]
  • Windows Server 2012+, 64-bit
  • nodejs + npm (version 8+) - see here
  • git - see here

Installing and running the API

The recommended method is "docker-compose" as it includes ELK and requires the least amount of setup/configuration! You can also clone this repo and run the API with node from inside the cloned directory, or you can install it globally with npm i -g (from the public NPM registry), or you can build/pull/run a stand-alone Docker container.

NOTE: It is important that you create a config file before you start the API! Your config file can be in JS, JSON or YML format (examples are provided in the root of this repo).

You need to point the API at the config file using the -c or --configfile argument. If you fail to do this, the API will use defaults settings such as "" for the elasticsearch server (= don't use ElasticSearch)! Please refer to CONFIG.MD for more details.

Below are the different install & run commands for each method as well as the instructions on how to point to the config file:

docker-compose (recommended)

For instructions, see DOCKER.MD

Git clone

You have to run ELK yourself! See also here: installing-elasticsearch-and-kibana

Activity Command
Installation $ git clone https://www.github.com/godaddy/timings.git
$ cd timings
$ npm i
Startup $ node ./server.js --configfile {path}
Upgrade $ git pull
$ node ./server.js --configfile {path}
Config Can be anywhere! Use --configfile argument!

NPM install

You have to run ELK yourself! See also here: installing-elasticsearch-and-kibana

Activity Command
Installation $ npm install -g timings
Startup $ timings --configfile {path}
Upgrade $ npm update -g timings
$ timings --configfile {path}
Config Can be anywhere! Use --configfile argument!

Docker (stand-alone)

For instructions, see DOCKER.MD