HBase storage backend
Bases: ceilometer.storage.base.Connection
Put the data into a HBase database
Collections:
meter (describes sample actually):
row-key: consists of reversed timestamp, meter and a message signature for purposes of uniqueness
Column Families:
f: contains the following qualifiers:
counter_name: <name of counter>
counter_type: <type of counter>
counter_unit: <unit of counter>
counter_volume: <volume of counter>
message: <raw incoming data>
message_id: <id of message>
message_signature: <signature of message>
resource_metadata: raw metadata for corresponding resource of the meter
project_id: <id of project>
resource_id: <id of resource>
user_id: <id of user>
recorded_at: <datetime when sample has been recorded (utc.now)>
flattened metadata with prefix r_metadata. e.g.:
f:r_metadata.display_name or f:r_metadata.tagrts: <reversed timestamp of entry>
timestamp: <meter’s timestamp (came from message)>
source for meter with prefix ‘s’
resource:
row_key: uuid of resource
Column Families:
f: contains the following qualifiers:
resource_metadata: raw metadata for corresponding resource
project_id: <id of project>
resource_id: <id of resource>
user_id: <id of user>
flattened metadata with prefix r_metadata. e.g.:
f:r_metadata.display_name or f:r_metadata.tagsources for all corresponding meters with prefix ‘s’
all meters for this resource in format:
"%s+%s+%s!%s!%s" % (rts, source, counter_name, counter_type, counter_unit)
events:
row_key: timestamp of event’s generation + uuid of event in format: “%s+%s” % (ts, Event.message_id)
Column Families:
f: contains the following qualifiers:
event_type: description of event’s type
timestamp: time stamp of event generation
all traits for this event in format:
"%s+%s" % (trait_name, trait_type)
Return all event types as an iterable of strings.
Return an iter of models.Event objects.
Parameters: | event_filter – storage.EventFilter object, consists of filters for events that are stored in database. |
---|
Return an iterable of models.Statistics instances.
Items are containing meter statistics described by the query parameters. The filter must have a meter value set.
Note
Due to HBase limitations the aggregations are implemented in the driver itself, therefore this method will be quite slow because of all the Thrift traffic it is going to create.
Return an iterable of models.Meter instances
Parameters: |
|
---|
Return an iterable of models.Resource instances
Parameters: |
|
---|
Return an iterable of models.Sample instances.
Parameters: |
|
---|
Return a dictionary containing the name and data type of the trait.
Only trait types for the provided event_type are returned.
Parameters: | event_type – the type of the Event |
---|
Return all trait instances associated with an event_type.
If trait_type is specified, only return instances of that trait type. :param event_type: the type of the Event to filter by :param trait_type: the name of the Trait to filter by
Write the events to Hbase.
Parameters: | event_models – a list of models.Event objects. |
---|---|
Return problem_events: | |
a list of events that could not be saved in a (reason, event) tuple. From the reasons that are enumerated in storage.models.Event only the UNKNOWN_PROBLEM is applicable here. |
Write the data to the backend storage system.
Parameters: | data – a dictionary such as returned by ceilometer.meter.meter_message_from_counter |
---|