Skip to main content

Monasca API Client Library

Project description

This is a client library for Monasca built to interface with the Monasca API. It provides a Python API (the monascaclient module) and a command-line tool (monasca).

The Monasca Client was written using the OpenStack Heat Python client as a framework.

Ubuntu Install

  • pip - version >= 1.4. python
Install It:
  • sudo pip install python-monascaclient
Alternative Manual Install Steps:
  • cd to your python-monascaclient repo
  • sudo pip install -r requirements.txt
  • python install

Command-line API

Installing this distribution gets you a shell command, monasca, that you can use to interact with the Monitoring API server.



monasca help

monasca help <command>

monasca -j <command>

This outputs the results in jason format. Normally output is in table format.

The monascaclient CLI needs the Monasca API endpoint url and the OS_AUTH_TOKEN to pass to the Monasca API RESTful interface. This is provided through environment or CLI parameters.

Environmental Variables

Environmental variables can be sourced, or optionally passed in as CLI arguments. It is easiest to source them first and then use the CLI.

When token and endpoint are known:


When using Keystone to obtain the token and endpoint:

export OS_AUTH_URL=

When using Vagrant Environment with middleware disabled:

export OS_AUTH_TOKEN=82510970543135

The Monasca API will treat the auth token as the tenant ID when Keystone is not enabled.

You’ll find complete documentation on the shell by running monasca help:

usage: monasca [-j] [--version] [-d] [-v] [-k] [--cert-file CERT_FILE]
           [--key-file KEY_FILE] [--ca-file CA_FILE] [--timeout TIMEOUT]
           [--os-username OS_USERNAME] [--os-password OS_PASSWORD]
           [--os-tenant-id OS_TENANT_ID] [--os-tenant-name OS_TENANT_NAME]
           [--os-auth-url OS_AUTH_URL] [--os-region-name OS_REGION_NAME]
           [--os-auth-token OS_AUTH_TOKEN] [--os-no-client-auth]
           [--mon-api-url MONASCA_API_URL] [--mon-api-version MONASCA_API_VERSION]
           [--os-service-type OS_SERVICE_TYPE]
           [--os-endpoint-type OS_ENDPOINT_TYPE]
           <subcommand> ...

Command-line interface to the monasca-client API.

positional arguments:
    alarm-definition-create  Create an alarm definition.
    alarm-definition-delete  Delete the alarm definition.
    alarm-definition-list    List alarm definitions for this tenant.
    alarm-definition-patch   Patch the alarm definition.
    alarm-definition-show    Describe the alarm definition.
    alarm-definition-update  Update the alarm definition.
    alarm-delete             Delete the alarm.
    alarm-history            Alarm state history.
    alarm-history-list       List alarms state history.
    alarm-list               List alarms for this tenant.
    alarm-patch              Patch the alarm.
    alarm-show               Describe the alarm.
    alarm-update             Update the alarm.
    measurement-list         List measurements for the specified metric.
    metric-create            Create metric.
    metric-create-raw        Create metric from raw json body.
    metric-list              List metrics for this tenant.
    metric-statistics        List measurement statistics for the specified metric.
    notification-create      Create notification.
    notification-delete      Delete notification.
    notification-list        List notifications for this tenant.
    notification-show        Describe the notification.
    notification-update      Update notification.
    bash-completion          Prints all of the commands and options to stdout.
    help                     Display help about this program or one of its

optional arguments:
  -j, --json             output raw json response
  --version              Shows the client version and exits.
  -d, --debug            Defaults to env[MONASCA_DEBUG].
  -v, --verbose          Print more verbose output.
  -k, --insecure         Explicitly allow the client to perform "insecure" SSL
                         (https) requests. The server's certificate will not
                         be verified against any certificate authorities. This
                         option should be used with caution.
  --cert-file CERT_FILE  Path of certificate file to use in SSL connection.
                         This file can optionally be prepended with the
                         private key.
  --key-file KEY_FILE    Path of client key to use in SSL connection.This
                         option is not necessary if your key is prepended to
                         your cert file.
  --ca-file CA_FILE      Path of CA SSL certificate(s) used to verify the
                         remote server's certificate. Without this option the
                         client looks for the default system CA certificates.
  --timeout TIMEOUT      Number of seconds to wait for a response.
  --os-username OS_USERNAME
                         Defaults to env[OS_USERNAME].
  --os-password OS_PASSWORD
                         Defaults to env[OS_PASSWORD].
  --os-tenant-id OS_TENANT_ID
                         Defaults to env[OS_TENANT_ID].
  --os-tenant-name OS_TENANT_NAME
                         Defaults to env[OS_TENANT_NAME].
  --os-auth-url OS_AUTH_URL
                         Defaults to env[OS_AUTH_URL].
  --os-region-name OS_REGION_NAME
                         Defaults to env[OS_REGION_NAME].
  --os-auth-token OS_AUTH_TOKEN
                         Defaults to env[OS_AUTH_TOKEN].
  --os-no-client-auth    Do not contact keystone for a token. Defaults to
  --mon-api-url MONASCA_API_URL
                         Defaults to env[MONASCA_API_URL].
  --mon-api-version MONASCA_API_VERSION
                         Defaults to env[MONASCA_API_VERSION] or 2_0
  --os-service-type OS_SERVICE_TYPE
                         Defaults to env[OS_SERVICE_TYPE].
  --os-endpoint-type OS_ENDPOINT_TYPE
                         Defaults to env[OS_ENDPOINT_TYPE].

See "mon help COMMAND" for help on a specific command.

Bash Completion

Basic command tab completion can be enabled by sourcing the bash completion script.

source /usr/local/share/monasca.bash_completion

