Ceilometer project aims to become the infrastructure to collect measurements within OpenStack so that no two agents would need to be written to collect the same data. It's primary targets are monitoring and metering, but the framework should be easily expandable to collect for other needs. To that effect, Ceilometer should be able to share collected data with a variety of consumers.
This charm provides the Ceilometer service for OpenStack.
Ceilometer is made up of 2 separate services: an API service, and a collector service. This charm allows them to be deployed in different combination, depending on user preference and requirements.
In order to deploy Ceilometer service (prior to Queens), the MongoDB service is required:
juju deploy mongodb juju deploy ceilometer juju add-relation ceilometer mongodb
For OpenStack Queens or later, Gnocchi should be used instead of MongoDB for resource, metrics and measure storage:
juju add-relation ceilometer gnocchi
Note: When ceilometer is related to gnocchi the ceilometer-upgrade action must be run post deployment in order to update its data store in gnocchi.
juju run-action ceilometer-upgrade
then Keystone and Rabbit relationships need to be established:
juju add-relation ceilometer:amqp rabbitmq juju add-relation ceilometer keystone:identity-service juju add-relation ceilometer keystone:identity-notifications
For OpenStack Queens, the identity-service relation must be replaced with the identity-credentials relation:
juju add-relation ceilometer keystone:identity-credentials
Ceilometer@Queens does not provide an API service.
In order to capture the calculations, a Ceilometer compute agent needs to be installed in each nova node, and be related with Ceilometer service:
juju deploy ceilometer-agent juju add-relation ceilometer-agent nova-compute juju add-relation ceilometer-agent:amqp rabbitmq-server:amqp juju add-relation ceilometer:ceilometer-service ceilometer-agent:ceilometer-service
Ceilometer provides an API service that can be used to retrieve Openstack metrics.
If ceilometer needs to listen to multiple message queues then use the amqp interface to relate ceilometer to the message broker that it should publish to and use the amqp-listener interface for all message brokers ceilometer should monitor.
juju add-relation ceilometer:amqp rabbitmq-central juju add-relation ceilometer:amqp-listener rabbitmq-neutron juju add-relation ceilometer:amqp-listener rabbitmq-nova-cell2
When more than one unit is deployed with the hacluster application the charm will bring up an HA active/active cluster.
There are two mutually exclusive high availability options: using virtual IP(s) or DNS. In both cases the hacluster subordinate charm is used to provide the Corosync and Pacemaker backend HA functionality.
Network Space support
This charm supports the use of Juju Network Spaces, allowing the charm to be bound to network space configurations managed directly by Juju. This is only supported with Juju 2.0 and above.
API endpoints can be bound to distinct network spaces supporting the network separation of public, internal and admin endpoints.
To use this feature, use the --bind option when deploying the charm:
juju deploy ceilometer --bind "public=public-space internal=internal-space admin=admin-space"
alternatively these can also be provided as part of a juju native bundle configuration:
ceilometer: charm: cs:ceilometer bindings: public: public-space admin: admin-space internal: internal-space
NOTE: Spaces must be configured in the underlying provider prior to attempting to use them.
NOTE: Existing deployments using os-*-network configuration options will continue to function; these options are preferred over any network space binding provided if set.
- (boolean) If True enables openstack upgrades for this charm via juju actions. You will still need to set openstack-origin to the new repository but instead of an upgrade running automatically across all units, it will wait for you to execute the openstack-upgrade action for this charm on each unit. If False it will revert to existing behavior of upgrading all units on config change.
- (boolean) Enable debug logging.
- (boolean) Use DNS HA with MAAS 2.0. Note if this is set do not set vip settings below.
- (boolean) From Pike onwards, the default ceilometer pollster collection runs a limited set of pollsters. Enable this to run all the available pollsters. This setting only takes effect from Queens onwards.
- (int) Number of seconds that events are kept in the database for (<= 0 means infinite).
- (string) As of the Queens release ceilometer no longer consumes events on the event.sample queue. Valid options here include "aodh" or "gnocchi" and if you want to disable publishing events you can specify an empty string "". The default is set to aodh for backwards compatibility. Note this setting has no impact on the remote-sink option and is ignored prior to Queens.
- (string) Archive retention policy to use when Ceilometer is deployed with Gnocchi for resource, metric and measures storage.
- (string) Default network interface on which HA cluster will bind to communication with the other members of the HA Cluster.
- (int) Default multicast port number that will be used to communicate between HA Cluster nodes.
- (int) Client timeout configuration in ms for haproxy, used in HA configurations. If not provided, default value of 90000ms is used.
- (int) Connect timeout configuration in ms for haproxy, used in HA configurations. If not provided, default value of 9000ms is used.
- (int) Queue timeout configuration in ms for haproxy, used in HA configurations. If not provided, default value of 9000ms is used.
- (int) Server timeout configuration in ms for haproxy, used in HA configurations. If not provided, default value of 90000ms is used.
- (string) Apply system hardening. Supports a space-delimited list of modules to run. Supported modules currently include os, ssh, apache and mysql.
- (int) Number of seconds that samples are kept in the database for (<= 0 means infinite).
- (string) Used by the nrpe-external-master subordinate charm. A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like 'juju-myservice-0'. If you are running multiple environments with the same services in them this allows you to differentiate between them.
- (string) A comma-separated list of nagios service groups. If left empty, the nagios_context will be used as the servicegroup
- (string) Repository from which to install. May be one of the following: distro (default), ppa:somecustom/ppa, a deb url sources entry, or a supported Ubuntu Cloud Archive e.g. . cloud:<series>-<openstack-release> cloud:<series>-<openstack-release>/updates cloud:<series>-<openstack-release>/staging cloud:<series>-<openstack-release>/proposed . See https://wiki.ubuntu.com/OpenStack/CloudArchive for info on which cloud archives are available and supported. . NOTE: updating this setting to a source that is known to provide a later version of OpenStack will trigger a software upgrade unless action-managed-upgrade is set to True.
- (string) The hostname or address of the admin endpoints created for ceilometer in the keystone identity provider. . This value will be used for admin endpoints. For example, an os-admin-hostname set to 'ceilometer.admin.example.com' with ssl enabled will create the following admin endpoints for ceilometer: . https://ceilometer.admin.example.com:8777/
- (string) The IP address and netmask of the OpenStack Admin network (e.g. 192.168.0.0/24) . This network will be used for admin endpoints.
- (string) The hostname or address of the internal endpoints created for ceilometer in the keystone identity provider. . This value will be used for internal endpoints. For example, an os-internal-hostname set to 'ceilometer.internal.example.com' with ssl enabled will create the following internal endpoints for ceilometer: . https://ceilometer.internal.example.com:8777/
- (string) The IP address and netmask of the OpenStack Internal network (e.g. 192.168.0.0/24) . This network will be used for internal endpoints.
- (string) The hostname or address of the public endpoints created for ceilometer in the keystone identity provider. . This value will be used for public endpoints. For example, an os-public-hostname set to 'ceilometer.example.com' with ssl enabled will create the following public endpoints for ceilometer: . https://ceilometer.example.com:8777/
- (string) The IP address and netmask of the OpenStack Public network (e.g. 192.168.0.0/24) This network will be used for public endpoints.
- (string) When set the content is written to /etc/ceilometer/pipeline.yaml, by default the package's file is used.
- (int) The number of measures from same pollster to batch together for sending to the notification agent and then to the publisher. Set to 0 to disable. This config is only effective for OpenStack release Rocky or newer.
- (int) Number of seconds between Ceilometer central agent pollster collections. This setting only takes effect from Queens onwards.
- (string) Username to request access on rabbitmq-server.
- (string) RabbitMQ virtual host to request access on rabbitmq-server.
- (string) OpenStack region name.
- (string) Space delimited list of remote consumers of Ceilometer event reporting which reside outside of the deployed model. Only supported for Mitaka and later clouds. e.g. . 'udp://<host>:<port>/' 'prometheus://pushgateway-host:9091/metrics/job/openstack-telemetry'
- (string) SSL CA to use with the certificate and key provided - this is only required if you are providing a privately signed ssl_cert and ssl_key.
- (string) SSL certificate to install and use for API ports. Setting this value and ssl_key will enable reverse proxying, point Ceilometer's entry in the Keystone catalog to use https, and override any certificate and key issued by Keystone (if it is configured to do so).
- (string) SSL key to use with certificate specified as ssl_cert.
- (boolean) OpenStack mostly defaults to using public endpoints for internal communication between services. If set to True this option will configure services to use internal endpoints where possible.
- (boolean) Setting this to True will allow supporting services to log to syslog.
- (boolean) Enable verbose logging.
- (string) Virtual IP(s) to use to front API services in HA configuration. . If multiple networks are being used, a VIP should be provided for each network, separated by spaces.
- (float) The CPU core multiplier to use when configuring worker processes for this service. By default, the number of workers for each daemon is set to twice the number of CPU cores a service unit has. When deployed in a LXD container, this default value will be capped to 4 workers unless this configuration option is set.