<div dir="ltr">Thanks gordon.<div><br></div><div>I am using Mitaka version.</div><div><br></div><div>And yes I have known that ceilometer notification agent will listen for the notification topics, but my question is which file/class will do it.</div><div>When I am debugging the code, at the first time when the event send out to ceilometer exchange notification topic, EventsNotificationEndpoint  in event/endpoint.py will handle it, however, when I send the same event again, with log/pdb enabled, the event is not processed in EventsNotificationEndpoint any more, and I can't find where it is done. It looks so weird or maybe that is by design for some reason? The behavior is same with/without definition in event_definition.yaml</div><div><br></div><div>So I wonder how is different for the workflow by sending same events twice.</div><div><br></div><div><br></div><div>Thanks. </div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 20, 2017 at 6:11 AM, gordon chung <span dir="ltr"><<a href="mailto:gord@live.ca" target="_blank">gord@live.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-"><br>
<br>
On 19/04/17 03:05 PM, Hui Xiang wrote:<br>
> Hi folks,<br>
><br>
>   I am posting some self-defined events to amqp ceilometer exchange<br>
> notification topic, during the debug session, I find that at the first<br>
> time, event are arriving at notification bus as the AMQPIncomingMessage,<br>
> and then handled by EventsNotificationEndpoint() , however, the second<br>
> time, neither the AMQPIncomingMessage or the EventsNotificationEndpoint<br>
> can see it, but it does can list from ceilometer event-list. So I wonder<br>
> how is the event processing with the same event type?<br>
><br>
<br>
</span>not sure what version you are using, but basic workflow since mitaka (i<br>
think) is the notification agent listens to 'notifications.*' topics on<br>
specific exchanges (including) ceilometer. for events, it attempts to<br>
match incoming message against known events[1]. it will build event<br>
based on definition. if there is no, definition, it will create a sparse<br>
event with a few attributes. from there it is processed according to<br>
pipeline[2]. you'll noticed by default it pushes to gnocchi so it won't<br>
get stored in ceilometer/panko storage. you can edit it accordingly.<br>
<br>
[1]<br>
<a href="https://github.com/openstack/ceilometer/blob/master/ceilometer/pipeline/data/event_definitions.yaml" rel="noreferrer" target="_blank">https://github.com/openstack/<wbr>ceilometer/blob/master/<wbr>ceilometer/pipeline/data/<wbr>event_definitions.yaml</a><br>
[2]<br>
<a href="https://github.com/openstack/ceilometer/blob/master/ceilometer/pipeline/data/event_pipeline.yaml" rel="noreferrer" target="_blank">https://github.com/openstack/<wbr>ceilometer/blob/master/<wbr>ceilometer/pipeline/data/<wbr>event_pipeline.yaml</a><br>
<br>
cheers,<br>
<span class="gmail-HOEnZb"><font color="#888888">--<br>
gord<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
</font></span></blockquote></div><br></div></div></div>