The ceilometer.storage.impl_mongodb Module

MongoDB storage backend

class ceilometer.storage.impl_mongodb.Connection(conf)[source]

Bases: ceilometer.storage.base.Connection

MongoDB connection.

clear()[source]
get_event_interval(event_filter)[source]

Return the min and max timestamps from samples, using the event_filter to limit the samples seen.

( datetime.datetime(), datetime.datetime() )

get_meter_statistics(event_filter, period=None)[source]

Return a dictionary containing meter statistics. described by the query parameters.

The filter must have a meter value set.

{ ‘min’:
‘max’: ‘avg’: ‘sum’: ‘count’: ‘period’: ‘period_start’: ‘period_end’: ‘duration’: ‘duration_start’: ‘duration_end’: }
get_meters(user=None, project=None, resource=None, source=None, metaquery={})[source]

Return an iterable of dictionaries containing meter information.

{ ‘name’: name of the meter,
‘type’: type of the meter (guage, counter), ‘unit’: unit of the meter, ‘resource_id’: UUID of the resource, ‘project_id’: UUID of project owning the resource, ‘user_id’: UUID of user owning the resource, }
Parameters:
  • user – Optional ID for user that owns the resource.
  • project – Optional ID for project that owns the resource.
  • resource – Optional resource filter.
  • source – Optional source filter.
  • metaquery – Optional dict with metadata to match on.
get_projects(source=None)[source]

Return an iterable of project id strings.

Parameters:source – Optional source filter.
get_resources(user=None, project=None, source=None, start_timestamp=None, end_timestamp=None, metaquery={}, resource=None)[source]

Return an iterable of dictionaries containing resource information.

{ ‘resource_id’: UUID of the resource,
‘project_id’: UUID of project owning the resource, ‘user_id’: UUID of user owning the resource, ‘timestamp’: UTC datetime of last update to the resource, ‘metadata’: most current metadata for the resource, ‘meter’: list of the meters reporting data for the resource, }
Parameters:
  • user – Optional ID for user that owns the resource.
  • project – Optional ID for project that owns the resource.
  • source – Optional source filter.
  • start_timestamp – Optional modified timestamp start range.
  • end_timestamp – Optional modified timestamp end range.
  • metaquery – Optional dict with metadata to match on.
  • resource – Optional resource filter.
get_samples(event_filter)[source]

Return an iterable of samples as created by ceilometer.meter.meter_message_from_counter().

get_users(source=None)[source]

Return an iterable of user id strings.

Parameters:source – Optional source filter.
get_volume_max(event_filter)[source]

Return the maximum of the volume field for the samples described by the query parameters.

get_volume_sum(event_filter)[source]

Return the sum of the volume field for the samples described by the query parameters.

record_metering_data(data)[source]

Write the data to the backend storage system.

Parameters:data – a dictionary such as returned by ceilometer.meter.meter_message_from_counter
upgrade(version=None)[source]
class ceilometer.storage.impl_mongodb.MongoDBStorage[source]

Bases: ceilometer.storage.base.StorageEngine

Put the data into a MongoDB database

Collections:

- user
  - { _id: user id
      source: [ array of source ids reporting for the user ]
      }
- project
  - { _id: project id
      source: [ array of source ids reporting for the project ]
      }
- meter
  - the raw incoming data
- resource
  - the metadata for resources
  - { _id: uuid of resource,
      metadata: metadata dictionaries
      user_id: uuid
      project_id: uuid
      meter: [ array of {counter_name: string, counter_type: string,
                         counter_unit: string} ]
    }
get_connection(conf)[source]

Return a Connection instance based on the configuration settings.

register_opts(conf)[source]

Register any configuration options used by this engine.

Previous topic

The ceilometer.storage.impl_log Module

Next topic

The ceilometer.storage.impl_sqlalchemy Module

This Page