)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"b46a98b1663646b69baafdcf7b46a2cd586d9187","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0033632a_98e11c07","updated":"2022-05-16 11:31:29.000000000","message":"Hi, please find changes for adding default blackbox exporter endpoints based off of enabled openstack services. \n\nHappy for any comments on improvements, perhaps a new var in the globals.yaml will be needed. \n\nkind regards, \n\nkyle","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"1c0d8980902237debf163c564463be2efcef9083","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b5a09e1c_233bad4e","updated":"2022-05-16 13:27:04.000000000","message":"Ok then, in a typical deployment we\u0027ll have 3 blackbox exporters connecting to each of the services on scrape time, while I\u0027m probably ok with using that for checking SSL certificates validity and API responsivity - what can we get from a tcp_connect to RabbitMQ or similar services?\nSecond thing - again we\u0027re adding a lot of metrics sources - what\u0027s the future of alerting rules and Grafana dashboards? Do we want users to work out the black magic after deployment?","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"d799816f7a497e9a3275bdf16d8c1f83fec0ca04","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"52e61aaa_da92f323","in_reply_to":"b5a09e1c_233bad4e","updated":"2022-05-16 14:54:26.000000000","message":"I can answer your second question. I think for the future, the aim is to have some default alerts and dashboards. its going to be easier to build these out with a full range of metrics configured out of the box, hence this commit.","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"14f0fbc9846d112b24252901c2f66fed98b152a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fee16370_ba202f28","updated":"2022-05-26 10:51:30.000000000","message":"This patch needs to consider the effect of https://review.opendev.org/c/openstack/kolla-ansible/+/823395, which makes it possible to have different FQDNs for each service, and different internal \u0026 public API ports.","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"}],"ansible/roles/prometheus/defaults/main.yml":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"316f5ff1e749b34567d8885f73b8191fe46c1889","unresolved":true,"context_lines":[{"line_number":129,"context_line":"#   - \u0027glance:os_endpoint:{{ external_protocol }}://{{ kolla_external_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ glance_api_port}}\u0027"},{"line_number":130,"context_line":"#"},{"line_number":131,"context_line":"# For a list of modules see the alertmanager config."},{"line_number":132,"context_line":"prometheus_blackbox_monitor_external_apis: false"},{"line_number":133,"context_line":"prometheus_blackbox_monitor_internal_apis: false"},{"line_number":134,"context_line":"prometheus_blackbox_exporter_endpoints: []"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"2a175de8_e5fdc5e8","line":132,"range":{"start_line":132,"start_character":19,"end_line":132,"end_character":20},"updated":"2022-05-16 12:11:22.000000000","message":"_exporter_","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"5f7cfa56da9a9f4dc4ca381215317a7518d8ba74","unresolved":false,"context_lines":[{"line_number":129,"context_line":"#   - \u0027glance:os_endpoint:{{ external_protocol }}://{{ kolla_external_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ glance_api_port}}\u0027"},{"line_number":130,"context_line":"#"},{"line_number":131,"context_line":"# For a list of modules see the alertmanager config."},{"line_number":132,"context_line":"prometheus_blackbox_monitor_external_apis: false"},{"line_number":133,"context_line":"prometheus_blackbox_monitor_internal_apis: false"},{"line_number":134,"context_line":"prometheus_blackbox_exporter_endpoints: []"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"c90dc6c8_e47e5b47","line":132,"range":{"start_line":132,"start_character":19,"end_line":132,"end_character":20},"in_reply_to":"2a175de8_e5fdc5e8","updated":"2022-05-16 13:09:25.000000000","message":"Ack","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"316f5ff1e749b34567d8885f73b8191fe46c1889","unresolved":true,"context_lines":[{"line_number":130,"context_line":"#"},{"line_number":131,"context_line":"# For a list of modules see the alertmanager config."},{"line_number":132,"context_line":"prometheus_blackbox_monitor_external_apis: false"},{"line_number":133,"context_line":"prometheus_blackbox_monitor_internal_apis: false"},{"line_number":134,"context_line":"prometheus_blackbox_exporter_endpoints: []"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"f6cfae6c_f9871614","line":133,"range":{"start_line":133,"start_character":19,"end_line":133,"end_character":20},"updated":"2022-05-16 12:11:22.000000000","message":"ditto","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"5f7cfa56da9a9f4dc4ca381215317a7518d8ba74","unresolved":false,"context_lines":[{"line_number":130,"context_line":"#"},{"line_number":131,"context_line":"# For a list of modules see the alertmanager config."},{"line_number":132,"context_line":"prometheus_blackbox_monitor_external_apis: false"},{"line_number":133,"context_line":"prometheus_blackbox_monitor_internal_apis: false"},{"line_number":134,"context_line":"prometheus_blackbox_exporter_endpoints: []"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7cc0d0c7_0f7a15ef","line":133,"range":{"start_line":133,"start_character":19,"end_line":133,"end_character":20},"in_reply_to":"f6cfae6c_f9871614","updated":"2022-05-16 13:09:25.000000000","message":"Ack","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"}],"ansible/roles/prometheus/tasks/config.yml":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"316f5ff1e749b34567d8885f73b8191fe46c1889","unresolved":true,"context_lines":[{"line_number":87,"context_line":"         selectattr(\u0027enabled\u0027)"},{"line_number":88,"context_line":"      }}"},{"line_number":89,"context_line":"    blackbox_services:"},{"line_number":90,"context_line":"      - { name: \"aodh\", port: \"{{ aodh_api_port }}\" ,enabled: \"{{ enable_aodh | bool }}\" }"},{"line_number":91,"context_line":"      - { name: \"barbican\", port: \"{{ barbican_api_port }}\" ,enabled: \"{{ enable_barbican | bool }}\" }"},{"line_number":92,"context_line":"      - { name: \"blazar\", port: \"{{ blazar_api_port }}\" ,enabled: \"{{ enable_blazar | bool }}\" }"},{"line_number":93,"context_line":"      - { name: \"cinder\", port: \"{{ cinder_api_port }}\" ,enabled: \"{{ enable_cinder | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"fe74c8ec_d6b3d34b","line":90,"range":{"start_line":90,"start_character":51,"end_line":90,"end_character":53},"updated":"2022-05-16 12:11:22.000000000","message":"should be \", \" (ditto all over the place)","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"5f7cfa56da9a9f4dc4ca381215317a7518d8ba74","unresolved":false,"context_lines":[{"line_number":87,"context_line":"         selectattr(\u0027enabled\u0027)"},{"line_number":88,"context_line":"      }}"},{"line_number":89,"context_line":"    blackbox_services:"},{"line_number":90,"context_line":"      - { name: \"aodh\", port: \"{{ aodh_api_port }}\" ,enabled: \"{{ enable_aodh | bool }}\" }"},{"line_number":91,"context_line":"      - { name: \"barbican\", port: \"{{ barbican_api_port }}\" ,enabled: \"{{ enable_barbican | bool }}\" }"},{"line_number":92,"context_line":"      - { name: \"blazar\", port: \"{{ blazar_api_port }}\" ,enabled: \"{{ enable_blazar | bool }}\" }"},{"line_number":93,"context_line":"      - { name: \"cinder\", port: \"{{ cinder_api_port }}\" ,enabled: \"{{ enable_cinder | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3d53ffd8_94c0c152","line":90,"range":{"start_line":90,"start_character":51,"end_line":90,"end_character":53},"in_reply_to":"fe74c8ec_d6b3d34b","updated":"2022-05-16 13:09:25.000000000","message":"Ack","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"b18b89dd9394f7e37f33a14efc922679f8496607","unresolved":true,"context_lines":[{"line_number":86,"context_line":"      {{ blackbox_services |"},{"line_number":87,"context_line":"         selectattr(\u0027enabled\u0027)"},{"line_number":88,"context_line":"      }}"},{"line_number":89,"context_line":"    blackbox_services:"},{"line_number":90,"context_line":"      - { name: \"aodh\", port: \"{{ aodh_api_port }}\", enabled: \"{{ enable_aodh | bool }}\" }"},{"line_number":91,"context_line":"      - { name: \"barbican\", port: \"{{ barbican_api_port }}\", enabled: \"{{ enable_barbican | bool }}\" }"},{"line_number":92,"context_line":"      - { name: \"blazar\", port: \"{{ blazar_api_port }}\", enabled: \"{{ enable_blazar | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"e7209cfe_9f124009","line":89,"updated":"2022-05-20 14:13:37.000000000","message":"I wondered what you thought about getting the individual service roles (eg. nova, glance) to write out a service specific scrape target which could then be read here and merged into the prometheus config file?\n\nThe advantage would be that that the Promtheus role doesn\u0027t need to know about all the services here, and any quirks can be handled in the respective roles.","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":86,"context_line":"      {{ blackbox_services |"},{"line_number":87,"context_line":"         selectattr(\u0027enabled\u0027)"},{"line_number":88,"context_line":"      }}"},{"line_number":89,"context_line":"    blackbox_services:"},{"line_number":90,"context_line":"      - { name: \"aodh\", port: \"{{ aodh_api_port }}\", enabled: \"{{ enable_aodh | bool }}\" }"},{"line_number":91,"context_line":"      - { name: \"barbican\", port: \"{{ barbican_api_port }}\", enabled: \"{{ enable_barbican | bool }}\" }"},{"line_number":92,"context_line":"      - { name: \"blazar\", port: \"{{ blazar_api_port }}\", enabled: \"{{ enable_blazar | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"6bde2cbd_63fd95b0","line":89,"in_reply_to":"e7209cfe_9f124009","updated":"2022-05-26 11:00:04.000000000","message":"It\u0027s an option. Possibly a bit cleaner, but could get more verbose.","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":95,"context_line":"      - { name: \"cyborg\", port: \"{{ cyborg_api_port }}\", enabled: \"{{ enable_cyborg | bool }}\" }"},{"line_number":96,"context_line":"      - { name: \"designate\", port: \"{{ designate_api_port }}\", enabled: \"{{ enable_designate | bool }}\" }"},{"line_number":97,"context_line":"      - { name: \"elasticsearch\", port: \"{{ elasticsearch_port }}\", enabled: \"{{ enable_elasticsearch | bool }}\" }"},{"line_number":98,"context_line":"      - { name: \"etcd\", port: \"{{ etcd_client_port }}\", enabled: \"{{ enable_etcd | bool }}\" }"},{"line_number":99,"context_line":"      - { name: \"freezer\", port: \"{{ freezer_api_port }}\", enabled: \"{{ enable_freezer | bool }}\" }"},{"line_number":100,"context_line":"      - { name: \"glance\", port: \"{{ glance_api_port }}\", enabled: \"{{ enable_glance | bool }}\" }"},{"line_number":101,"context_line":"      - { name: \"glance-tls-proxy\", port: \"{{ glance_tls_proxy_stats_port }}\", enabled: \"{{ glance_enable_tls_backend | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"b914399a_8d5c4c0f","line":98,"range":{"start_line":98,"start_character":17,"end_line":98,"end_character":21},"updated":"2022-05-26 11:00:04.000000000","message":"Doesn\u0027t listen on the VIP","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":98,"context_line":"      - { name: \"etcd\", port: \"{{ etcd_client_port }}\", enabled: \"{{ enable_etcd | bool }}\" }"},{"line_number":99,"context_line":"      - { name: \"freezer\", port: \"{{ freezer_api_port }}\", enabled: \"{{ enable_freezer | bool }}\" }"},{"line_number":100,"context_line":"      - { name: \"glance\", port: \"{{ glance_api_port }}\", enabled: \"{{ enable_glance | bool }}\" }"},{"line_number":101,"context_line":"      - { name: \"glance-tls-proxy\", port: \"{{ glance_tls_proxy_stats_port }}\", enabled: \"{{ glance_enable_tls_backend | bool }}\" }"},{"line_number":102,"context_line":"      - { name: \"gnocchi\", port: \"{{ gnocchi_api_port }}\", enabled: \"{{ enable_gnocchi | bool }}\" }"},{"line_number":103,"context_line":"      - { name: \"grafana\", port: \"{{ grafana_server_port }}\", enabled: \"{{ enable_grafana | bool }}\" }"},{"line_number":104,"context_line":"      - { name: \"haproxy\", port: \"{{ haproxy_stats_port }}\", enabled: \"{{ enable_haproxy | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5fc20934_b209d034","line":101,"range":{"start_line":101,"start_character":17,"end_line":101,"end_character":33},"updated":"2022-05-26 11:00:04.000000000","message":"Doesn\u0027t listen on the VIP","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":107,"context_line":"      - { name: \"influxdb\", port: \"{{ influxdb_http_port }}\", enabled: \"{{ enable_influxdb | bool }}\" }"},{"line_number":108,"context_line":"      - { name: \"ironic\", port: \"{{ ironic_api_port }}\", enabled: \"{{ enable_ironic | bool }}\" }"},{"line_number":109,"context_line":"      - { name: \"ironic-inspector\", port: \"{{ ironic_inspector_port }}\", enabled: \"{{ enable_ironic | bool }}\" }"},{"line_number":110,"context_line":"      - { name: \"iscsid\", port: \"{{ iscsi_port }}\", enabled: \"{{ enable_iscsid | bool }}\" }"},{"line_number":111,"context_line":"      - { name: \"kafka\", port: \"{{ kafka_port }}\", enabled: \"{{ enable_kafka | bool }}\" }"},{"line_number":112,"context_line":"      - { name: \"keystone\", port: \"{{ keystone_public_port }}\", enabled: \"{{ enable_keystone | bool }}\" }"},{"line_number":113,"context_line":"      - { name: \"kibana\", port: \"{{ kibana_server_port }}\", enabled: \"{{ enable_kibana | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"81666e66_7d1d9d70","line":110,"range":{"start_line":110,"start_character":17,"end_line":110,"end_character":23},"updated":"2022-05-26 11:00:04.000000000","message":"Doesn\u0027t listen on the VIP","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":108,"context_line":"      - { name: \"ironic\", port: \"{{ ironic_api_port }}\", enabled: \"{{ enable_ironic | bool }}\" }"},{"line_number":109,"context_line":"      - { name: \"ironic-inspector\", port: \"{{ ironic_inspector_port }}\", enabled: \"{{ enable_ironic | bool }}\" }"},{"line_number":110,"context_line":"      - { name: \"iscsid\", port: \"{{ iscsi_port }}\", enabled: \"{{ enable_iscsid | bool }}\" }"},{"line_number":111,"context_line":"      - { name: \"kafka\", port: \"{{ kafka_port }}\", enabled: \"{{ enable_kafka | bool }}\" }"},{"line_number":112,"context_line":"      - { name: \"keystone\", port: \"{{ keystone_public_port }}\", enabled: \"{{ enable_keystone | bool }}\" }"},{"line_number":113,"context_line":"      - { name: \"kibana\", port: \"{{ kibana_server_port }}\", enabled: \"{{ enable_kibana | bool }}\" }"},{"line_number":114,"context_line":"      - { name: \"kuryr\", port: \"{{ kuryr_port }}\", enabled: \"{{ enable_kuryr | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ed76e24a_4c88fe53","line":111,"range":{"start_line":111,"start_character":17,"end_line":111,"end_character":22},"updated":"2022-05-26 11:00:04.000000000","message":"Doesn\u0027t listen on the VIP","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":120,"context_line":"      - { name: \"monasca\", port: \"{{ monasca_api_port }}\", enabled: \"{{ enable_monasca | bool }}\" }"},{"line_number":121,"context_line":"      - { name: \"murano\", port: \"{{ murano_api_port }}\", enabled: \"{{ enable_murano | bool }}\" }"},{"line_number":122,"context_line":"      - { name: \"neutron\", port: \"{{ neutron_server_port }}\", enabled: \"{{ enable_neutron | bool }}\" }"},{"line_number":123,"context_line":"      - { name: \"neutron-tls-proxy\", port: \"{{ neutron_tls_proxy_stats_port }}\", enabled: \"{{ neutron_enable_tls_backend | bool }}\" }"},{"line_number":124,"context_line":"      - { name: \"nova\", port: \"{{ nova_api_port }}\", enabled: \"{{ enable_nova | bool }}\" }"},{"line_number":125,"context_line":"      - { name: \"octavia\", port: \"{{ octavia_api_port }}\", enabled: \"{{ enable_octavia | bool }}\" }"},{"line_number":126,"context_line":"      - { name: \"outward-rabbitmq\", port: \"{{ outward_rabbitmq_port }}\", enabled: \"{{ enable_outward_rabbitmq | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"79149329_3c472b06","line":123,"range":{"start_line":123,"start_character":17,"end_line":123,"end_character":34},"updated":"2022-05-26 11:00:04.000000000","message":"Doesn\u0027t listen on the VIP","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":123,"context_line":"      - { name: \"neutron-tls-proxy\", port: \"{{ neutron_tls_proxy_stats_port }}\", enabled: \"{{ neutron_enable_tls_backend | bool }}\" }"},{"line_number":124,"context_line":"      - { name: \"nova\", port: \"{{ nova_api_port }}\", enabled: \"{{ enable_nova | bool }}\" }"},{"line_number":125,"context_line":"      - { name: \"octavia\", port: \"{{ octavia_api_port }}\", enabled: \"{{ enable_octavia | bool }}\" }"},{"line_number":126,"context_line":"      - { name: \"outward-rabbitmq\", port: \"{{ outward_rabbitmq_port }}\", enabled: \"{{ enable_outward_rabbitmq | bool }}\" }"},{"line_number":127,"context_line":"      - { name: \"placement\", port: \"{{ placement_api_port }}\", enabled: \"{{ enable_placement | bool }}\" }"},{"line_number":128,"context_line":"      - { name: \"rabbitmq\", port: \"{{ rabbitmq_port }}\", enabled: \"{{ enable_rabbitmq | bool }}\" }"},{"line_number":129,"context_line":"      - { name: \"sahara\", port: \"{{ sahara_api_port }}\", enabled: \"{{ enable_sahara | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"dbc5ad2e_6017c90d","line":126,"range":{"start_line":126,"start_character":17,"end_line":126,"end_character":33},"updated":"2022-05-26 11:00:04.000000000","message":"Doesn\u0027t listen on the VIP","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":125,"context_line":"      - { name: \"octavia\", port: \"{{ octavia_api_port }}\", enabled: \"{{ enable_octavia | bool }}\" }"},{"line_number":126,"context_line":"      - { name: \"outward-rabbitmq\", port: \"{{ outward_rabbitmq_port }}\", enabled: \"{{ enable_outward_rabbitmq | bool }}\" }"},{"line_number":127,"context_line":"      - { name: \"placement\", port: \"{{ placement_api_port }}\", enabled: \"{{ enable_placement | bool }}\" }"},{"line_number":128,"context_line":"      - { name: \"rabbitmq\", port: \"{{ rabbitmq_port }}\", enabled: \"{{ enable_rabbitmq | bool }}\" }"},{"line_number":129,"context_line":"      - { name: \"sahara\", port: \"{{ sahara_api_port }}\", enabled: \"{{ enable_sahara | bool }}\" }"},{"line_number":130,"context_line":"      - { name: \"senlin\", port: \"{{ senlin_api_port }}\", enabled: \"{{ enable_senlin | bool }}\" }"},{"line_number":131,"context_line":"      - { name: \"skydive\", port: \"{{ skydive_analyzer_port }}\", enabled: \"{{ enable_skydive | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"b522302f_38295a77","line":128,"range":{"start_line":128,"start_character":17,"end_line":128,"end_character":25},"updated":"2022-05-26 11:00:04.000000000","message":"Doesn\u0027t listen on the VIP","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":130,"context_line":"      - { name: \"senlin\", port: \"{{ senlin_api_port }}\", enabled: \"{{ enable_senlin | bool }}\" }"},{"line_number":131,"context_line":"      - { name: \"skydive\", port: \"{{ skydive_analyzer_port }}\", enabled: \"{{ enable_skydive | bool }}\" }"},{"line_number":132,"context_line":"      - { name: \"solum\", port: \"{{ solum_application_deployment_port }}\", enabled: \"{{ enable_solum | bool }}\" }"},{"line_number":133,"context_line":"      - { name: \"storm\", port: \"{{ storm_nimbus_thrift_port }}\", enabled: \"{{ enable_storm | bool }}\" }"},{"line_number":134,"context_line":"      - { name: \"swift\", port: \"{{ swift_object_server_port }}\", enabled: \"{{ enable_swift | bool }}\" }"},{"line_number":135,"context_line":"      - { name: \"tacker\", port: \"{{ tacker_server_port }}\", enabled: \"{{ enable_tacker | bool }}\" }"},{"line_number":136,"context_line":"      - { name: \"trove\", port: \"{{ trove_api_port }}\", enabled: \"{{ enable_trove | bool }}\" }"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"88f3a767_bd9c16fc","line":133,"range":{"start_line":133,"start_character":17,"end_line":133,"end_character":22},"updated":"2022-05-26 11:00:04.000000000","message":"Doesn\u0027t listen on the VIP","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b89e16eccb2ae57a2f0c6367753964e170284816","unresolved":true,"context_lines":[{"line_number":136,"context_line":"      - { name: \"trove\", port: \"{{ trove_api_port }}\", enabled: \"{{ enable_trove | bool }}\" }"},{"line_number":137,"context_line":"      - { name: \"vitrage\", port: \"{{ vitrage_api_port }}\", enabled: \"{{ enable_vitrage | bool }}\" }"},{"line_number":138,"context_line":"      - { name: \"watcher\", port: \"{{ watcher_api_port }}\", enabled: \"{{ enable_watcher | bool }}\" }"},{"line_number":139,"context_line":"      - { name: \"zookeeper\", port: \"{{ zookeeper_client_port }}\", enabled: \"{{ enable_zookeeper | bool }}\" }"},{"line_number":140,"context_line":"      - { name: \"zun\", port: \"{{ zun_api_port }}\", enabled: \"{{ enable_zun | bool }}\" }"},{"line_number":141,"context_line":"  merge_yaml:"},{"line_number":142,"context_line":"    sources: \"{{ [item] + common_overrides + host_overrides }}\""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"b76d20f7_44daf6eb","line":139,"range":{"start_line":139,"start_character":17,"end_line":139,"end_character":26},"updated":"2022-05-26 11:00:04.000000000","message":"Doesn\u0027t listen on the VIP","commit_id":"6406c05561795a755b5f3555b0d46942797cf8c7"}],"ansible/roles/prometheus/templates/prometheus.yml.j2":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"316f5ff1e749b34567d8885f73b8191fe46c1889","unresolved":true,"context_lines":[{"line_number":113,"context_line":"{% endfor %}"},{"line_number":114,"context_line":"{% endif %}"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"{% if (enable_prometheus_blackbox_exporter | bool) or (prometheus_blackbox_exporter_endpoints | length \u003e 0 | bool) %}"},{"line_number":117,"context_line":"  - job_name: blackbox_exporter"},{"line_number":118,"context_line":"    metrics_path: /probe"},{"line_number":119,"context_line":"    honor_labels: true"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"50c73f47_9ac71cb7","line":116,"range":{"start_line":116,"start_character":51,"end_line":116,"end_character":54},"updated":"2022-05-16 12:11:22.000000000","message":"this should stay \"and\" but you need an additional \"or\" inside the parens to introduce the possibility of blackbox_enabled_services with internal and/or external api monitoring (I suggest to define a new boolean variable in role defaults)","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"389ea8b0952aa8f35d23c902b3da5a503eb0b44a","unresolved":false,"context_lines":[{"line_number":113,"context_line":"{% endfor %}"},{"line_number":114,"context_line":"{% endif %}"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"{% if (enable_prometheus_blackbox_exporter | bool) or (prometheus_blackbox_exporter_endpoints | length \u003e 0 | bool) %}"},{"line_number":117,"context_line":"  - job_name: blackbox_exporter"},{"line_number":118,"context_line":"    metrics_path: /probe"},{"line_number":119,"context_line":"    honor_labels: true"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"e285c0c0_7c6dcb76","line":116,"range":{"start_line":116,"start_character":51,"end_line":116,"end_character":54},"in_reply_to":"50c73f47_9ac71cb7","updated":"2022-05-16 14:59:30.000000000","message":"Done","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"316f5ff1e749b34567d8885f73b8191fe46c1889","unresolved":true,"context_lines":[{"line_number":124,"context_line":"{% endfor %}"},{"line_number":125,"context_line":"{% for service in blackbox_enabled_services %}"},{"line_number":126,"context_line":"{% if prometheus_blackbox_monitor_internal_apis | bool %}"},{"line_number":127,"context_line":"{% if lookup(\u0027vars\u0027, service.name + \u0027_api_port\u0027, default\u003d\u0027\u0027)| length \u003e 0 | bool %}"},{"line_number":128,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":129,"context_line":"{% elif service.name \u003d\u003d \u0027neutron\u0027 %}"},{"line_number":130,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"ab64e964_1d8290d4","line":127,"range":{"start_line":127,"start_character":60,"end_line":127,"end_character":61},"updated":"2022-05-16 12:11:22.000000000","message":"space","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"5f7cfa56da9a9f4dc4ca381215317a7518d8ba74","unresolved":false,"context_lines":[{"line_number":124,"context_line":"{% endfor %}"},{"line_number":125,"context_line":"{% for service in blackbox_enabled_services %}"},{"line_number":126,"context_line":"{% if prometheus_blackbox_monitor_internal_apis | bool %}"},{"line_number":127,"context_line":"{% if lookup(\u0027vars\u0027, service.name + \u0027_api_port\u0027, default\u003d\u0027\u0027)| length \u003e 0 | bool %}"},{"line_number":128,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":129,"context_line":"{% elif service.name \u003d\u003d \u0027neutron\u0027 %}"},{"line_number":130,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"bc7af32b_c794357d","line":127,"range":{"start_line":127,"start_character":60,"end_line":127,"end_character":61},"in_reply_to":"ab64e964_1d8290d4","updated":"2022-05-16 13:09:25.000000000","message":"Ack","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"316f5ff1e749b34567d8885f73b8191fe46c1889","unresolved":true,"context_lines":[{"line_number":126,"context_line":"{% if prometheus_blackbox_monitor_internal_apis | bool %}"},{"line_number":127,"context_line":"{% if lookup(\u0027vars\u0027, service.name + \u0027_api_port\u0027, default\u003d\u0027\u0027)| length \u003e 0 | bool %}"},{"line_number":128,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":129,"context_line":"{% elif service.name \u003d\u003d \u0027neutron\u0027 %}"},{"line_number":130,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":131,"context_line":"{% elif service.name \u003d\u003d \u0027keystone\u0027 %}"},{"line_number":132,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":133,"context_line":"{% elif service.name \u003d\u003d \u0027rabbitmq\u0027 %}"},{"line_number":134,"context_line":"{% for host in groups[\u0027controllers\u0027] %}"},{"line_number":135,"context_line":"        - \"{{ service.name }}_{{ host | replace(\u0027-\u0027, \u0027_\u0027) }}:{% if rabbitmq_enable_tls | bool %}tls_connnect{% else %}tcp_connect{% endif %}:{{ \u0027api\u0027 | kolla_address(host) }}:{{ service.port }}\""}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"a9b64033_be92eeda","line":132,"range":{"start_line":129,"start_character":0,"end_line":132,"end_character":154},"updated":"2022-05-16 12:11:22.000000000","message":"what is this special handling here for?; if it\u0027s needed for differentiating rabbitmq, then see my next comment","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"5f7cfa56da9a9f4dc4ca381215317a7518d8ba74","unresolved":true,"context_lines":[{"line_number":126,"context_line":"{% if prometheus_blackbox_monitor_internal_apis | bool %}"},{"line_number":127,"context_line":"{% if lookup(\u0027vars\u0027, service.name + \u0027_api_port\u0027, default\u003d\u0027\u0027)| length \u003e 0 | bool %}"},{"line_number":128,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":129,"context_line":"{% elif service.name \u003d\u003d \u0027neutron\u0027 %}"},{"line_number":130,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":131,"context_line":"{% elif service.name \u003d\u003d \u0027keystone\u0027 %}"},{"line_number":132,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":133,"context_line":"{% elif service.name \u003d\u003d \u0027rabbitmq\u0027 %}"},{"line_number":134,"context_line":"{% for host in groups[\u0027controllers\u0027] %}"},{"line_number":135,"context_line":"        - \"{{ service.name }}_{{ host | replace(\u0027-\u0027, \u0027_\u0027) }}:{% if rabbitmq_enable_tls | bool %}tls_connnect{% else %}tcp_connect{% endif %}:{{ \u0027api\u0027 | kolla_address(host) }}:{{ service.port }}\""}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"400f7bfd_40104c10","line":132,"range":{"start_line":129,"start_character":0,"end_line":132,"end_character":154},"in_reply_to":"a9b64033_be92eeda","updated":"2022-05-16 13:09:25.000000000","message":"This is needed due neutron, keystone and rabbitmq port variables not being in line with other services e.g. \"keystone_public_port\", \"neutron_server_port\" and \"rabbitmq_port\".\n\nYou could argue that rabbitmq is not an openstack service, but it is fundamental to a working system and is something that as an operator I\u0027d want being monitored out the box.\n\nmost openstack services have their port variables named like so {{some service}}_api_port\n\nI would like to come up with a better solution for handling the edge case ports like \"swift_object_server_port\". Open to suggestions.","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"316f5ff1e749b34567d8885f73b8191fe46c1889","unresolved":true,"context_lines":[{"line_number":131,"context_line":"{% elif service.name \u003d\u003d \u0027keystone\u0027 %}"},{"line_number":132,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":133,"context_line":"{% elif service.name \u003d\u003d \u0027rabbitmq\u0027 %}"},{"line_number":134,"context_line":"{% for host in groups[\u0027controllers\u0027] %}"},{"line_number":135,"context_line":"        - \"{{ service.name }}_{{ host | replace(\u0027-\u0027, \u0027_\u0027) }}:{% if rabbitmq_enable_tls | bool %}tls_connnect{% else %}tcp_connect{% endif %}:{{ \u0027api\u0027 | kolla_address(host) }}:{{ service.port }}\""},{"line_number":136,"context_line":"{% endfor %}"},{"line_number":137,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"7a155ade_8dcdaaa3","line":134,"range":{"start_line":134,"start_character":23,"end_line":134,"end_character":34},"updated":"2022-05-16 12:11:22.000000000","message":"we need rabbitmq host group name here, it gets non-trivial; maybe let\u0027s focus on haproxied services in this patch and extend later?","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"389ea8b0952aa8f35d23c902b3da5a503eb0b44a","unresolved":false,"context_lines":[{"line_number":131,"context_line":"{% elif service.name \u003d\u003d \u0027keystone\u0027 %}"},{"line_number":132,"context_line":"        - \"{{ service.name }}_internal:os_endpoint:{{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":133,"context_line":"{% elif service.name \u003d\u003d \u0027rabbitmq\u0027 %}"},{"line_number":134,"context_line":"{% for host in groups[\u0027controllers\u0027] %}"},{"line_number":135,"context_line":"        - \"{{ service.name }}_{{ host | replace(\u0027-\u0027, \u0027_\u0027) }}:{% if rabbitmq_enable_tls | bool %}tls_connnect{% else %}tcp_connect{% endif %}:{{ \u0027api\u0027 | kolla_address(host) }}:{{ service.port }}\""},{"line_number":136,"context_line":"{% endfor %}"},{"line_number":137,"context_line":"{% endif %}"}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"ab4263eb_1be71d45","line":134,"range":{"start_line":134,"start_character":23,"end_line":134,"end_character":34},"in_reply_to":"7a155ade_8dcdaaa3","updated":"2022-05-16 14:59:30.000000000","message":"Done","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"316f5ff1e749b34567d8885f73b8191fe46c1889","unresolved":true,"context_lines":[{"line_number":137,"context_line":"{% endif %}"},{"line_number":138,"context_line":"{% endif %}"},{"line_number":139,"context_line":"{% if prometheus_blackbox_monitor_external_apis | bool %}"},{"line_number":140,"context_line":"{% if lookup(\u0027vars\u0027, service.name + \u0027_api_port\u0027, default\u003d\u0027\u0027)| length \u003e 0 | bool %}"},{"line_number":141,"context_line":"        - \"{{ service.name }}_public:os_endpoint:{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":142,"context_line":"{% elif service.name \u003d\u003d \u0027neutron\u0027 %}"},{"line_number":143,"context_line":"        - \"{{ service.name }}_public:os_endpoint:{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"6a3c23a5_2a834129","line":140,"range":{"start_line":140,"start_character":60,"end_line":140,"end_character":61},"updated":"2022-05-16 12:11:22.000000000","message":"space","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"5f7cfa56da9a9f4dc4ca381215317a7518d8ba74","unresolved":false,"context_lines":[{"line_number":137,"context_line":"{% endif %}"},{"line_number":138,"context_line":"{% endif %}"},{"line_number":139,"context_line":"{% if prometheus_blackbox_monitor_external_apis | bool %}"},{"line_number":140,"context_line":"{% if lookup(\u0027vars\u0027, service.name + \u0027_api_port\u0027, default\u003d\u0027\u0027)| length \u003e 0 | bool %}"},{"line_number":141,"context_line":"        - \"{{ service.name }}_public:os_endpoint:{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""},{"line_number":142,"context_line":"{% elif service.name \u003d\u003d \u0027neutron\u0027 %}"},{"line_number":143,"context_line":"        - \"{{ service.name }}_public:os_endpoint:{{ public_protocol }}://{{ kolla_external_fqdn | put_address_in_context(\u0027url\u0027) }}:{{ service.port }}\""}],"source_content_type":"text/x-jinja2","patch_set":2,"id":"ce2cb86d_bd20dda3","line":140,"range":{"start_line":140,"start_character":60,"end_line":140,"end_character":61},"in_reply_to":"6a3c23a5_2a834129","updated":"2022-05-16 13:09:25.000000000","message":"Ack","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"}],"releasenotes/notes/add-default-blackbox-exporter-endpoints.yaml":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"316f5ff1e749b34567d8885f73b8191fe46c1889","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Implements default blackbox exporter endpoints"},{"line_number":5,"context_line":"    for enabled openstack services. "}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ee913c30_ea78e8d4","line":5,"updated":"2022-05-16 12:11:22.000000000","message":"trailing ws","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"},{"author":{"_account_id":33307,"name":"Kyle Dean","email":"k.s-dean@outlook.com","username":"k-s-dean"},"change_message_id":"5f7cfa56da9a9f4dc4ca381215317a7518d8ba74","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Implements default blackbox exporter endpoints"},{"line_number":5,"context_line":"    for enabled openstack services. "}],"source_content_type":"text/x-yaml","patch_set":2,"id":"2d1f372d_dcc2eb54","line":5,"in_reply_to":"ee913c30_ea78e8d4","updated":"2022-05-16 13:09:25.000000000","message":"Ack","commit_id":"74a56540c0ec17f2e6cecd7465e05db005e8e597"}]}
