Giter VIP home page Giter VIP logo

argoeu / argo-web-api Goto Github PK

View Code? Open in Web Editor NEW
4.0 12.0 12.0 24.23 MB

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.

Home Page: http://argoeu.github.io/guides/api/

Makefile 0.03% Go 98.62% JavaScript 1.06% CSS 0.09% HTML 0.20%

argo-web-api's Introduction

Jenkins Build Status Test Coverage

Travis Build Status

swagger ui Swagger UI

ARGO Web-API

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.

Description

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.

Installation

  1. Install Golang and bzr library

  2. Install godep tool

     go get github.com/tools/godep
    
  3. 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.

  1. Get the latest version and all dependencies (Using Godep):

     godep update ...
    
  2. To build the service use the following command:

     go build
    
  3. To run the service use the following command:

     ./argo-web-api
    

For a list of options use the following command:

    ./argo-web-api -h
  1. To run the unit-tests with coverage results:

     gocov test ./... | gocov-xml > coverage.xml
    
  2. To generate and serve godoc (@port 6060)

     godoc -http=:6060
    

Postman tests

Once you finished with the installation you can run the postman tests that are located in the ./postman directory.

Run with Postman Client

If you have a postman client you can import the files to your collections and environment variables respectively.

Run from command line

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
    

Credits

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.

argo-web-api's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

argo-web-api's Issues

Make the API parameters case insensitive

Currently if you use Site instead of site for example into the url it will generate an error.
It could be good for end users to be ride of the respect of the case.

In case of error the API should be more verbose

Hi

If your url is wrong or is not mapped with the proper parameters you have only one error : 404 page not found

Is it possible at least to give as output the expected parameters for the method ?

Connections to mongodb seem to not closing properly

After a recent issue we had with the API (the process was properly running on port 443 but it couldn't serve any request) we noticed in the MongoDB logs that the open connections were over 1K and were not closing. We tried to stop/start the api and just after this the connections dropped to 0 and the api was again functional. We suspect that connections to mongodb are not handled properly in some cases.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.