The point of this api is to make discovery (esp. from a casual user) easier. So you don't really want to dump all the raw samples out just to see what is there. So instead "ceilometer meter-list" will GET /v1/meters (or /{proj|user|source}/{id}/meters) and this will just return a description (name, type, resource, user, etc) of the available meters, not each sample point. After this you will probably go and look at the samples that you are actually interested in. It is a kind of dynamic version of doc/source/measurements.rst Change-Id: I58f2757874ab151632b6d87043d6327104c5b65c
8.0 KiB
Measurements
Three type of meters are defined in ceilometer:
double: meter; cumulative double: meter; gauge double: meter; delta
Type | Definition |
---|---|
Cumulative | Increasing over time (instance hours) |
Gauge | Discrete items (floating IPs, image uploads) and fluctuating values (disk I/O) |
Delta | Changing over time (bandwidth) |
Here are the meter types by components that are currently implemented:
Compute (Nova)
Name | Type | Volume | Resource | Note |
---|---|---|---|---|
instance | Gauge |
|
inst ID | Duration of instance |
instance:<type> | Gauge |
|
inst ID | Duration of instance <type> (openstack types) |
memory | Gauge |
|
inst ID | Volume of RAM in MB |
cpu | Cumulative |
|
inst ID | CPU time used |
vcpus | Gauge |
|
inst ID | Number of VCPUs |
disk.root.size | Gauge |
|
inst ID | Size of root disk in GB |
disk.ephemeral.size | Gauge |
|
inst ID | Size of ephemeral disk in GB |
disk.io.requests | Cumulative | request | inst ID | Number of disk io requests |
disk.io.bytes | Cumulative |
|
inst ID | Volume of disk io in bytes |
network.incoming.bytes | Cumulative |
|
iface ID | number of incoming bytes on the network |
network.outgoing.bytes | Cumulative |
|
iface ID | number of outgoing bytes on the network |
network.incoming.packets | Cumulative | packets | iface ID | number of incoming packets |
network.outgoing.packets | Cumulative | packets | iface ID | number of outgoing packets |
Network (Quantum)
Name | Type | Volume | Resource | Note |
---|---|---|---|---|
network | Gauge |
|
netw ID | Duration of network |
network.create | Delta | request | netw ID | Creation requests for this network |
network.update | Delta | request | netw ID | Update requests for this network |
subnet | Gauge |
|
subnt ID | Duration of subnet |
subnet.create | Delta | request | subnt ID | Creation requests for this subnet |
subnet.update | Delta | request | subnt ID | Update requests for this subnet |
port | Gauge |
|
port ID | Duration of port |
port.create | Delta | request | port ID | Creation requests for this port |
port.update | Delta | request | port ID | Update requests for this port |
router | Gauge |
|
rtr ID | Duration of router |
router.create | Delta | request | rtr ID | Creation requests for this router |
router.update | Delta | request | rtr ID | Update requests for this router |
ip.floating | Gauge |
|
ip ID | Duration of floating ip |
ip.floating.create | Delta |
|
ip ID | Creation requests for this floating ip |
ip.floating.update | Delta |
|
ip ID | Update requests for this floating ip |
Image (Glance)
Name | Type | Volume | Resource | Note |
---|---|---|---|---|
image | Gauge |
|
image ID | Image polling -> it (still) exists |
image.size | Gauge |
|
image ID | Uploaded image size |
image.update | Delta |
|
image ID | Number of update on the image |
image.upload | Delta |
|
image ID | Number of upload of the image |
image.delete | Delta |
|
image ID | Number of delete on the image |
image.download | Delta |
|
image ID | Image is downloaded |
image.serve | Delta |
|
image ID | Image is served out |
Volume (Cinder)
Name | Type | Volume | Resource | Note |
---|---|---|---|---|
volume | Gauge |
|
vol ID | Duration of volune |
volume.size | Gauge |
|
vol ID | Size of volume |
Object Storage (Swift)
Name | Type | Volume | Resource | Note |
---|---|---|---|---|
storage.objects | Gauge |
|
store ID | Number of objects |
storage.objects.size | Gauge |
|
store ID | Total size of stored objects |
storage.objects.containers | Gauge | containers | store ID | Number of containers |
Dynamically retrieving the Meters via ceilometer client
ceilometer meter-list -s openstack +------------+-------+--------------------------------------+---------+----------------------------------+ | Name | Type | Resource ID | User ID | Project ID | +------------+-------+--------------------------------------+---------+----------------------------------+ | image | gauge | 09e84d97-8712-4dd2-bcce-45970b2430f7 | | 57cf6d93688e4d39bf2fe3d3c03eb326 |
The above command will retrieve the available meters that can be queried on given the actual resource instances available.
Naming convention
If you plan on adding meters, please follow the convention bellow:
- Always use '.' as separator and go from least to most discriminent word. For example, do not use ephemeral_disk_size but disk.ephemeral.size
- When a part of the name is a variable, it should always be at the end and start with a ':'. For example do not use <type>.image but image:<type>, where type is your variable name.
- If you have any hesitation, come and ask in #openstack-metering