Metrics Examples

Note: To see complete usage: ‘monasca help’ and ‘monasca help <command>’


monasca metric-create cpu1 123.40
monasca metric-create metric1 1234.56 --dimensions instance_id=123,service=ourservice
monasca metric-create metric1 2222.22 --dimensions instance_id=123,service=ourservice
monasca metric-create metric1 3333.33 --dimensions instance_id=222,service=ourservice


monasca metric-list
| name    | dimensions         |
| cpu1    |                    |
| metric1 | instance_id:123    |
|         | service:ourservice |


monasca measurement-list metric1 2014-01-01T00:00:00Z
| name    | dimensions         | measurement_id | timestamp            | value        |
| metric1 | instance_id:123    |     723885     | 2014-05-08T21:46:32Z |      1234.56 |
|         | service:ourservice |     725951     | 2014-05-08T21:48:50Z |      2222.22 |
| metric1 | instance_id:222    |     726837     | 2014-05-08T21:49:47Z |      3333.33 |
|         | service:ourservice |                |                      |              |

monasca measurement-list metric1 2014-01-01T00:00:00Z --dimensions instance_id=123
| name    | dimensions         | measurement_id | timestamp            | value        |
| metric1 | instance_id:123    |     723885     | 2014-05-08T21:46:32Z |      1234.56 |
|         | service:ourservice |     725951     | 2014-05-08T21:48:50Z |      2222.22 |

Notifications Examples

Note: To see complete usage: ‘monasca help’ and ‘monasca help <command>’


monasca notification-create cindyemail1 EMAIL


monasca notification-list
| name          | id                                   | type  | address              |
| cindyemail1   | 5651406c-447d-40bd-b868-b2b3e6b59e32 | EMAIL | |

Alarms Examples

Note: To see complete usage: ‘monasca help’ and ‘monasca help <command>’


monasca alarm-definition-create --match-by hostname TEST_ALARM_DEF_MATCH_BY "max(cpu.load_avg_1_min) > 0"


| name                         | id                                   | expression                                     | match_by      | actions_enabled |
| TEST_ALARM_DEF_MATCH_BY      | addfef44-e458-4a54-855b-78908e8cd60c | max(cpu.load_avg_1_min) > 0                    | [u'hostname'] | True            |


monasca alarm-definition-show addfef44-e458-4a54-855b-78908e8cd60c
| Property             | Value                                                                                              |
| actions_enabled      | true                                                                                               |
| alarm_actions        | []                                                                                                 |
| description          | ""                                                                                                 |
| expression           | "max(cpu.load_avg_1_min) > 0"                                                                      |
| id                   | "addfef44-e458-4a54-855b-78908e8cd60c"                                                             |
| links                | href:,rel:self |
| match_by             | [                                                                                                  |
|                      |   "hostname"                                                                                       |
|                      | ]                                                                                                  |
| name                 | "TEST_ALARM_DEF_MATCH_BY"                                                                          |
| ok_actions           | []                                                                                                 |
| severity             | "LOW"                                                                                              |
| undetermined_actions | []                                                                                                 |


monasca alarm-definition-delete addfef44-e458-4a54-855b-78908e8cd60c


monasca alarm-list
| id                                   | alarm_definition_id                  | metrics                                                                                                  | state |
| 46b8568d-99fc-4801-8a9f-5469b4fefaea | addfef44-e458-4a54-855b-78908e8cd60c | [{u'name': u'cpu.load_avg_1_min', u'dimensions': {u'hostname': u'mini-mon', u'service': u'monitoring'}}] | ALARM |
| e9399e5e-cabe-433e-b1d8-56be0bd809a9 | addfef44-e458-4a54-855b-78908e8cd60c | [{u'name': u'cpu.load_avg_1_min', u'dimensions': {u'hostname': u'devstack', u'service': u'monitoring'}}] | ALARM |


monasca alarm-patch 46b8568d-99fc-4801-8a9f-5469b4fefaea --state OK

Python API

There’s also a complete Python API.

In order to use the python api directly, you must first obtain an auth token and identify the monasca api endpoint. The user can obtain the token and endpoint using the keystone client api: The service catalog name for our API endpoint is “monasca”.

Start using the monascaclient API by constructing the monascaclient client.Client class. The Client class takes these parameters: api_version, endpoint, and token. The Client class is used to call all monasca-api resource commands (i.e. client.Client.metrics.create(fields)).

Long running users of Client will recieve an indication that the keystone token has expired when they receive an HTTP response code of 401 Unauthorized from the monasca-API. In this case, it is up to the user to get a new token from keystone which can be passed into the client.Client.replace_token(token) method.

The api_version matches the version of the Monasca API. Currently it is ‘v2_0’.

When calling the commands, refer to ‘do_<command>’ to see the required and optional fields for each command.

Refer to this example in python-monascaclient/

from monascaclient import client
import monascaclient.exc as exc
import time

api_version = '2_0'
endpoint = ''
kwargs = {
    'token': '12345678'

# construct the mon client
monasca_client = client.Client(api_version, endpoint, **kwargs)

# call the metric-create command
dimensions = {'instance_id': '12345', 'service': 'hello'}
fields = {}
fields['name'] = 'cindy1'
fields['dimensions'] = dimensions
fields['timestamp'] = time.time()
fields['value'] = 222.333
    resp = monasca_client.metrics.create(**fields)
except exc.HTTPException as he:


Copyright (c) 2014 Hewlett-Packard Development Company, L.P.

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
python_monascaclient-1.0.4-py2.py3-none-any.whl (64.8 kB) Copy SHA256 hash SHA256 Wheel py2.py3
python-monascaclient-1.0.4.tar.gz (55.6 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page