)]}'
{"doc/specs/generic-event.rst":[{"author":{"_account_id":9323,"name":"lvdongbing","email":"dongbing.lv@kylin-cloud.com","username":"lvdongbing"},"change_message_id":"41d7e57a5bd4b0b23bb8b7837d732348bfb8bbae","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Generic Event Interface and Backends"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/senlin/+spec/generic-event"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_1348b2cb","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":44},"updated":"2016-11-10 01:48:08.000000000","message":"Delete this","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":17645,"name":"Shan Guo","email":"guoshan.jolie@gmail.com","username":"guoshan"},"change_message_id":"1894d932ae8622b3f09221c0206af0c002d975ec","unresolved":false,"context_lines":[{"line_number":28,"context_line":"(and the results) should be dumped."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Currently, Senlin only has a builtin event table in database. It is"},{"line_number":31,"context_line":"accummulating very fast, it is not flexible and the content is not versioned."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"To integrate with other services, Senlin will need to generate and send"},{"line_number":34,"context_line":"notifications when certain events happen. More complex (pre-)processing can"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_4ea70a4f","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":13},"updated":"2016-11-09 09:38:42.000000000","message":"typo, accumulating","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cf0d4b3b4f217caeb1864d40bac8eaaf9a2cc2f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"(and the results) should be dumped."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Currently, Senlin only has a builtin event table in database. It is"},{"line_number":31,"context_line":"accummulating very fast, it is not flexible and the content is not versioned."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"To integrate with other services, Senlin will need to generate and send"},{"line_number":34,"context_line":"notifications when certain events happen. More complex (pre-)processing can"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_53914a46","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":13},"in_reply_to":"9a629dbe_4ea70a4f","updated":"2016-11-10 01:45:42.000000000","message":"will fix","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":22998,"name":"XueFengLiu","email":"liu.xuefeng1@zte.com.cn","username":"sgfeng"},"change_message_id":"5d198644b303ace9cf2cb0e5e4a1877c0b9066f5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"To integrate with other services, Senlin will need to generate and send"},{"line_number":34,"context_line":"notifications when certain events happen. More complex (pre-)processing can"},{"line_number":35,"context_line":"be offloaded to service dedicated to this task (e.g. Panko from Ceilomter),"},{"line_number":36,"context_line":"but the basic notifications should always come from the engine."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As Senlin evolves, changes are inevitable regarding to the content of the"},{"line_number":39,"context_line":"payload of such events and/or notifications. To best protect users investment"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_4f8c5a35","line":36,"range":{"start_line":36,"start_character":56,"end_line":36,"end_character":62},"updated":"2016-11-09 14:05:41.000000000","message":"Use \"senlin-engine\" to help some readers?","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cf0d4b3b4f217caeb1864d40bac8eaaf9a2cc2f","unresolved":false,"context_lines":[{"line_number":33,"context_line":"To integrate with other services, Senlin will need to generate and send"},{"line_number":34,"context_line":"notifications when certain events happen. More complex (pre-)processing can"},{"line_number":35,"context_line":"be offloaded to service dedicated to this task (e.g. Panko from Ceilomter),"},{"line_number":36,"context_line":"but the basic notifications should always come from the engine."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As Senlin evolves, changes are inevitable regarding to the content of the"},{"line_number":39,"context_line":"payload of such events and/or notifications. To best protect users investment"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_d3a55aa2","line":36,"range":{"start_line":36,"start_character":56,"end_line":36,"end_character":62},"in_reply_to":"9a629dbe_4f8c5a35","updated":"2016-11-10 01:45:42.000000000","message":"it is fine because the context here is crystal clear.","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":22998,"name":"XueFengLiu","email":"liu.xuefeng1@zte.com.cn","username":"sgfeng"},"change_message_id":"5d198644b303ace9cf2cb0e5e4a1877c0b9066f5","unresolved":false,"context_lines":[{"line_number":36,"context_line":"but the basic notifications should always come from the engine."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As Senlin evolves, changes are inevitable regarding to the content of the"},{"line_number":39,"context_line":"payload of such events and/or notifications. To best protect users investment"},{"line_number":40,"context_line":"in downstream event processing, we will need to be very explicit about the"},{"line_number":41,"context_line":"content and format of each and every event/notification."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_af8a56bd","line":39,"range":{"start_line":39,"start_character":16,"end_line":39,"end_character":43},"updated":"2016-11-09 14:05:41.000000000","message":"Whether events and notifications have some different?","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cf0d4b3b4f217caeb1864d40bac8eaaf9a2cc2f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"but the basic notifications should always come from the engine."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As Senlin evolves, changes are inevitable regarding to the content of the"},{"line_number":39,"context_line":"payload of such events and/or notifications. To best protect users investment"},{"line_number":40,"context_line":"in downstream event processing, we will need to be very explicit about the"},{"line_number":41,"context_line":"content and format of each and every event/notification."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_13c35239","line":39,"range":{"start_line":39,"start_character":16,"end_line":39,"end_character":43},"in_reply_to":"9a629dbe_af8a56bd","updated":"2016-11-10 01:45:42.000000000","message":"an event becomes a notification when being sent over a message bus.","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":22998,"name":"XueFengLiu","email":"liu.xuefeng1@zte.com.cn","username":"sgfeng"},"change_message_id":"5d198644b303ace9cf2cb0e5e4a1877c0b9066f5","unresolved":false,"context_lines":[{"line_number":51,"context_line":"diversified backend implementation, aka, drivers."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Events or notifications are inherently of different criticality or severity."},{"line_number":54,"context_line":"Users should be able to filter the events by their severity easily. Similary,"},{"line_number":55,"context_line":"events or notifications are generated from different types of modules, e.g."},{"line_number":56,"context_line":"``engine``, ``profile``, ``policy``, we may want to enable an operator to"},{"line_number":57,"context_line":"specify the specific sources of events to include or exclude. Note the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_cfc6aa48","line":54,"range":{"start_line":54,"start_character":75,"end_line":54,"end_character":76},"updated":"2016-11-09 14:05:41.000000000","message":"ly","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cf0d4b3b4f217caeb1864d40bac8eaaf9a2cc2f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"diversified backend implementation, aka, drivers."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Events or notifications are inherently of different criticality or severity."},{"line_number":54,"context_line":"Users should be able to filter the events by their severity easily. Similary,"},{"line_number":55,"context_line":"events or notifications are generated from different types of modules, e.g."},{"line_number":56,"context_line":"``engine``, ``profile``, ``policy``, we may want to enable an operator to"},{"line_number":57,"context_line":"specify the specific sources of events to include or exclude. Note the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_53df8a0c","line":54,"range":{"start_line":54,"start_character":75,"end_line":54,"end_character":76},"in_reply_to":"9a629dbe_cfc6aa48","updated":"2016-11-10 01:45:42.000000000","message":"will fix.","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":15857,"name":"Xinhui Li","email":"lxinhui@vmware.com","username":"Cindia-blue"},"change_message_id":"21af7b7e636552cf95b5168c0c4ce448bba95bbd","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Users should be able to filter the events by their severity easily. Similary,"},{"line_number":55,"context_line":"events or notifications are generated from different types of modules, e.g."},{"line_number":56,"context_line":"``engine``, ``profile``, ``policy``, we may want to enable an operator to"},{"line_number":57,"context_line":"specify the specific sources of events to include or exclude. Note the"},{"line_number":58,"context_line":"source-based filtering is not a high priority requirement as we see it today."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_8c868011","line":57,"range":{"start_line":57,"start_character":12,"end_line":57,"end_character":20},"updated":"2016-11-09 13:43:37.000000000","message":"Nit: remove this and can be covered by the verb.","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cf0d4b3b4f217caeb1864d40bac8eaaf9a2cc2f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Users should be able to filter the events by their severity easily. Similary,"},{"line_number":55,"context_line":"events or notifications are generated from different types of modules, e.g."},{"line_number":56,"context_line":"``engine``, ``profile``, ``policy``, we may want to enable an operator to"},{"line_number":57,"context_line":"specify the specific sources of events to include or exclude. Note the"},{"line_number":58,"context_line":"source-based filtering is not a high priority requirement as we see it today."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_93e5a2dd","line":57,"range":{"start_line":57,"start_character":12,"end_line":57,"end_character":20},"in_reply_to":"9a629dbe_8c868011","updated":"2016-11-10 01:45:42.000000000","message":"okay","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":9323,"name":"lvdongbing","email":"dongbing.lv@kylin-cloud.com","username":"lvdongbing"},"change_message_id":"41d7e57a5bd4b0b23bb8b7837d732348bfb8bbae","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  already), it is unlikely that everyone is granted access to the raw log"},{"line_number":68,"context_line":"  files. Event logs are a replacement for raw log files."},{"line_number":69,"context_line":"- Integration with Other Software: When building a solution by integrating"},{"line_number":70,"context_line":"  Senlin with other software/services, the said service may need Senlin to"},{"line_number":71,"context_line":"  emit events of interests so that some operations can be adjusted"},{"line_number":72,"context_line":"  dynamically."},{"line_number":73,"context_line":"- Auditing: In the case where there are auditing requirements regarding"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_b39c665e","line":70,"range":{"start_line":70,"start_character":39,"end_line":70,"end_character":42},"updated":"2016-11-10 01:48:08.000000000","message":"they?","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"189b205a63f4d6069fed4817fd38562b6d9b9a50","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  already), it is unlikely that everyone is granted access to the raw log"},{"line_number":68,"context_line":"  files. Event logs are a replacement for raw log files."},{"line_number":69,"context_line":"- Integration with Other Software: When building a solution by integrating"},{"line_number":70,"context_line":"  Senlin with other software/services, the said service may need Senlin to"},{"line_number":71,"context_line":"  emit events of interests so that some operations can be adjusted"},{"line_number":72,"context_line":"  dynamically."},{"line_number":73,"context_line":"- Auditing: In the case where there are auditing requirements regarding"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_0e05e912","line":70,"range":{"start_line":70,"start_character":39,"end_line":70,"end_character":42},"in_reply_to":"9a629dbe_b39c665e","updated":"2016-11-10 03:00:20.000000000","message":"no.\n\nThe \"said\" here is an adjective. It means \"above-mentioned\".","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"6a5c8b4c87a5a741fe8b6ed9b6870c2186162cbc","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  user behavior analysis or resource usage tracking, a history of user"},{"line_number":75,"context_line":"  operations would be very helpful to conduct this kind of analysis."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"What are the impacts on actors (developer, end user, deployer etc.)?"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Proposed change"},{"line_number":80,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_fa252fc2","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":68},"updated":"2016-11-08 10:04:00.000000000","message":"delete this, :)","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"7dd66a4e9690e87c03a622086838ec789a6610b8","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Proposed change"},{"line_number":80,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Add an interface definition for event logging and notification. This will be"},{"line_number":83,"context_line":"an unified interface for all backends. The interface is a generalization of"},{"line_number":84,"context_line":"the existing event dumping support."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_aee07dfb","line":82,"range":{"start_line":82,"start_character":50,"end_line":82,"end_character":62},"updated":"2016-11-10 03:45:50.000000000","message":"notifying?","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cc94005e0a40924c976cf6590871c878f669ae9","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Proposed change"},{"line_number":80,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Add an interface definition for event logging and notification. This will be"},{"line_number":83,"context_line":"an unified interface for all backends. The interface is a generalization of"},{"line_number":84,"context_line":"the existing event dumping support."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_b8819ec5","line":82,"range":{"start_line":82,"start_character":50,"end_line":82,"end_character":62},"in_reply_to":"9a629dbe_aee07dfb","updated":"2016-11-10 05:18:17.000000000","message":"notify is a transitive verb. For \"notify\", notification is its noun form. This is different from log, where logging is the noun from for \"creating log\".","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"7dd66a4e9690e87c03a622086838ec789a6610b8","unresolved":false,"context_lines":[{"line_number":93,"context_line":"the ``oslo.messaging`` package. We will learn from the versioned notification"},{"line_number":94,"context_line":"design from Nova but we are going one step further."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Add filters for event/notification generation, regarding the sererity and the"},{"line_number":97,"context_line":"source. Expose these filters as configurable options in ``senlin.conf``."},{"line_number":98,"context_line":"These filters (among others) may deserve a new section, but we will decide"},{"line_number":99,"context_line":"when we are there."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_ae85dd07","line":96,"updated":"2016-11-10 03:45:50.000000000","message":"So this filter is like a \u0027switch\u0027 inside Senlin engine which can be used to control what kind of events we will log/notify?","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cc94005e0a40924c976cf6590871c878f669ae9","unresolved":false,"context_lines":[{"line_number":93,"context_line":"the ``oslo.messaging`` package. We will learn from the versioned notification"},{"line_number":94,"context_line":"design from Nova but we are going one step further."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Add filters for event/notification generation, regarding the sererity and the"},{"line_number":97,"context_line":"source. Expose these filters as configurable options in ``senlin.conf``."},{"line_number":98,"context_line":"These filters (among others) may deserve a new section, but we will decide"},{"line_number":99,"context_line":"when we are there."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_38766e06","line":96,"in_reply_to":"9a629dbe_ae85dd07","updated":"2016-11-10 05:18:17.000000000","message":"refer to the Event.info(), Event.Warn() methods we have today ... it doesn\u0027t have to be a \u0027switch\u0027 statement. This is for severity.\n\nAs for source, we may want to do expression matching. The idea is something like this (from oslo.log):\n\n  default_log_level\u003d[\u0027amqp\u003dWARN\u0027, \u0027amqplib\u003dWARN\u0027, \u0027boto\u003dWARN\u0027, \u0027qpid\u003dWARN\u0027, \u0027sqlalchemy\u003dWARN\u0027, \u0027suds\u003dINFO\u0027, \u0027oslo.messaging\u003dINFO\u0027, \u0027iso8601\u003dWARN\u0027, \u0027requests.packages.urllib3.connectionpool\u003dWARN\u0027, \u0027urllib3.connectionpool\u003dWARN\u0027, \u0027websocket\u003dWARN\u0027, \u0027requests.packages.urllib3.util.retry\u003dWARN\u0027, \u0027urllib3.util.retry\u003dWARN\u0027, \u0027keystonemiddleware\u003dWARN\u0027, \u0027routes.middleware\u003dWARN\u0027, \u0027stevedore\u003dWARN\u0027, \u0027taskflow\u003dWARN\u0027, \u0027keystoneauth\u003dWARN\u0027, \u0027oslo.cache\u003dINFO\u0027, \u0027dogpile.core.dogpile\u003dINFO\u0027]","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"7d97915e29fca84af0e4b834a9b16e178704eb65","unresolved":false,"context_lines":[{"line_number":98,"context_line":"These filters (among others) may deserve a new section, but we will decide"},{"line_number":99,"context_line":"when we are there."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Add stevedore plugin loading support to logging, with the database store and"},{"line_number":102,"context_line":"messaging notification set as default. We may add a ``json file`` backend"},{"line_number":103,"context_line":"for demonstration\u0027s purpose, but that is optional. The backend of event"},{"line_number":104,"context_line":"logging (and notification) will be exposed as a multi-string configuration"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_8eae597f","line":101,"range":{"start_line":101,"start_character":67,"end_line":101,"end_character":72},"updated":"2016-11-10 02:42:25.000000000","message":"storing","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"189b205a63f4d6069fed4817fd38562b6d9b9a50","unresolved":false,"context_lines":[{"line_number":98,"context_line":"These filters (among others) may deserve a new section, but we will decide"},{"line_number":99,"context_line":"when we are there."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Add stevedore plugin loading support to logging, with the database store and"},{"line_number":102,"context_line":"messaging notification set as default. We may add a ``json file`` backend"},{"line_number":103,"context_line":"for demonstration\u0027s purpose, but that is optional. The backend of event"},{"line_number":104,"context_line":"logging (and notification) will be exposed as a multi-string configuration"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_0e57a926","line":101,"range":{"start_line":101,"start_character":67,"end_line":101,"end_character":72},"in_reply_to":"9a629dbe_8eae597f","updated":"2016-11-10 03:00:20.000000000","message":"fine.","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"7dd66a4e9690e87c03a622086838ec789a6610b8","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Security impact"},{"line_number":129,"context_line":"---------------"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"One thing we not so sure is where to draw the line between \"proper\" and"},{"line_number":132,"context_line":"\"excessive\" dumping of events. We will need some profiling when trading things"},{"line_number":133,"context_line":"off."},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_a29c1110","line":131,"updated":"2016-11-10 03:45:50.000000000","message":"we are not so sure","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cc94005e0a40924c976cf6590871c878f669ae9","unresolved":false,"context_lines":[{"line_number":128,"context_line":"Security impact"},{"line_number":129,"context_line":"---------------"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"One thing we not so sure is where to draw the line between \"proper\" and"},{"line_number":132,"context_line":"\"excessive\" dumping of events. We will need some profiling when trading things"},{"line_number":133,"context_line":"off."},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_b858be8b","line":131,"in_reply_to":"9a629dbe_a29c1110","updated":"2016-11-10 05:18:17.000000000","message":"This has to be decided case by case.\n\nWe had a definition of event levels and we will try to follow that definition closely.","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"7dd66a4e9690e87c03a622086838ec789a6610b8","unresolved":false,"context_lines":[{"line_number":157,"context_line":"------------------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* An overloaded message queue may lead to slower response of senlin-engine?"},{"line_number":160,"context_line":"  Not quite sure."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* A overloaded DBMS may slow down the senlin-engine."},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_c26bc5ef","line":160,"updated":"2016-11-10 03:45:50.000000000","message":"May need cache if there is performance issue?","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cc94005e0a40924c976cf6590871c878f669ae9","unresolved":false,"context_lines":[{"line_number":157,"context_line":"------------------"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* An overloaded message queue may lead to slower response of senlin-engine?"},{"line_number":160,"context_line":"  Not quite sure."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* A overloaded DBMS may slow down the senlin-engine."},{"line_number":163,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_78f0e667","line":160,"in_reply_to":"9a629dbe_c26bc5ef","updated":"2016-11-10 05:18:17.000000000","message":"for event notification, I don\u0027t think caching is appropriate. We cannot control the expiration of cached notifications. There is not simple naive cache implementation that can help solve performance problems while preserving other QoS properties.\n\nFor example, a user may complain: \"the cluster check failure event arrived too late for our software to react. A check failure is of very high priority in our case. We would like to cope with it immediately...\"","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"7d97915e29fca84af0e4b834a9b16e178704eb65","unresolved":false,"context_lines":[{"line_number":162,"context_line":"* A overloaded DBMS may slow down the senlin-engine."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"* High frequency of event generation, based on common sense, will impact the"},{"line_number":165,"context_line":"  service performance."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Other deployer impact"},{"line_number":168,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_ceddb1e1","line":165,"updated":"2016-11-10 02:42:25.000000000","message":"That is a big concern, especially when thousands of vms running","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"189b205a63f4d6069fed4817fd38562b6d9b9a50","unresolved":false,"context_lines":[{"line_number":162,"context_line":"* A overloaded DBMS may slow down the senlin-engine."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"* High frequency of event generation, based on common sense, will impact the"},{"line_number":165,"context_line":"  service performance."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Other deployer impact"},{"line_number":168,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_223ac1cc","line":165,"in_reply_to":"9a629dbe_ceddb1e1","updated":"2016-11-10 03:00:20.000000000","message":"right...\n\nBut in those cases, we may have already suffer from bottlenecks elsewhere already. Logging should not be the sole problem.\n\nEvent generation are only concerning with senlin-engine operations, not VM activities. That is, we are not managing VM events per-se.","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":22998,"name":"XueFengLiu","email":"liu.xuefeng1@zte.com.cn","username":"sgfeng"},"change_message_id":"5d198644b303ace9cf2cb0e5e4a1877c0b9066f5","unresolved":false,"context_lines":[{"line_number":167,"context_line":"Other deployer impact"},{"line_number":168,"context_line":"---------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"There is no new dependency to other packages planned."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"There will be several new config options added. We will make them as generic"},{"line_number":173,"context_line":"as possible because the infrastructure proposed is a generic one. We will"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_ca0f782c","line":170,"range":{"start_line":170,"start_character":0,"end_line":170,"end_character":53},"updated":"2016-11-09 14:05:41.000000000","message":"This is good:)","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":22998,"name":"XueFengLiu","email":"liu.xuefeng1@zte.com.cn","username":"sgfeng"},"change_message_id":"5d198644b303ace9cf2cb0e5e4a1877c0b9066f5","unresolved":false,"context_lines":[{"line_number":205,"context_line":"- Abstract class (interface) for logging;"},{"line_number":206,"context_line":"- Rebase event dumping module onto this interface;"},{"line_number":207,"context_line":"- Versioned objects for existing events;"},{"line_number":208,"context_line":"- Driver for dumping events (thus become notifications) to message queue;"},{"line_number":209,"context_line":"- Dynamic loading of both backends (database and message);"},{"line_number":210,"context_line":"- Configuration options for backend selection and customization;"},{"line_number":211,"context_line":"- Documentation of event formats;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_6f459e6e","line":208,"range":{"start_line":208,"start_character":21,"end_line":208,"end_character":56},"updated":"2016-11-09 14:05:41.000000000","message":"Seems here is the answer about events and notifications?","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"7d97915e29fca84af0e4b834a9b16e178704eb65","unresolved":false,"context_lines":[{"line_number":205,"context_line":"- Abstract class (interface) for logging;"},{"line_number":206,"context_line":"- Rebase event dumping module onto this interface;"},{"line_number":207,"context_line":"- Versioned objects for existing events;"},{"line_number":208,"context_line":"- Driver for dumping events (thus become notifications) to message queue;"},{"line_number":209,"context_line":"- Dynamic loading of both backends (database and message);"},{"line_number":210,"context_line":"- Configuration options for backend selection and customization;"},{"line_number":211,"context_line":"- Documentation of event formats;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_ce56915b","line":208,"range":{"start_line":208,"start_character":21,"end_line":208,"end_character":56},"in_reply_to":"9a629dbe_6f459e6e","updated":"2016-11-10 02:42:25.000000000","message":"It seems the logs and notifications are both stored to DB or files or other backends, will the notifications be sent to somewhere? In other words if other services utilize this notification there will be PULL or PUSH type?","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"3cf0d4b3b4f217caeb1864d40bac8eaaf9a2cc2f","unresolved":false,"context_lines":[{"line_number":205,"context_line":"- Abstract class (interface) for logging;"},{"line_number":206,"context_line":"- Rebase event dumping module onto this interface;"},{"line_number":207,"context_line":"- Versioned objects for existing events;"},{"line_number":208,"context_line":"- Driver for dumping events (thus become notifications) to message queue;"},{"line_number":209,"context_line":"- Dynamic loading of both backends (database and message);"},{"line_number":210,"context_line":"- Configuration options for backend selection and customization;"},{"line_number":211,"context_line":"- Documentation of event formats;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_f3f7be88","line":208,"range":{"start_line":208,"start_character":21,"end_line":208,"end_character":56},"in_reply_to":"9a629dbe_6f459e6e","updated":"2016-11-10 01:45:42.000000000","message":"yes I think so. May clarify this in next patchset.","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"189b205a63f4d6069fed4817fd38562b6d9b9a50","unresolved":false,"context_lines":[{"line_number":205,"context_line":"- Abstract class (interface) for logging;"},{"line_number":206,"context_line":"- Rebase event dumping module onto this interface;"},{"line_number":207,"context_line":"- Versioned objects for existing events;"},{"line_number":208,"context_line":"- Driver for dumping events (thus become notifications) to message queue;"},{"line_number":209,"context_line":"- Dynamic loading of both backends (database and message);"},{"line_number":210,"context_line":"- Configuration options for backend selection and customization;"},{"line_number":211,"context_line":"- Documentation of event formats;"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_424a5556","line":208,"range":{"start_line":208,"start_character":21,"end_line":208,"end_character":56},"in_reply_to":"9a629dbe_ce56915b","updated":"2016-11-10 03:00:20.000000000","message":"I was trying to define \"notifications\" as an alias of \"events\". The only difference is that \"notifications\" are used to reference the \"events\" that are sent over message queues for other services (to subscribe).\n\nWe don\u0027t define/mandate how those services will consume them.","commit_id":"970ba277c8b0b2bbce5cc95f00b5ffeb6fcb2b56"},{"author":{"_account_id":9323,"name":"lvdongbing","email":"dongbing.lv@kylin-cloud.com","username":"lvdongbing"},"change_message_id":"2279259cb1de1eb9742c61a3cdbc4d1940bd0de8","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Keep the event generation and notification separate. This seems a duplication"},{"line_number":115,"context_line":"of a lot logic. From the source location where you want to fire an event and"},{"line_number":116,"context_line":"also a log and also a notification, you may have to do three calls."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Data model impact"},{"line_number":119,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a629dbe_42197521","line":116,"range":{"start_line":116,"start_character":17,"end_line":116,"end_character":65},"updated":"2016-11-10 03:10:01.000000000","message":"Maybe we can make a common util to deal such situation, not do three calls everywhere explicitly.","commit_id":"cd563e713dce5b5b5863a76bd4cef866cd04c1fb"},{"author":{"_account_id":9323,"name":"lvdongbing","email":"dongbing.lv@kylin-cloud.com","username":"lvdongbing"},"change_message_id":"1a181ea37d81075860d41449307e3fd97f61d695","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Keep the event generation and notification separate. This seems a duplication"},{"line_number":115,"context_line":"of a lot logic. From the source location where you want to fire an event and"},{"line_number":116,"context_line":"also a log and also a notification, you may have to do three calls."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Data model impact"},{"line_number":119,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a629dbe_02421dae","line":116,"range":{"start_line":116,"start_character":17,"end_line":116,"end_character":65},"in_reply_to":"9a629dbe_227c811e","updated":"2016-11-10 03:29:11.000000000","message":"Thanks for explanation, got it","commit_id":"cd563e713dce5b5b5863a76bd4cef866cd04c1fb"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"484a0d9d2619117ef30cac6fa1992b9eafbcaed4","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Keep the event generation and notification separate. This seems a duplication"},{"line_number":115,"context_line":"of a lot logic. From the source location where you want to fire an event and"},{"line_number":116,"context_line":"also a log and also a notification, you may have to do three calls."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Data model impact"},{"line_number":119,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a629dbe_227c811e","line":116,"range":{"start_line":116,"start_character":17,"end_line":116,"end_character":65},"in_reply_to":"9a629dbe_42197521","updated":"2016-11-10 03:17:39.000000000","message":"this spec is about a generic interface which you can call when you want to log something, e.g.\n\n  EVENT.info(source, payload)\n\nBased on user config, the implementation will write a log entry, maybe also create a DB record, maybe also send an event notification. All three operations are orthogonal to each other. Like this:\n\nhttp://git.openstack.org/cgit/openstack/senlin/tree/senlin/engine/event.py#n154\n\nWe currently only converged log file and DB operation. With this spec, we are adding notification into the family of backends.","commit_id":"cd563e713dce5b5b5863a76bd4cef866cd04c1fb"}]}
