Source code for ceilometer.storage.impl_log

# -*- encoding: utf-8 -*-
#
# Copyright © 2012 New Dream Network, LLC (DreamHost)
#
# Author: Doug Hellmann <doug.hellmann@dreamhost.com>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""Simple logging storage backend.
"""

from ceilometer.openstack.common import log
from ceilometer.storage import base

LOG = log.getLogger(__name__)


[docs]class LogStorage(base.StorageEngine): """Log the data """
[docs] def register_opts(self, conf): """Register any configuration options used by this engine. """
[docs] def get_connection(self, conf): """Return a Connection instance based on the configuration settings. """ return Connection(conf)
[docs]class Connection(base.Connection): """Base class for storage system connections. """ def __init__(self, conf): return
[docs] def upgrade(self, version=None): pass
[docs] def clear(self): pass
[docs] def record_metering_data(self, data): """Write the data to the backend storage system. :param data: a dictionary such as returned by ceilometer.meter.meter_message_from_counter """ LOG.info('metering data %s for %s: %s', data['counter_name'], data['resource_id'], data['counter_volume'])
[docs] def get_users(self, source=None): """Return an iterable of user id strings. :param source: Optional source filter. """ return []
[docs] def get_projects(self, source=None): """Return an iterable of project id strings. :param source: Optional source filter. """ return []
[docs] def get_resources(self, user=None, project=None, source=None, start_timestamp=None, end_timestamp=None, metaquery={}, resource=None): """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, } :param user: Optional ID for user that owns the resource. :param project: Optional ID for project that owns the resource. :param source: Optional source filter. :param start_timestamp: Optional modified timestamp start range. :param end_timestamp: Optional modified timestamp end range. :param metaquery: Optional dict with metadata to match on. :param resource: Optional resource filter. """ return []
[docs] def get_meters(self, user=None, project=None, resource=None, source=None, metaquery={}): """Return an iterable of dictionaries containing meter information. { 'name': name of the meter, 'type': type of the meter (guage, counter), 'resource_id': UUID of the resource, 'project_id': UUID of project owning the resource, 'user_id': UUID of user owning the resource, } :param user: Optional ID for user that owns the resource. :param project: Optional ID for project that owns the resource. :param resource: Optional resource filter. :param source: Optional source filter. :param metaquery: Optional dict with metadata to match on. """ return []
[docs] def get_samples(self, event_filter): """Return an iterable of samples as created by :func:`ceilometer.meter.meter_message_from_counter`. """ return []
[docs] def get_volume_sum(self, event_filter): """Return the sum of the volume field for the samples described by the query parameters. """
[docs] def get_volume_max(self, event_filter): """Return the maximum of the volume field for the samples described by the query parameters. """
[docs] def get_event_interval(self, event_filter): """Return the min and max timestamp for samples matching the event_filter. """
[docs] def get_meter_statistics(self, event_filter, period=None): """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': } """