Fix MongoDB backward compat wrt units

Fixes: bug#1193908

Change-Id: I9f4f2ec6cbec424279149b82704f88cad9c740b8
Signed-off-by: Julien Danjou <julien@danjou.info>
ceilometer tests need to be enabled/cleaned

- re-enable a bunch of tests that currently aren't being discovered
and thus never run.
- delete notificationclient and its tests since no one uses it.

Change-Id: I50ad04bc22b06c718ce47052c64c95165e54efe8
Fixes: Bug#1197545
publisher.rpc: make per counter topic optional

Fixes: bug#1133206

Change-Id: Id56b4f367647f313de23b639991827723cb18d47
Transformer to convert between units.

Partially addresses BP transformer-unit

Provide a new transformer to apply scaling conversions, either
replacing or emitted in addition to the original sample.

The target counters are identified either by name or by unit.

The scaling can be expressed as either a straight multiplicative
factor or as a string expression to be eval'd.

Configured as per usual via the pipeline.yaml, for example:

    ...
    transformers:
        - name: "unit_conversion"
          parameters:
              source:
                  unit: "°C"
              target:
                  unit: "°F"
                  scale: "(volume * 1.8) + 32"
              replace: True

Change-Id: I4c3f64376c6f994afd0b1a25dc399daabe2a2ec5
Fix issue with pip installing oslo.config-1.2.0

Fixes: #1199193

Change-Id: Ibd65e80d135d8e2d0f6235ed8e2522b7aac9aa19
Optionally store Events in Collector.

Blueprint collector-stores-events

This will store the raw event in the Events table if enabled.

There are a few caveats:
1. It seems somewhere in the rpc layer is eating any exception
   being raised from the notification handler, so the ack() handling
   code isn't being reached. This will need to be fixed in oslo.

2. notification delivery_info is being stripped from the notification
   before the handler is called. This means we can't get any routing
   info on the notification (which queue did it come in on, for example).
   Again, this will need to be fixed in oslo.

3. The raw json of the event is not currently stored. The model will need
   to be extended to support this. Next.

Change-Id: Id4687e075e04278d1db6e8acc805c3fed2bd07bb
Implement a basic alarm notification service

Change-Id: I74b28a8754a9541981ed8e8f27cd05ceb43c3776
Blueprint: alarm-notifier
Merge "Fix issue with pip installing oslo.config-1.2.0"
Break up compute pollsters

Break the compute pollsters up into separate plugins.  This is
submitted as one patch for all of the compute pollsters because
they are moved into a new package to make the files a little easier
to manage.

blueprint one-meter-per-plugin

Change-Id: Ibc6a9c3f73594c94b578f4229e1f9e9c941c7f4f
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Separate power and energy pollsters

blueprint one-meter-per-plugin

Change-Id: I30c9b49df6ed7bc5b3a55323624040b28c8ad929
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Make visual coding style consistent

Addresses comments on https://review.openstack.org/#/c/35407/
without rebasing the entire chain.

Change-Id: Ia24ff06dd4befc1af6f9479afdfbeb5bb06387ce
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Split up the glance pollsters

blueprint one-meter-per-plugin

Change-Id: Icba76d1e453f68c064b99ae6ca7529fa94cb824e
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Break up the swift pollsters

This change also adds a test dependency on testscenarios,
a library for reusing test class definitions for parameterized
tests.

blueprint one-meter-per-plugin

Change-Id: I0e1e0e4e225261598cc28d2e3335be6f163bbc85
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Make sure plugins are named after their meters

Update the floating ip plugin name.

The instance_flavor plugin can't really be named for
its meter, so leave that one alone.

blueprint one-meter-per-plugin

Change-Id: I28cdb555893edc668309d585c8a4d638cd0ca321
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Merge "Transformer to convert between units."
Transformer to measure rate of change

Addresses BP transformer-unit

Provide a new transformer to emit derived counters that represent
the rate of change of existing counters, by retaining the previous
volume and timestamp.

This transformer will supercede the direct emission of derived counters
by pollsters (e.g. cpu_util calculated by the compute CPUPollster).

The target counters are identified either by name.

The scaling can be expressed as either a straight multiplicative
factor or as a string expression to be eval'd.

Configured as per usual via the pipeline.yaml, for example:

    counters:
        - "cpu"
    transformers:
        - name: "rate_of_change"
          parameters:
              target:
                  name: "cpu_util"
                  unit: "%"
                  type: "gauge"
                  scale: "100.0 * (10**9 / resource_metadata.get('cpu_number', 1))"
              replace: False

Change-Id: I0affa8d13a4fd72db08f818db809023d2f74217a
Merge "Implement a basic alarm notification service"
Merge "publisher.rpc: make per counter topic optional"
Merge "Break up compute pollsters"
Merge "Separate power and energy pollsters"