Fei Long Wang 13df51be82 feat(v1.1): Implement new /health endpoint for v1.1
The new /health endpoint of v1.1 is different from the /health
of v1.0. In v1.1 /health endpoint we will return a set of KPI
(Key Performance Indicator) of the target Marconi server. The
API response will be like below:

{
    "mongo_pool_1": {
        "message_volume": {
            "claimed": 0,
            "total": 0,
            "free": 0
        },
        "storage_reachable": true,
        "operation_status": {
            "create_queue": {
                "seconds": 0.0021300315856933594,
                "ref": null,
                "succeeded": true
            },
            "post_messages": {
                "seconds": 0.033502817153930664,
                "ref": null,
                "succeeded": true
            },
            "list_messages": {
                "seconds": 0.000013113021850585938,
                "ref": null,
                "succeeded": true
            },
            "claim_messages": {
                "seconds": 0.0013759136199951172,
                "ref": "3f515f37-58a0-4c81-8214-3e92979b82e7",
                "succeeded": false
            },
            "delete_queue": {
                "seconds": 0.0030739307403564453,
                "ref": null,
                "succeeded": true
            }
        }
    },
    "mongo_pool_2": {
        "message_volume": {
            "claimed": 0,
            "total": 0,
            "free": 0
        },
        "storage_reachable": true,
        "operation_status": {
            "create_queue": {
                "seconds": 0.0011799335479736328,
                "ref": null,
                "succeeded": true
            },
            "post_messages": {
                "seconds": 0.024316072463989258,
                "ref": null,
                "succeeded": true
            },
            "list_messages": {
                "seconds": 0.000008106231689453125,
                "ref": null,
                "succeeded": true
            },
            "claim_messages": {
                "seconds": 0.000576019287109375,
                "ref": "68629fda-b4ce-4cf9-978a-df0df8df36a7",
                "succeeded": false
            },
            "delete_queue": {
                "seconds": 0.003300905227661133,
                "ref": null,
                "succeeded": true
            }
        }
    },
    "catalog_reachable": true
}

docImpact
Implements: blueprint detailed-health

Change-Id: I6b281132e2fef8ce65ce54b9d6be297571f8b170
2014-08-19 18:16:59 +12:00
2014-08-12 10:23:58 -03:00
2014-08-04 10:36:50 +02:00
2014-03-18 14:48:54 -04:00
2014-01-17 15:43:49 +01:00
2014-06-04 22:31:55 +02:00
2014-08-04 10:36:50 +02:00
2014-08-04 10:36:50 +02:00
2014-08-04 10:36:50 +02:00
2014-03-21 10:16:28 +01:00
2012-11-01 09:52:20 +01:00
2014-08-04 10:36:50 +02:00
2014-08-04 10:36:50 +02:00
2014-08-04 10:36:50 +02:00
2014-04-30 02:40:38 +00:00
2014-08-05 10:40:00 -05:00

Zaqar

Message queuing service for OpenStack. To find more information read our wiki.

Running a local Zaqar server with MongoDB

Note: These instructions are for running a local instance of Zaqar and not all of these steps are required. It is assumed you have MongoDB installed and running.

  1. From your home folder create the ~/.zaqar folder and clone the repo:

    $ cd
    $ mkdir .zaqar
    $ git clone https://github.com/openstack/zaqar.git
  2. Copy the Zaqar config files to the directory ~/.zaqar:

    $ cp zaqar/etc/zaqar.conf.sample ~/.zaqar/zaqar.conf
    $ cp zaqar/etc/logging.conf.sample ~/.zaqar/logging.conf
  3. Find [drivers] section in ~/.zaqar/zaqar.conf and specify to use mongodb storage:

    storage = mongodb

    Then find the [drivers:storage:mongodb] section and modify the URI to point to your local mongod instance:

    uri = mongodb://$MONGODB_HOST:$MONGODB_PORT

    By default, you will have:

    uri = mongodb://127.0.0.1:27017
  4. For logging, find the [DEFAULT] section in ~/.zaqar/zaqar.conf and modify as desired:

    log_file = server.log
  5. Change directories back to your local copy of the repo:

    $ cd zaqar
  6. Run the following so you can see the results of any changes you make to the code without having to reinstall the package each time:

    $ pip install -e .
  7. Start the Zaqar server with logging level set to INFO so you can see the port on which the server is listening:

    $ zaqar-server -v
  8. Test out that Zaqar is working by creating a queue:

    $ curl -i -X PUT http://127.0.0.1:8888/v1/queues/samplequeue -H
    "Content-type: application/json"

You should get an HTTP 201 along with some headers that will look similar to this:

HTTP/1.0 201 Created
Date: Fri, 25 Oct 2013 15:34:37 GMT
Server: WSGIServer/0.1 Python/2.7.3
Content-Length: 0
Location: /v1/queues/samplequeue

Running tests

First install additional requirements:

pip install tox

And then run tests:

tox -e py27

You can read more about running functional tests in separate TESTS_README.

Description
OpenStack Messaging (Zaqar)
Readme 46 MiB
Languages
Python 96.1%
PHP 1.5%
Shell 1.2%
HTML 0.8%
Lua 0.3%