ARGO is a flexible and scalable framework for monitoring status, availability and reliability of services provided by infrastructures with medium to high complexity. It can generate multiple reports using customer defined profiles (e.g. for SLA management, operations etc) and has built-in multi-tenant support in the core framework.
The ARGO Web API provides the Serving Layer of ARGO. It is comprised of a high performance and scalable datastore and a multi-tenant REST HTTP API, which is used for retrieving the Status, Availability and Reliability reports and the actual raw metric results.
-
Install Golang and bzr library
-
Install godep tool
go get github.com/tools/godep
-
Create a new work space and setup your environment:
mkdir ~/go-workspace export GOPATH=~/go-workspace export PATH=$PATH:GOPATH
You may add the export
lines into the ~/.bashrc
or the ~/.bash_profile
file to have the GOPATH
and PATH
environment variables properly setup upon every login.
-
Get the latest version and all dependencies (Using Godep):
godep update ...
-
To build the service use the following command:
go build
-
To run the service use the following command:
./argo-web-api
For a list of options use the following command:
./argo-web-api -h
-
To run the unit-tests with coverage results:
gocov test ./... | gocov-xml > coverage.xml
-
To generate and serve godoc (@port 6060)
godoc -http=:6060
Once you finished with the installation you can run the postman tests that are located in the ./postman directory.
If you have a postman client you can import the files to your collections and environment variables respectively.
if you prefer to use the command line you may follow the steps showed bellow
Declare the variables bellow
-
COMMIT
should be the commit of the artifact that is deployed -
TOKEN
is an access token that is set in the service$ cd postman && npm install newman $ ./node_modules/newman/bin/newman.js run ./argo-web-api_tests.json -k -e ./postman/env.json --env-var last_commit=$COMMIT api_key=$TOKEN
The ARGO Messaging Service is developed by GRNET
The work represented by this software was partially funded by:
- EGI Foundation
- EGI-ENGAGE project through the European Union (EU) Horizon 2020 program under Grant number 654142.
- EOSC-Hub project through the European Union (EU) Horizon 2020 program under Grant number 77753642.
- EUDAT2020 European Union’s H2020 Program under Contract No. 654065.