diff options
author | gord chung <gord@live.ca> | 2018-01-12 14:15:24 +0000 |
---|---|---|
committer | Kevin Tibi <kevintibi@hotmail.com> | 2018-03-20 14:12:48 +0000 |
commit | ff72f0f1d3f4bf0b6147ac1f14ebbc5234789a57 (patch) | |
tree | e3f011d622afa4eae492c805f1243e262950afd7 | |
parent | ddc421df5a7a4c77af9440c81fc583e1603ed2af (diff) | |
download | ceilometer-ff72f0f1d3f4bf0b6147ac1f14ebbc5234789a57.tar.gz |
ignore compute.instance.create.start for metrics
do not build metrics off compute.instance.create.start as it
doesn't have enough information in it to push to Gnocchi. there is
an .end event that happens seconds later so .start event has little
value outside context of event.
we change fnmatch to regex for more useful regex comparison and it's
faster
not a complete fix as compute.instance.update also is missing host
value occasionally
Partial-Bug: #1718290
Change-Id: I2aa7045873fd740255a3be5f64b9e9f5fd94e2d4
(cherry picked from commit 3a5fd619fabd1380290f39e8677b255db01158a1)
-rw-r--r-- | ceilometer/data/meters.d/meters.yaml | 8 | ||||
-rw-r--r-- | ceilometer/meter/notifications.py | 5 |
2 files changed, 7 insertions, 6 deletions
diff --git a/ceilometer/data/meters.d/meters.yaml b/ceilometer/data/meters.d/meters.yaml index fd81e1a4..468d9437 100644 --- a/ceilometer/data/meters.d/meters.yaml +++ b/ceilometer/data/meters.d/meters.yaml @@ -101,7 +101,7 @@ metric: lookup: ['name', 'unit', 'volume'] - name: 'memory' - event_type: 'compute.instance.*' + event_type: &instance_events compute.instance.(?!create.start).* type: 'gauge' unit: 'MB' volume: $.payload.memory_mb @@ -118,7 +118,7 @@ metric: image_ref: $.payload.image_meta.base_image_ref - name: 'vcpus' - event_type: 'compute.instance.*' + event_type: *instance_events type: 'gauge' unit: 'vcpu' volume: $.payload.vcpus @@ -143,7 +143,7 @@ metric: <<: *instance_meta - name: 'disk.root.size' - event_type: 'compute.instance.*' + event_type: *instance_events type: 'gauge' unit: 'GB' volume: $.payload.root_gb @@ -155,7 +155,7 @@ metric: <<: *instance_meta - name: 'disk.ephemeral.size' - event_type: 'compute.instance.*' + event_type: *instance_events type: 'gauge' unit: 'GB' volume: $.payload.ephemeral_gb diff --git a/ceilometer/meter/notifications.py b/ceilometer/meter/notifications.py index d55c1483..47370b7d 100644 --- a/ceilometer/meter/notifications.py +++ b/ceilometer/meter/notifications.py @@ -13,13 +13,13 @@ import glob import itertools import os +import re import pkg_resources import six from oslo_config import cfg from oslo_log import log -from oslo_utils import fnmatch from stevedore import extension from ceilometer import declarative @@ -72,6 +72,7 @@ class MeterDefinition(object): self._event_type = self.cfg.get('event_type') if isinstance(self._event_type, six.string_types): self._event_type = [self._event_type] + self._event_type = [re.compile(etype) for etype in self._event_type] if ('type' not in self.cfg.get('lookup', []) and self.cfg['type'] not in sample_util.TYPES): @@ -107,7 +108,7 @@ class MeterDefinition(object): def match_type(self, meter_name): for t in self._event_type: - if fnmatch.fnmatch(meter_name, t): + if t.match(meter_name): return True def to_samples(self, message, all_values=False): |