[Openstack] [Ceilometer][Architecture] Transformers in Kilo vs Liberty(and Mitaka)
Chris Dent
cdent+os at anticdent.org
Tue Apr 12 14:00:50 UTC 2016
On Tue, 12 Apr 2016, Nadya Shakhat wrote:
> I'd like to discuss one question with you. Perhaps, you remember that
> in Liberty we decided to get rid of transformers on polling agents [1]. I'd
> like to describe several issues we are facing now because of this decision.
> 1. pipeline.yaml inconsistency.
The original idea with centralizing the transformers to just the
notification agents was to allow a few different things, only one of
which has happened:
* Make the pollster code less complex with few dependencies,
easing deployment options (this has happened), maintenance
and custom pollsters.
With the transformers in the pollsters they must maintain a
considerable amount of state that makes effective use of eventlet
(or whatever the chosen concurrent solution is) more difficult.
The ideal pollster is just something that spits out a dumb piece
of identified data every interval. And nothing else.
* Make it far easier to use and conceptualize the use of pollsters
outside of the ceilometer environment as simple data collectors.
In that context transformation would occur only close to the data
consumption not at the data production.
This, following the good practice of services doing one thing
well.
* Migrate away from the pipeline.yaml that conflated sources and
sinks to a model that is good both for computers and humans:
* sources over here
* sinks over here
That these other things haven't happened means we're in an awkward
situation.
Are the options the following?
* Do what you suggest and pull transformers back into the pollsters.
Basically revert the change. I think this is the wrong long term
solution but might be the best option if there's nobody to do the
other options.
* Implement a pollster.yaml for use by the pollsters and consider
pipeline.yaml as the canonical file for the notification agents as
there's where the actual _pipelines_ are. Somewhere in there kill
interval as a concept on pipeline side.
This of course doesn't address the messaging complexity. I admit
that I don't understand all the issues there but it often feels
like we are doing that aspect of things completely wrong, so I
would hope that before we change things there we consider all the
options.
What else?
One probably crazy idea: What about figuring out the desired end-meters
of common transformations and making them into dedicated pollsters?
Encapsulating that transformation not at the level of the polling
manager but at the individual pollster.
--
Chris Dent (╯°□°)╯︵┻━┻ http://anticdent.org/
freenode: cdent tw: @anticdent
More information about the Openstack
mailing list