Telemetry
The Telemetry module:
Efficiently collects the metering data about the CPU
and network costs.
Collects data by monitoring notifications sent from
services or by polling the infrastructure.
Configures the type of collected data to meet
various operating requirements. Accessing and inserting the
metering data through the REST API.
Expands the framework to collect custom usage data
by additional plug-ins.
Produces signed metering messages that cannot be
repudiated.
The system consists of the following basic
components:
A compute agent (ceilometer-agent-compute). Runs on each
compute node and polls
for resource utilization statistics. There may be other
types of agents in the future, but for now we will focus
on creating the compute agent.
A central agent (ceilometer-agent-central). Runs on a central
management server
to poll for resource utilization statistics for resources
not tied to instances or compute nodes.
A collector (ceilometer-collector). Runs on one or more
central management
servers to monitor the message queues (for notifications
and for metering data coming from the agent). Notification
messages are processed and turned into metering messages
and sent back out onto the message bus using the
appropriate topic. Telemetry messages are written to the
data store without modification.
An alarm notifier (ceilometer-alarm-notifier). Runs on one or more
central management servers to allow setting alarms based on
threshold evaluation for a collection of samples.
A data store. A database capable of handling
concurrent writes (from one or more collector instances)
and reads (from the API server).
An API server (ceilometer-api). Runs on one or more central
management
servers to provide access to the data from the data store.
These services communicate by using the standard OpenStack
messaging bus. Only the collector and API server have access
to the data store.