/telemetry

atoum telemetry platform

Primary LanguagePHPOtherNOASSERTION

atoum telemetry Build Status

atoum

Running locally

To run a local telemtry instance and hack it around youwill have to use Docker and Compose:

docker-compose up

# OR

docker-compose up -d # This will run the platform as a background daemon

Once started, you will be able to reach each service with the following URLs:

  • InfluxDB admin: http://localhost:8083
  • InfluxDB API: http://localhost:8086
  • Telemtry API: http://localhost:8087
  • Grafana: http://localhost:8088
  • Redis: redis://localhost:8089

Redis does not come with any management console. You can use redis-commander if you want to browse the database.

Building the docker image

The telemetry platform is shipped and deployed as a docker image. To build it, run:

docker build -t atoum/telemetry .

Configuring

The telemtry platform is configured through environment variables:

Variable Description Default API Worker
ATOUM_TELEMETRY_AUTH_TOKEN Authentication token used for webhooks null X
ATOUM_TELEMETRY_INFLUXDB_HOST InfluxDB host name localhost X
ATOUM_TELEMETRY_INFLUXDB_PORT InfluxDB API port 8086 X
ATOUM_TELEMETRY_INFLUXDB_DATABASE InfluxDB database name atoum X
ATOUM_TELEMETRY_INFLUXDB_USERNAME InfluxDB username null X
ATOUM_TELEMETRY_INFLUXDB_PASSWORD InfluxDB password null X
ATOUM_TELEMETRY_REDIS_HOST Redis host name localhost X X
ATOUM_TELEMETRY_REDIS_PORT Redis port 6379 X X
ATOUM_TELEMETRY_RESQUE_QUEUE Resque queue name atoum X X

Running

To run the telemetry platform you will have to boot at least two containers: one for the HTTP API and another for the worker:

docker run --rm --name=atoum-telemetry-api -p 8087:80 -d atoum/telemetry
docker run --rm --name=atoum-telemetry-worker -d --entrypoint=php atoum/telemetry /app/bin/worker.php

Do not forget to define the required environment variables for each container.

Telemetry API

The API exposes 2 useful routes:

There are also two routes to access the API documentation:

  • GET /docs to get the JSON definition of the API
  • GET /swagger to reach the Swagger UI