Services for autoscaling instances

You can use Orchestration service (heat) templates to define and create cloud resources, such as compute and storage, and use telemetry services to collect data about cloud resource usage that you can use to automatically scale instances in response to workload demand and resource availability.

Telemetry service (ceilometer) for data collection

The Telemetry service (ceilometer) collects metric and event data for Red Hat OpenStack Services on OpenShift (RHOSO) components.

The Telemetry service uses three agents to collect data from RHOSO components:

Compute agent (ceilometer-agent-compute)
Runs on each Compute node and polls for resource use statistics.
Central agent (ceilometer-agent-central)
Runs on the control plane to poll for resource use statistics for resources that are not provided by Compute nodes.
Notification agent (ceilometer-agent-notification)
Runs on the control plane and consumes messages from the message queues to build event and metering data.

These agents use publishers to send data to the corresponding end points:

  • Compute metrics are retrieved by the ceilometer-agent-compute on each Compute node. Each compute agent exposes its own scrape endpoint, which is then scraped directly by Prometheus.
  • ceilometer-agent-central metrics use the RabbitMQ bus for transporting metrics to the ceilometer-agent-notification.
  • ceilometer-agent-notification uses the TCP publisher to transport metrics to the sg-core container, which then exposes them in the time-series database service (Prometheus) format on the ceilometer-internal.<namespace>.svc:3000/metrics endpoint. From this endpoint, the metrics are either scraped by a Prometheus instance provided by the MetricStorage, or by any external user-provided Prometheus-compatible system.

Time-series database service for autoscaling

Prometheus is a time-series database that you can use for storing metrics. The Alarming service (aodh) and Orchestration service (heat) use the data that is stored in Prometheus for autoscaling. Prometheus uses the query language, PromQL.

Alarming service (aodh) for event actions

The Alarming service (aodh) triggers actions based on rules for the metrics or event data that is collected by the Telemetry service (ceilometer) and stored in Prometheus.

Alarms can be in one of the following states:

  • Ok: The metric or event is in an acceptable state.
  • Alarm: The metric or event is outside of the defined Ok state.
  • insufficient data: The alarm state is unknown, for example, if there is no data, or the check has not been executed yet.

Orchestration service (heat) for autoscaling

The Orchestration service (heat) uses templates to create stacks. A stack is a collection of resources that heat creates and configures, such as compute resources, network configuration, security groups, and scaling rules.