<br><br><div class="gmail_quote">On Sat, Jan 5, 2013 at 8:03 AM, Jiang, Yunhong <span dir="ltr"><<a href="mailto:yunhong.jiang@intel.com" target="_blank">yunhong.jiang@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi, Doug<br>
As a follow--up with you on the counter frequency discussion, I create a wiki page at <a href="http://wiki.openstack.org/Ceilometer/blueprints/publisher-counters-frequency" target="_blank">http://wiki.openstack.org/Ceilometer/blueprints/publisher-counters-frequency</a> . Please have a look on it.<br>
</blockquote><div><br></div><div>This feels a little more complicated than should be necessary to meet the requirements we have.</div><div><br></div><div>First, lets constrain each pipeline to go to a single publisher. The transformers have mostly been described as publisher-specific anyway (formatting the data in a particular way, for example), so I think in practice we are likely to only have one publisher per pipeline anyway. If this proves to be wrong, we can change it later to allow more than one publisher, but starting with one will give us an easier target to hit now.</div>
<div><br></div><div>Second, the interval should be a property of the pipeline rather than a transformer or counter. There are two reasons for that change: (1) each pipeline must have an interval, but if we leave it up to the transformer a user may configure a pipeline without that type of transformer in place and (2) all of the data flowing through the pipeline (the counters) should be collected at the same interval to give the pipeline a simple operating model for the user to understand it ("every N seconds this pipeline collects data from these sources and publishes it to this destination").</div>
<div><br></div><div>If we make those changes, then we only need to schedule timers for each unique interval value. When a timer goes off, data for the counters for all of the pipelines with that interval can be collected and sent into the appropriate pipelines. We can do some caching to avoid collecting the same data over and over if multiple pipelines want the same counters, but that's an optimization we can make after we have the basic logic working correctly.</div>
<div><br></div><div>Doug</div><div><br></div></div>