openstack-manuals/doc/admin-guide-cloud-rst/source/telemetry-system-architecture.rst
Karen Bradshaw d3d4ebf6af telemetry-system-architecture to RST
Converts section_telemetry-system-architecture.xml
to RST.
Implements: blueprint reorganise-user-guides

Change-Id: I992606a55e765ba84fe7182e1c933937ca3451e1
2015-06-24 12:09:15 -04:00

5.1 KiB

System architecture

The Telemetry module uses an agent-based architecture. Several modules combine their responsibilities to collect data, store samples in a database, or provide an API service for handling incoming requests.

The Telemetry module is built from the following agents and services:

ceilometer-api

Presents aggregated metering data to consumers (such as billing engines, analytics tools and so forth).

ceilometer-polling

Polls for different kinds of meter data by using the polling plug-ins (pollsters) registered in different namespaces.

ceilometer-agent-central

Polls the public RESTful APIs of other OpenStack services such as Compute service and Image service, in order to keep tabs on resource existence, by using the polling plug-ins (pollsters) registered in the central polling namespace.

ceilometer-agent-compute

Polls the local hypervisor or libvirt daemon to acquire performance data for the local instances, messages and emits the data as AMQP messages, by using the polling plug-ins (pollsters) registered in the compute polling namespace.

ceilometer-agent-ipmi

Polls the local node with IPMI support, in order to acquire IPMI sensor data and Intel Node Manager data, by using the polling plug-ins (pollsters) registered in the IPMI polling namespace.

ceilometer-agent-notification

Consumes AMQP messages from other OpenStack services.

ceilometer-collector

Consumes AMQP notifications from the agents, then dispatches these data to the appropriate data store.

ceilometer-alarm-evaluator

Determines when alarms fire due to the associated statistic trend crossing a threshold over a sliding time window.

ceilometer-alarm-notifier

Initiates alarm actions, for example calling out to a webhook with a description of the alarm state transition.

Note

The ceilometer-polling service is available since the Kilo release.

Besides the ceilometer-agent-compute and the ceilometer-agent-ipmi services, all the other services are placed on one or more controller nodes.

The Telemetry architecture highly depends on the AMQP service both for consuming notifications coming from OpenStack services and internal communication.

Supported databases

The other key external component of Telemetry is the database, where events, samples, alarm definitions and alarms are stored.

Note

Multiple database back ends can be configured in order to store events, samples and alarms separately.

The list of supported database back ends:

Supported hypervisors

The Telemetry module collects information about the virtual machines, which requires close connection to the hypervisor that runs on the compute hosts.

The list of supported hypervisors is:

Supported networking services

Telemetry is able to retrieve information from OpenStack Networking and external networking services:

  • OpenStack Networking:
    • Basic network meters
    • Firewall-as-a-Service (FWaaS) meters
    • Loadbalancer-as-a-Service (LBaaS) meters
    • VPN-as-a-Service (VPNaaS) meters
  • SDN controller meters:

Users, roles and tenants

This module of OpenStack uses OpenStack Identity for authenticating and authorizing users. The required configuration options are listed in the Telemetry section in the OpenStack Configuration Reference.

Two roles are used in the system basically, which are the 'admin' and 'non-admin'. The authorization happens before processing each API request. The amount of returned data depends on the role the requestor owns.

The creation of alarm definitions also highly depends on the role of the user, who initiated the action. Further details about alarm handling can be found in this guide.