In the cloud industry, all services are provided based on pay-per-use and on-demand service. For this, the service providers are required to use a multi-step process for billing. This multi-step process includes metering, rating, and then billing. Originally, the telemetry service was designed for system billing only. The service could successfully do the metering job which was required for billing. The Telemetry service collects data about the used services which it stores in the form of samples and then this data is used for billing purposes.
Now, in addition to the measurement of services, it can also perform other tasks. When actions are performed in the OpenStack system, the triggered notifications can be captured using telemetry service. This data is also kept along with metering data. Concerning orchestration and auto-scaling, alarms are triggered which are then used by telemetry. Thus, we can say that the following functions are performed by the telemetry service:
- It can efficiently meter data related to OpenStack services.
- It can create and trigger alarms when the limit is exceeded.
- It can collect data and monitor notifications that are sent from other OpenStack services.
- It can publish data that is collected from various targets. This data can be from both data stores as well as message queues.
Components of Telemetry service:
- Compute agent: Technically, it is known as ceilometer-agent-compute. It runs on each node and also polls for statistics related to resource utilization.
- Central agent: Technically, it is known as ceilometer-agent-central. It functions at the central management server where it polls for statistics related to resources that are not related to computing nodes.
- Notification agent: Technically, it is known as ceilometer-agent-notification. It functions on the central management server where it deals with message queues to build metering and event data.
- Collector: Technically, it is known as a ceilometer-collector. Its work is to dispatch the data to an external data store without making any modifications to it.
- Alarm Evaluator: Technically, it is known as a ceilometer-alarm-evaluator. It keeps a check on the alarms which are triggered once the threshold is reached.
- Alarm notifier: Technically, it is known as a ceilometer-alarm-evaluator. It can run on more than one central management server so that alarms can be set based on the maximum value (threshold) to which the samples collected can reach.
- API server: Technically, it is known as ceilometer-API. Its work is to provide access to data that resides in the data store.
Apart from the collector and API server that have access to the data store, all other services communicate by using the messaging bus.