I will give a brief and quick introduction to Ceilometer API with python. Just noticed that there is no such example on Internet. Although it is quite easy, I thought that it may be helpful for some.
Just create a python file where you store constants. By this way, it will be easy to manage them:
Just create a python file where you store constants. By this way, it will be easy to manage them:
OS_USERNAME="admin"
OS_PASSWORD="PASS"
OS_TENANT_NAME="admin"
OS_AUTH_URL="http://controller:5000/v2.0/"
CEILOMETER_ENDPOINT="http://controller:8777"
To do an API call, a token needs to be taken via Keystone as required for all services in OpenStack:
import keystoneclient.v2_0.client as k_client
from constants import *
keystone = k_client.Client(auth_url=OS_AUTH_URL, username=OS_USERNAME,
password=OS_PASSWORD, tenant_name=OS_TENANT_NAME)
Now, pass the token as parameter to ceilometer client for authentication:
import ceilometerclient.v2 as c_client
auth_token = keystone.auth_token
ceilometer = c_client.Client(endpoint=CEILOMETER_ENDPOINT, token= lambda : auth_token )
Now you can do all Ceilometer API calls. For instance, take meter list:
meterlist = ceilometer.meters.list()
As another example, take sample list of a specific meter(e.g. cpu_util):
cpu_util_sample = ceilometer.samples.list('cpu_util')
for each in cpu_util_sample:
print each.timestamp, each.resource_id, each.counter_volume
OpenStack API is fun to use. There are many ways to interact with it. Python-API is just one of them. Happy Openstacking!
teşekkürler
ReplyDelete