)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e82237c423c9f9ae78648a8eb7790f502bc8501c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Central Agent High Availability in Active/Active State"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The central agent (a.k.a. pollster) is responsible of gathering data from a"},{"line_number":10,"context_line":"variety of services and publish them to the queue infrastructure. This"},{"line_number":11,"context_line":"component must be deployed and run as a single instance on all the cloud IaaS"},{"line_number":12,"context_line":"making it hard to achieve reliably high availability."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1ae5cdf2_35f0fb90","line":9,"updated":"2014-06-24 18:48:34.000000000","message":"\"(a.k.a. pollster)\"\n\npollsters are simply small fragments of code that may run in *any* agent (i.e. these are not equivalent to the central agent)","commit_id":"9b59232e397a626c9d6b427155f4472bbeece24a"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"5d0a863c17802e163a3a9ab0858cb021e0950203","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Central Agent High Availability in Active/Active State"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The central agent (a.k.a. pollster) is responsible of gathering data from a"},{"line_number":10,"context_line":"variety of services and publish them to the queue infrastructure. This"},{"line_number":11,"context_line":"component must be deployed and run as a single instance on all the cloud IaaS"},{"line_number":12,"context_line":"making it hard to achieve reliably high availability."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1ae5cdf2_46ef9fe9","line":9,"in_reply_to":"1ae5cdf2_35f0fb90","updated":"2014-06-25 18:25:29.000000000","message":"I\u0027ll do it, Thanks.","commit_id":"9b59232e397a626c9d6b427155f4472bbeece24a"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3ef2685409f44edf05196e11afefc5cba74bdae4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Central Agent High Availability in Active/Active State"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The Central Agent is responsible of gathering data from a variety of services"},{"line_number":10,"context_line":"and publish them to the queue infrastructure. It also coordinates and runs a"},{"line_number":11,"context_line":"set of polling tasks that collect the data from services\u0027 endpoints."},{"line_number":12,"context_line":"This component must be deployed and run as a single instance on all the cloud"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_48afcbe3","line":9,"updated":"2014-07-01 10:33:34.000000000","message":"Non-blocking nitpick:\n\n  s/responsible of/responsible for/","commit_id":"bcfae822789858bca96c2ae8684d22e2dbeb6441"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"f9cffaadee9b19f51975345b2b0e379dc91d6d08","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Central Agent High Availability in Active/Active State"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The Central Agent is responsible of gathering data from a variety of services"},{"line_number":10,"context_line":"and publish them to the queue infrastructure. It also coordinates and runs a"},{"line_number":11,"context_line":"set of polling tasks that collect the data from services\u0027 endpoints."},{"line_number":12,"context_line":"This component must be deployed and run as a single instance on all the cloud"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_77fa9145","line":9,"in_reply_to":"baada198_48afcbe3","updated":"2014-08-06 16:42:39.000000000","message":"Done","commit_id":"bcfae822789858bca96c2ae8684d22e2dbeb6441"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3ef2685409f44edf05196e11afefc5cba74bdae4","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Central Agent High Availability in Active/Active State"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The Central Agent is responsible of gathering data from a variety of services"},{"line_number":10,"context_line":"and publish them to the queue infrastructure. It also coordinates and runs a"},{"line_number":11,"context_line":"set of polling tasks that collect the data from services\u0027 endpoints."},{"line_number":12,"context_line":"This component must be deployed and run as a single instance on all the cloud"},{"line_number":13,"context_line":"IaaS making it hard to achieve reliably high availability."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_6893afa3","line":10,"updated":"2014-07-01 10:33:34.000000000","message":"Non-blocking nitpick:\n\n  s/publish them/publishing them/","commit_id":"bcfae822789858bca96c2ae8684d22e2dbeb6441"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"f9cffaadee9b19f51975345b2b0e379dc91d6d08","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Central Agent High Availability in Active/Active State"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The Central Agent is responsible of gathering data from a variety of services"},{"line_number":10,"context_line":"and publish them to the queue infrastructure. It also coordinates and runs a"},{"line_number":11,"context_line":"set of polling tasks that collect the data from services\u0027 endpoints."},{"line_number":12,"context_line":"This component must be deployed and run as a single instance on all the cloud"},{"line_number":13,"context_line":"IaaS making it hard to achieve reliably high availability."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_b7f42956","line":10,"in_reply_to":"baada198_6893afa3","updated":"2014-08-06 16:42:39.000000000","message":"Done","commit_id":"bcfae822789858bca96c2ae8684d22e2dbeb6441"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"3ef2685409f44edf05196e11afefc5cba74bdae4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"data parsing and to be held in the database. The resource-agent table indicates"},{"line_number":18,"context_line":"which Agent is currently polling a given resource."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"blueprint task-distribution-for-central-agents"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"DocImpact"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_68dacf79","line":20,"updated":"2014-07-01 10:33:34.000000000","message":"Please remove this blueprint tag from the commit message, that should be reserved for the patch that actually implements the BP.","commit_id":"bcfae822789858bca96c2ae8684d22e2dbeb6441"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"f9cffaadee9b19f51975345b2b0e379dc91d6d08","unresolved":false,"context_lines":[{"line_number":17,"context_line":"data parsing and to be held in the database. The resource-agent table indicates"},{"line_number":18,"context_line":"which Agent is currently polling a given resource."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"blueprint task-distribution-for-central-agents"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"DocImpact"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_f795c1e3","line":20,"in_reply_to":"baada198_68dacf79","updated":"2014-08-06 16:42:39.000000000","message":"Done","commit_id":"bcfae822789858bca96c2ae8684d22e2dbeb6441"}],"specs/juno/central_agent_ha_active_active.rst":[{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"4df43b5ebcaa1d920cdac2a9f001e2033f581175","unresolved":false,"context_lines":[{"line_number":127,"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\u003d"},{"line_number":128,"context_line":"Field Name                    Field Type"},{"line_number":129,"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\u003d"},{"line_number":130,"context_line":"resource_id                   varchar"},{"line_number":131,"context_line":"last_heard_heartbeat          timestamp"},{"line_number":132,"context_line":"agent_pid                     integer"},{"line_number":133,"context_line":"agent_node_ip_address         varchar"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae5cdf2_5ba51f9d","line":130,"updated":"2014-06-20 17:11:07.000000000","message":"This should be the reference or id of the service endpoints because resource can be several inside the same service","commit_id":"b27fe930cc64b48d349b34f4c3f98467c88c9182"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e82237c423c9f9ae78648a8eb7790f502bc8501c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/ceilometer/+spec/task-distribution-for-central-agents"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/ceilometer/+spec/high-availability"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The Central Agent (a.k.a. pollster) is responsible of gathering data from a"},{"line_number":15,"context_line":"variety of services and publish them to the queue infrastructure. This"},{"line_number":16,"context_line":"component must be deployed and run as a single instance on all the cloud IaaS"},{"line_number":17,"context_line":"making it hard to achieve reliably high availability."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_95138fb6","line":14,"updated":"2014-06-24 18:48:34.000000000","message":"As commented on the commit msg, please remove \"(a.k.a. pollster)\" as it\u0027s not equivalent to the central agent.","commit_id":"9b59232e397a626c9d6b427155f4472bbeece24a"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"5d0a863c17802e163a3a9ab0858cb021e0950203","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/ceilometer/+spec/task-distribution-for-central-agents"},{"line_number":12,"context_line":"https://blueprints.launchpad.net/ceilometer/+spec/high-availability"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The Central Agent (a.k.a. pollster) is responsible of gathering data from a"},{"line_number":15,"context_line":"variety of services and publish them to the queue infrastructure. This"},{"line_number":16,"context_line":"component must be deployed and run as a single instance on all the cloud IaaS"},{"line_number":17,"context_line":"making it hard to achieve reliably high availability."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_66657bae","line":14,"in_reply_to":"1ae5cdf2_95138fb6","updated":"2014-06-25 18:25:29.000000000","message":"I\u0027ll do it. Thanks","commit_id":"9b59232e397a626c9d6b427155f4472bbeece24a"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e82237c423c9f9ae78648a8eb7790f502bc8501c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"resources. These can be separated and implemented in steps:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* Parse and store pipeline adding one resource-agent assignment record for each"},{"line_number":43,"context_line":"  resource in the back-end. The idea here is to set-up the configuration file"},{"line_number":44,"context_line":"  to allow the active/active behavior and point the driver responsible of"},{"line_number":45,"context_line":"  storing the new data, which can be different from the main storage."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_755e037b","line":43,"updated":"2014-06-24 18:48:34.000000000","message":"Do you mean add an entry for every *single* resource in the cloud? In ceilometer terminology, by \"resource\" we mean something like an instance, image, volume etc. I can\u0027t see such as approach scaling.\n\nOr by resource, do you mean something like a REST API endpoint or an SNMP daemon on a host? If so, how would this interact with dynamic resource discovery?","commit_id":"9b59232e397a626c9d6b427155f4472bbeece24a"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"5d0a863c17802e163a3a9ab0858cb021e0950203","unresolved":false,"context_lines":[{"line_number":40,"context_line":"resources. These can be separated and implemented in steps:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* Parse and store pipeline adding one resource-agent assignment record for each"},{"line_number":43,"context_line":"  resource in the back-end. The idea here is to set-up the configuration file"},{"line_number":44,"context_line":"  to allow the active/active behavior and point the driver responsible of"},{"line_number":45,"context_line":"  storing the new data, which can be different from the main storage."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_120be724","line":43,"in_reply_to":"1ae5cdf2_755e037b","updated":"2014-06-25 18:25:29.000000000","message":"Eoghan, I really mean a the latter. It is the equivalent of a service hosted in the Keystone catalog.\nLet me explain how I think this will work and then I probably add a paragraph on that ...\nThe pipeline set things like image, image-size or other data to meter, this data corresponds to a services (this is what I called resource, and I need to re-name accordingly) that are available in the Keystone catalog.\nSo the idea is to create one entry per service in the association and then let Polling Agent find out all the endpoints that belong to that service asking Keystone directly. Once a polling activity has been completed before the next one is starting, the Polling Agent can confirm with Keystone the list of endpoints. So, if an endpoint changes this change will be picked up. Moreover, working at the service level enables us to get all the endpoints that can be added in the case a new region/availability zone has been deployed in the mean time.","commit_id":"9b59232e397a626c9d6b427155f4472bbeece24a"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"e82237c423c9f9ae78648a8eb7790f502bc8501c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  when awake they will check that there are not resources with a"},{"line_number":72,"context_line":"  last_heard_hartbeat that is older than the configurable heartbeat interval."},{"line_number":73,"context_line":"  If that is the case the Polling Agent will override the database record and"},{"line_number":74,"context_line":"  start polling the resource."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"``How to handle Failures``"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_70e0d126","line":74,"updated":"2014-06-24 18:48:34.000000000","message":"Sounds like you\u0027re possibly inventing a wheel that the openstack community has already implemented in taskflow and tooz.\n\nCan you explain why simply re-using those tools wouldn\u0027t be a suitable approach in this case?","commit_id":"9b59232e397a626c9d6b427155f4472bbeece24a"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"5d0a863c17802e163a3a9ab0858cb021e0950203","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  when awake they will check that there are not resources with a"},{"line_number":72,"context_line":"  last_heard_hartbeat that is older than the configurable heartbeat interval."},{"line_number":73,"context_line":"  If that is the case the Polling Agent will override the database record and"},{"line_number":74,"context_line":"  start polling the resource."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"``How to handle Failures``"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_66e01b27","line":74,"in_reply_to":"1ae5cdf2_70e0d126","updated":"2014-06-25 18:25:29.000000000","message":"There are currently instructions in the openstack docs to set-up the central-agent in an active/passive cluster using pacemaker and corosync, please see link here: http://docs.openstack.org/high-availability-guide/content/_add_the_telemetry_central_agent_resource_to_pacemaker.html\nThe proposal here is to manage it as active/active and I am all for re-using libraries that are available. So if taskflow allows to start Polling Agents and or Subscribing Agents in the way it ensures that are truly stateless and recyclable I am all for it.\nI think tooz in this case is not necessary because we won\u0027t need a leader election since all the Polling and Subscribing Agents (similarly to the Collectors) are truly all peers.\nI posted this proposal with the spirt of producing some detailed doc to jumpstart discussions at the mid of spring event in Paris next week, where I would like to brainstorm around this and have a plan of action.","commit_id":"9b59232e397a626c9d6b427155f4472bbeece24a"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"c656c7a5757e86e5d65ef05bae059abab9dc0a9c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  of polling. The Polling Agents, for each source available in the"},{"line_number":51,"context_line":"  source-agent assignment table will add their process id (pid) and IP node"},{"line_number":52,"context_line":"  where are running. This will let the other Polling Agents aware that this"},{"line_number":53,"context_line":"  give Polling Agent has ownership of that source."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* At the start a Polling Agent will check if there are sources that do not"},{"line_number":56,"context_line":"  have already an associated Polling Agent. If that is the case the newly"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_a5e1bd9c","line":53,"updated":"2014-06-27 17:15:17.000000000","message":"There could be stickiness related to AZ or Region. The important thing is that full coverage is achieved.\nThis is based on a preferences settings in the config file.\nIt is important to override the policy defined in the preferences in case this is jeopardizing the ability of polling the entire set.","commit_id":"bcfae822789858bca96c2ae8684d22e2dbeb6441"}]}
