Spaceport is used to run Vostok infrastructure on a single host for development purposes. It contains all Vostok components which are configured to work with each other out-of-the-box.
Use Spaceport with Launchpad to test newly created Vostok-instrumented applications.
Vostok contributors can also use Spaceport to fix bugs or develop new Vostok components.
Docker (and docker-compose
) are prerequisites. Check that you have them in your PATH
:
$ docker --version
Docker version 17.12.0-ce, build c97c6d6
$ docker-compose --version
docker-compose version 1.18.0, build 8dd22a9
Clone this repository:
$ git clone https://github.com/vostok/spaceport.git
Use make
to run Spaceport. It will download and run all necessary containers.
Beware. You won't be able to run Spaceport on a very old or weak machine. Mid-2014 MacBook Pro with 8GB RAM shows acceptable performance.
Go to localhost:6300 to check if all components are up and running.
Other commands are also available:
make down
will stop and remove all containersmake pull
will pull latest versions of containers and overwrite your changes to containers
If you don't have make
, look inside the Makefile
for commands.
Spaceport provides several end-user applications.
- Graphite at localhost:6304 to explore and plot metrics
- Grafana at localhost:6303 to create dashboards with metrics
- Kibana at localhost:6305 to explore logs
- Contrails at localhost:6301
- Management API at localhost:6307
- Tracing API at localhost:6308
For sending test events use next commands:
docker run --network=host -v <path to application.properties file>:/etc/hercules vstk/hercules-gateway-client:0.38.0-SNAPSHOT
Example of properties file: application.properties.
Use Launchpad to create an application. Make some HTTP requests to your application and explore results in Grafana, Kibana and Contrails.
Let's say you want to add some features to Contrails. This usually requires working on Contrails API and Contrails Web at the same time.
Clone both Contrails repositories. appsettings.json
in API is preconfigured to look for Kafka, Cassandra and other components by their container names. Change these names to localhost
, since all Spaceport components are bound to the same ports on localhost
. Now you have a working Spaceport with Contrails API replaced with your own application.
When you're done, send a pull request.