The ceilometer.agent.plugin_base ModuleΒΆ

Base class for plugins.

class ceilometer.agent.plugin_base.DiscoveryBase[source]

Bases: object

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).

Parameters:
  • manager – The service manager class invoking the plugin.
  • param – an optional parameter to guide the discovery
class ceilometer.agent.plugin_base.ExchangeTopics(exchange, topics)

Bases: tuple

exception ceilometer.agent.plugin_base.ExtensionLoadError[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.agent.plugin_base.NonMetricNotificationBase[source]

Bases: object

Use to mark non-measurement meters

There are a number of historical non-measurement meters that should really be captured as events. This common base allows us to disable these invalid meters.

class ceilometer.agent.plugin_base.NotificationBase(transporter)[source]

Bases: ceilometer.agent.plugin_base.PluginBase

Base class for plugins that support the notification API.

get_targets(conf)[source]

Return a sequence of oslo.messaging.Target.

Sequence is defining the exchange and topics to be connected for this plugin. :param conf: Configuration.

info(ctxt, publisher_id, event_type, payload, metadata)[source]

RPC endpoint for notification messages

When another service sends a notification over the message bus, this method receives it.

Parameters:
  • ctxt – oslo.messaging context
  • publisher_id – publisher of the notification
  • event_type – type of notification
  • payload – notification payload
  • metadata – metadata about the notification
process_notification(message)[source]

Return a sequence of Counter instances for the given message.

Parameters:message – Message to process.
to_samples_and_publish(context, notification)[source]

Return samples produced by process_notification.

Samples produced for the given notification. :param context: Execution context from the service or RPC call :param notification: The notification to process.

class ceilometer.agent.plugin_base.PluginBase[source]

Bases: object

Base class for all plugins.

class ceilometer.agent.plugin_base.PollsterBase[source]

Bases: ceilometer.agent.plugin_base.PluginBase

Base class for plugins that support the polling API.

get_samples(manager, cache, resources)[source]

Return a sequence of Counter instances from polling the resources.

Parameters:
  • 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_environment()[source]

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.agent.plugin_base.PollsterPermanentError(resource)[source]

Bases: exceptions.Exception

Permenant 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.