Chapter 2. Configuration recommendations for the Telemetry service

Because the Red Hat OpenStack Platform (RHOSP) Telemetry service is CPU-intensive, telemetry is not enabled by default in RHOSP 16.0. However, by following these deployment recommendations, you can avoid performance degradation if you enable telemetry.

These procedures—​one for a small, test overcloud and one for a large, production overcloud—​contain recommendations that maximize Telemetry service performance.

2.1. Configuring the Telemetry service on a small, test overcloud

When you enable the Red Hat OpenStack Platform (RHOSP) Telemetry service on small, test overclouds, you can improve its performance by using a file back end.

Prerequisites

  • The overcloud deployment on which you are configuring the Telemetry service is not a production system.
  • The overcloud is a small deployment that supports fewer than 100 instances, with a maximum of 12 physical cores on each Controller node, or 24 cores with hyperthreading enabled.
  • The overcloud deployment has high availability disabled.

Procedure

  1. Add the following to parameter_defaults in your /usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml environment file and replace <FILE> with the name of the gnocchi configuration file:

    parameter_defaults:
      GnocchiBackend: <FILE>
  2. Add the enable-legacy-telemetry.yaml file to your openstack overcloud deploy command:

    openstack overcloud deploy \
    -e /home/stack/environment.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml \
    [...]

Additional resources

2.2. Configuring the Telemetry service on a large, production overcloud

When you enable the Red Hat OpenStack Platform (RHOSP) Telemetry service on a large production overcloud, you can improve its performance by deploying the Telemetry service on a dedicated node.

The Telemetry service uses whichever RHOSP object store that has been chosen as its storage back end. If you do not enable Red Hat Ceph Storage, the Telemetry service uses the the RHOSP Object Storage service (swift). By default, RHOSP director colocates the Object Storage service with the Telemetry service on the Controller.

Prerequisites

  • The overcloud on which you are deploying the Telemetry service is a large, production overcloud.

Procedure

  1. To set dedicated telemetry nodes, remove the telemetry services from the Controller role.

    Create an Orchestration service (heat) custom environment file by copying /usr/share/openstack-tripleo-heat-templates/roles_data.yaml to /home/stack/templates/roles_data.yaml.

  2. In /home/stack/templates/roles_data.yaml, remove the following lines from the ServicesDefault list of the Controller role:

        - OS::TripleO::Services::CeilometerAgentCentral
        - OS::TripleO::Services::CeilometerAgentNotification
        - OS::TripleO::Services::GnocchiApi
        - OS::TripleO::Services::GnocchiMetricd
        - OS::TripleO::Services::GnocchiStatsd
        - OS::TripleO::Services::AodhApi
        - OS::TripleO::Services::AodhEvaluator
        - OS::TripleO::Services::AodhNotifier
        - OS::TripleO::Services::AodhListener
        - OS::TripleO::Services::PankoApi
        - OS::TripleO::Services::CeilometerAgentIpmi
  3. Add the following snippet, and save roles_data.yaml:

    - name: Telemetry
      ServicesDefault:
        - OS::TripleO::Services::CACerts
        - OS::TripleO::Services::CertmongerUser
        - OS::TripleO::Services::Kernel
        - OS::TripleO::Services::Ntp
        - OS::TripleO::Services::Timezone
        - OS::TripleO::Services::Snmp
        - OS::TripleO::Services::Sshd
        - OS::TripleO::Services::Securetty
        - OS::TripleO::Services::TripleoPackages
        - OS::TripleO::Services::TripleoFirewall
        - OS::TripleO::Services::SensuClient
        - OS::TripleO::Services::FluentdClient
        - OS::TripleO::Services::AuditD
        - OS::TripleO::Services::Collectd
        - OS::TripleO::Services::MySQLClient
        - OS::TripleO::Services::Docker
        - OS::TripleO::Services::CeilometerAgentCentral
        - OS::TripleO::Services::CeilometerAgentNotification
        - OS::TripleO::Services::GnocchiApi
        - OS::TripleO::Services::GnocchiMetricd
        - OS::TripleO::Services::GnocchiStatsd
        - OS::TripleO::Services::AodhApi
        - OS::TripleO::Services::AodhEvaluator
        - OS::TripleO::Services::AodhNotifier
        - OS::TripleO::Services::AodhListener
        - OS::TripleO::Services::PankoApi
        - OS::TripleO::Services::CeilometerAgentIpmi
  4. In the /home/stack/storage-environment.yaml file, set the number of dedicated nodes for the Telemetry service.

    For example, add TelemetryCount: 3 to the parameter_defaults to deploy three dedicated telemetry nodes:

    parameter_defaults:
      TelemetryCount: *3*

    You now have a custom telemetry role.

    With this role, you can define a new flavor to tag and assign specific telemetry nodes.

  5. When you deploy your overcloud, include roles_data.yaml and storage-environment.yaml to the list of your templates and environment files that openstack overcloud deploy command calls:

    $ openstack overcloud deploy \
      -r /home/stack/templates/roles_data.yaml \
      -e /home/stack/templates/storage-environment.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/enable-legacy-telemetry.yaml \
    [...]
  6. If you cannot allocate dedicated nodes to the Telemetry service, and you still need to use the Object Storage service as its back end, configure the Object Storage service on the Controller node. Locating the Object Storage service on the Controller lowers the overall storage I/O.

Additional resources