[openstack-dev] [nova] Versioned notifications... who cares about the version?

gord chung gord at live.ca
Fri Nov 20 18:32:02 UTC 2015



On 20/11/15 11:33 AM, Alexis Lee wrote:
> gord chung said on Thu, Nov 19, 2015 at 11:59:33PM -0500:
>> just to clarify, the idea doesn't involve tailoring the notification
>> payload to ceilometer, just that if a producer is producing a
>> notification it knows contains a useful datapoint, the producer
>> should tell someone explicitly 'this datapoint exists'.
> I know very little about Nova notifications or Ceilometer, so stepping
> wildly into the unknown here but... why would a producer spit out
> non-useful datapoints? If no-one cares or will ever care, it simply
> shouldn't be included.
fully agree.

it seems like even before addressing versioning, that the notification 
paradigm itself should be discussed. right now the producer is just 
sending out a grab bag of data that it thinks is important but doesn't 
define who the audience is. while that makes it extremely flexible so 
that anyone can consume the message, it also guarantees nothing (not 
even that it's being consumed). you can version a payload or make a 
schema accessible as much as you like but if no one is listening or the 
data published isn't useful to those listening, it's just noise.

i think a lot of the complexity we have in versioning is that the 
projects are too silo'd. i think some of the versioning issues would be 
irrelevant if the producer knew it's consumers before sending rather 
than producers just tossing out a chunk of data (versioned schema or 
not) and considering their job complete once it leaves it's own walls. 
the producer doesn't necessarily have to be the individual project teams 
but whoever the producer of notifications is, it should know it's audience.

>
> The problem is knowing what each consumer thinks is interesting and that
> isn't something that can be handled by the producer. If Ceilometer is
> just a pipeline that has no opinion on what's relevant and what isn't,
> that's a special case easily implemented by an identity function.
the notification consumption service in ceilometer is essentially just a 
pipeline that normalises select incoming notifications into a data 
model(s) and pushes that model to whoever wants it (a known consumer is 
the storage service but it's configurable to allow other consumers).

cheers,

-- 
gord




More information about the OpenStack-dev mailing list