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 settting 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.