The ceilometer.polling.plugin_base Module

The ceilometer.polling.plugin_base Module

Base class for plugins.

class ceilometer.polling.plugin_base.DiscoveryBase(conf)[source]

Bases: object


Service type required in keystone catalog to works

discover(manager, param=None)[source]

Discover resources to monitor.

The most fine-grained discovery should be preferred, so the work is the most evenly distributed among multiple agents (if they exist).

For example: if the pollster can separately poll individual resources, it should have its own discovery implementation to discover those resources. If it can only poll per-tenant, then the TenantDiscovery should be used. If even that is not possible, use EndpointDiscovery (see their respective docstrings).

  • manager – The service manager class invoking the plugin.
  • param – an optional parameter to guide the discovery

Return group id of this discovery.

All running discoveries with the same group_id should return the same set of resources at a given point in time. By default, a discovery is put into a global group, meaning that all discoveries of its type running anywhere in the cloud, return the same set of resources.

This property can be overridden to provide correct grouping of localized discoveries. For example, compute discovery is localized to a host, which is reflected in its group_id.

A None value signifies that this discovery does not want to be part of workload partitioning at all.

exception ceilometer.polling.plugin_base.ExtensionLoadError(msg=None)[source]

Bases: exceptions.Exception

Error of loading pollster plugin.

PollsterBase provides a hook, setup_environment, called in pollster loading to setup required HW/SW dependency. Any exception from it would be propagated as ExtensionLoadError, then skip loading this pollster.

class ceilometer.polling.plugin_base.PollsterBase(conf)[source]

Bases: object

Base class for plugins that support the polling API.

classmethod build_pollsters(conf)[source]

Return a list of tuple (name, pollster).

The name is the meter name which the pollster would return, the pollster is a pollster object instance. The pollster which implements this method should be registered in the namespace of instead of


Default discovery to use for this pollster.

There are three ways a pollster can get a list of resources to poll, listed here in ascending order of precedence: 1. from the per-agent discovery, 2. from the per-pollster discovery (defined here) 3. from the per-pipeline configured discovery and/or per-pipeline configured static resources.

If a pollster should only get resources from #1 or #3, this property should be set to None.

classmethod get_pollsters_extensions(conf)[source]

Return a list of stevedore extensions.

The returned stevedore extensions wrap the pollster object instances returned by build_pollsters.

get_samples(manager, cache, resources)[source]

Return a sequence of Counter instances from polling the resources.

  • manager – The service manager class invoking the plugin.
  • cache – A dictionary to allow pollsters to pass data between themselves when recomputing it would be expensive (e.g., asking another service for a list of objects).
  • resources – A list of resources the pollster will get data from. It’s up to the specific pollster to decide how to use it. It is usually supplied by a discovery, see default_discovery for more information.

Setup required environment for pollster.

Each subclass could overwrite it for specific usage. Any exception raised in this function would prevent pollster being loaded.

exception ceilometer.polling.plugin_base.PollsterPermanentError(resources)[source]

Bases: exceptions.Exception

Permanent error when polling.

When unrecoverable error happened in polling, pollster can raise this exception with failed resource to prevent itself from polling any more. Resource is one of parameter resources from get_samples that cause polling error.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.