diff --git a/ceilometerdemo/pollster/__init__.py b/ceilometerdemo/pollster/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ceilometerdemo/pollster/first.py b/ceilometerdemo/pollster/first.py new file mode 100644 index 0000000..f2eba13 --- /dev/null +++ b/ceilometerdemo/pollster/first.py @@ -0,0 +1,31 @@ +from ceilometer.agent import plugin_base +from ceilometer import sample +from oslo_log import log +from oslo_utils import timeutils + +LOG = log.getLogger(__name__) + + +class MyFirstPollster(plugin_base.PollsterBase): + @property + def default_discovery(self): + return "demo.discoverer" + + def get_samples(self, manager, cache, resources): + for res in resources: + LOG.info('Generating sample for resource %s', res) + yield sample.Sample(name='demo.pollstermeter', + type=sample.TYPE_GAUGE, + unit='B', + volume=0.5, + user_id=None, + project_id=None, + resource_id=str(res), + timestamp=timeutils.utcnow().isoformat(), + resource_metadata=None, + source='demo') + + +class MyFirstDiscoverer(plugin_base.DiscoveryBase): + def discover(self, manager, param=None): + return ['demo://fake_resource'] diff --git a/etc/demo_pipeline.yaml b/etc/demo_pipeline.yaml new file mode 100644 index 0000000..74c4eff --- /dev/null +++ b/etc/demo_pipeline.yaml @@ -0,0 +1,18 @@ +--- +sources: + - name: demo + interval: 60 + resources: + - demo://static_res1 + - demo://static_res2 + discovery: + - demo.discoverer + meters: + - "demo.pollstermeter" + sinks: + - file_sink +sinks: + - name: file_sink + transformers: + publishers: + - file:///tmp/demo.pollstermeter diff --git a/requirements.txt b/requirements.txt index 30806d5..28146c4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,5 @@ # process, which may cause wedges in the gate later. pbr>=1.6 +oslo.log +oslo.utils diff --git a/setup.cfg b/setup.cfg index bcbca86..711e04d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -23,6 +23,13 @@ classifier = packages = ceilometerdemo +[entry_points] +ceilometer.poll.central = + demo.pollstermeter = ceilometerdemo.pollster.first:MyFirstPollster + +ceilometer.discover = + demo.discoverer = ceilometerdemo.pollster.first:MyFirstDiscoverer + [build_sphinx] source-dir = doc/source build-dir = doc/build