)]}'
{"ansible/roles/common/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":"06a80459c9c166d534f129607abb4013fb1feb00","unresolved":false,"context_lines":[{"line_number":84,"context_line":"  - \"{{ node_config_directory }}/fluentd/:{{ container_config_directory }}/:ro\""},{"line_number":85,"context_line":"  - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":86,"context_line":"  - \"kolla_logs:/var/log/kolla/\""},{"line_number":87,"context_line":"  - \"fluentd_data:/var/lib/fluentd/data/\""},{"line_number":88,"context_line":"kolla_toolbox_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":89,"context_line":"cron_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":90,"context_line":"fluentd_extra_volumes: \"{{ default_extra_volumes }}\""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7faddb67_52e305a5","line":87,"range":{"start_line":87,"start_character":27,"end_line":87,"end_character":34},"updated":"2019-08-13 16:23:25.000000000","message":"(meant this)","commit_id":"4e2e2a7d6310551ab4a2672626fc5c8bf9e26906"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e50fb85efed80eac6bac0e4054ac637fbac20e0d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"fluentd_elasticsearch_ssl_version: \"TLSv1_2\""},{"line_number":46,"context_line":"fluentd_elasticsearch_ssl_verify: \"true\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"fluentd_binary: \"{% if kolla_base_distro in \u0027ubuntu\u0027 and ansible_architecture \u003d\u003d \u0027x86_64\u0027 %}td-agent{% else %}fluentd{% endif %}\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"####################"},{"line_number":51,"context_line":"# Docker"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa7e38b_308be11e","line":48,"range":{"start_line":48,"start_character":41,"end_line":48,"end_character":43},"updated":"2019-11-14 11:13:39.000000000","message":"in [\u0027ubuntu\u0027] \n\nor\n\n\u003d\u003d \u0027ubuntu\u0027\n\nI think this was taken from the set_fact in config.yml. I guess it will work as it\u0027s a substring check.","commit_id":"2c9f25ce54297cee8340d7cc7e1a4ae1cabd279a"},{"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":"c826c92befdc983044bbe8384b2a8ae6cbaf00e7","unresolved":false,"context_lines":[{"line_number":45,"context_line":"fluentd_elasticsearch_ssl_version: \"TLSv1_2\""},{"line_number":46,"context_line":"fluentd_elasticsearch_ssl_verify: \"true\""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"fluentd_binary: \"{% if kolla_base_distro in \u0027ubuntu\u0027 and ansible_architecture \u003d\u003d \u0027x86_64\u0027 %}td-agent{% else %}fluentd{% endif %}\""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"####################"},{"line_number":51,"context_line":"# Docker"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa7e38b_90f7358d","line":48,"range":{"start_line":48,"start_character":41,"end_line":48,"end_character":43},"in_reply_to":"3fa7e38b_308be11e","updated":"2019-11-14 11:19:26.000000000","message":"to fix\n\ndon\u0027t we have more with td-agent now, huh?","commit_id":"2c9f25ce54297cee8340d7cc7e1a4ae1cabd279a"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e50fb85efed80eac6bac0e4054ac637fbac20e0d","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  - \"{{ node_config_directory }}/fluentd/:{{ container_config_directory }}/:ro\""},{"line_number":87,"context_line":"  - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":88,"context_line":"  - \"kolla_logs:/var/log/kolla/\""},{"line_number":89,"context_line":"  - \"fluentd_data:/var/lib/{{ fluentd_binary }}/data/\""},{"line_number":90,"context_line":"kolla_toolbox_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":91,"context_line":"cron_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":92,"context_line":"fluentd_extra_volumes: \"{{ default_extra_volumes }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa7e38b_d0960d3f","line":89,"range":{"start_line":89,"start_character":30,"end_line":89,"end_character":44},"updated":"2019-11-14 11:13:39.000000000","message":"This kind of breaks the image label checking we have. Maybe it\u0027s ok as we\u0027re past the transition period.","commit_id":"2c9f25ce54297cee8340d7cc7e1a4ae1cabd279a"},{"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":"c826c92befdc983044bbe8384b2a8ae6cbaf00e7","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  - \"{{ node_config_directory }}/fluentd/:{{ container_config_directory }}/:ro\""},{"line_number":87,"context_line":"  - \"/etc/localtime:/etc/localtime:ro\""},{"line_number":88,"context_line":"  - \"kolla_logs:/var/log/kolla/\""},{"line_number":89,"context_line":"  - \"fluentd_data:/var/lib/{{ fluentd_binary }}/data/\""},{"line_number":90,"context_line":"kolla_toolbox_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":91,"context_line":"cron_extra_volumes: \"{{ default_extra_volumes }}\""},{"line_number":92,"context_line":"fluentd_extra_volumes: \"{{ default_extra_volumes }}\""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa7e38b_302c4100","line":89,"range":{"start_line":89,"start_character":30,"end_line":89,"end_character":44},"in_reply_to":"3fa7e38b_d0960d3f","updated":"2019-11-14 11:19:26.000000000","message":"we should stick to using labels","commit_id":"2c9f25ce54297cee8340d7cc7e1a4ae1cabd279a"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"54dfee56553ccb9ba5eaffec141507033a89b4c0","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# NOTE(yoctozepto): due to the way we use the dictionary below, we need this"},{"line_number":9,"context_line":"# variable defined (its contents are adjusted during play)"},{"line_number":10,"context_line":"fluentd_binary: \"\""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"common_services:"},{"line_number":13,"context_line":"  fluentd:"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"3fa7e38b_98007e05","line":10,"updated":"2019-12-09 11:28:10.000000000","message":"I don\u0027t want to drag this patch out any longer, but wouldn\u0027t it be simpler to just make the buffer volume path static eg. `/var/lib/buffer/` or have I missed something?","commit_id":"3b7bf68b92223961005e11611c7e9a279eedd5bf"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"fe341809e00ff1033d2cd8029ec5e612ee9f06f8","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# NOTE(yoctozepto): due to the way we use the dictionary below, we need this"},{"line_number":9,"context_line":"# variable defined (its contents are adjusted during play)"},{"line_number":10,"context_line":"fluentd_binary: \"\""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"common_services:"},{"line_number":13,"context_line":"  fluentd:"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"3fa7e38b_4e824001","line":10,"in_reply_to":"3fa7e38b_131f8f70","updated":"2019-12-09 13:25:45.000000000","message":"Yeah, that\u0027s fine too. I think unless there is a good reason not to, my vote is for a single, static path for all fluentd versions. Now is the time to do it, because there is no buffering currently.","commit_id":"3b7bf68b92223961005e11611c7e9a279eedd5bf"},{"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":"41171474ef657ff146e640e66020efa347121f33","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# NOTE(yoctozepto): due to the way we use the dictionary below, we need this"},{"line_number":9,"context_line":"# variable defined (its contents are adjusted during play)"},{"line_number":10,"context_line":"fluentd_binary: \"\""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"common_services:"},{"line_number":13,"context_line":"  fluentd:"}],"source_content_type":"text/x-yaml","patch_set":16,"id":"3fa7e38b_131f8f70","line":10,"in_reply_to":"3fa7e38b_98007e05","updated":"2019-12-09 12:45:49.000000000","message":"/buffer could be as fine probably. :-) Up to other cores.","commit_id":"3b7bf68b92223961005e11611c7e9a279eedd5bf"}],"ansible/roles/common/templates/conf/output/00-local.conf.j2":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"09d9f8b375109a68e4ecdace30fe9d3b37ef6884","unresolved":false,"context_lines":[{"line_number":17,"context_line":"       flush_interval 15s"},{"line_number":18,"context_line":"       reconnect_on_error true"},{"line_number":19,"context_line":"       buffer_type file"},{"line_number":20,"context_line":"       buffer_path /var/lib/fluentd/data/elasticsearch.buffer/"},{"line_number":21,"context_line":"  \u003c/store\u003e"},{"line_number":22,"context_line":"{% elif enable_monasca | bool %}"},{"line_number":23,"context_line":"    type copy"}],"source_content_type":"text/x-jinja2","patch_set":4,"id":"9fb8cfa7_44bcd6ba","line":20,"range":{"start_line":20,"start_character":19,"end_line":20,"end_character":62},"updated":"2019-06-19 11:25:31.000000000","message":"According to the docs I think this (and the one below) will need to be unique. Something like:\n\n/var/lib/fluentd/data/syslog-swift-elasticsearch.*.buffer","commit_id":"3caa6dd4e92b905351d3c05a1efa1d957723f999"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"00f0c890c42fdce69165b11a0a17d38f04640de8","unresolved":false,"context_lines":[{"line_number":17,"context_line":"       flush_interval 15s"},{"line_number":18,"context_line":"       reconnect_on_error true"},{"line_number":19,"context_line":"       buffer_type file"},{"line_number":20,"context_line":"       buffer_path /var/lib/fluentd/data/elasticsearch.buffer/"},{"line_number":21,"context_line":"  \u003c/store\u003e"},{"line_number":22,"context_line":"{% elif enable_monasca | bool %}"},{"line_number":23,"context_line":"    type copy"}],"source_content_type":"text/x-jinja2","patch_set":4,"id":"9fb8cfa7_954b63af","line":20,"range":{"start_line":20,"start_character":19,"end_line":20,"end_character":62},"in_reply_to":"9fb8cfa7_44bcd6ba","updated":"2019-06-26 17:29:48.000000000","message":"Yes, it has to be unique, but adding * doesn\u0027t work - fluentd is complaining that it\u0027s not unique then. I\u0027ve tried a different approach, moving each output plugin to its own subdirectory, and that seems to be working fine.","commit_id":"3caa6dd4e92b905351d3c05a1efa1d957723f999"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"b0d1debb8b457b094a8c2383f146c246099fb73b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"       flush_interval 15s"},{"line_number":18,"context_line":"       reconnect_on_error true"},{"line_number":19,"context_line":"       buffer_type file"},{"line_number":20,"context_line":"       buffer_path /var/lib/fluentd/data/elasticsearch.buffer/"},{"line_number":21,"context_line":"  \u003c/store\u003e"},{"line_number":22,"context_line":"{% elif enable_monasca | bool %}"},{"line_number":23,"context_line":"    type copy"}],"source_content_type":"text/x-jinja2","patch_set":4,"id":"9fb8cfa7_fa463f50","line":20,"range":{"start_line":20,"start_character":19,"end_line":20,"end_character":62},"in_reply_to":"9fb8cfa7_954b63af","updated":"2019-06-27 08:12:20.000000000","message":"Hmm did you try different prefixes and the *? The docs seem to imply that it is required:\n\n` The \u0027*\u0027 is replaced with random characters. This parameter is require` [1]\n\nI guess it might work without it for the first buffer chunk, but what does it do when it writes additional chunks?\n\n[1] https://docs.fluentd.org/v/0.12/buffer/file#buffer_path-required","commit_id":"3caa6dd4e92b905351d3c05a1efa1d957723f999"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"f6957785efd4f90e7e7d664a359e2ebec34db988","unresolved":false,"context_lines":[{"line_number":17,"context_line":"       flush_interval 15s"},{"line_number":18,"context_line":"       reconnect_on_error true"},{"line_number":19,"context_line":"       buffer_type file"},{"line_number":20,"context_line":"       buffer_path /var/lib/fluentd/data/elasticsearch.buffer/"},{"line_number":21,"context_line":"  \u003c/store\u003e"},{"line_number":22,"context_line":"{% elif enable_monasca | bool %}"},{"line_number":23,"context_line":"    type copy"}],"source_content_type":"text/x-jinja2","patch_set":4,"id":"9fb8cfa7_da7edbe2","line":20,"range":{"start_line":20,"start_character":19,"end_line":20,"end_character":62},"in_reply_to":"9fb8cfa7_fa463f50","updated":"2019-08-05 10:39:37.000000000","message":"So here\u0027s how ubuntu version behaves with two diffferent configs:\n\nFirst, with each output plugin getting its own subdirectory, like `/var/lib/fluentd/data/elasticsearch.buffer/local1`:\n\n```\n/var/lib/fluentd/data/elasticsearch.buffer/local0:\ntotal 0\n\n/var/lib/fluentd/data/elasticsearch.buffer/local1:\ntotal 36\n-rw-r--r-- 1 td-agent td-agent 31121 Jun 27 08:24 buffer.b58c49e456e15243be487756355ddba9a.log\n-rw-r--r-- 1 td-agent td-agent    82 Jun 27 08:24 buffer.b58c49e456e15243be487756355ddba9a.log.meta\n\n/var/lib/fluentd/data/elasticsearch.buffer/openstack:\ntotal 56\n-rw-r--r-- 1 td-agent td-agent 23103 Jun 27 08:24 buffer.b58c49e45d1f7fcbd1f97b826a92953b4.log\n-rw-r--r-- 1 td-agent td-agent    75 Jun 27 08:24 buffer.b58c49e45d1f7fcbd1f97b826a92953b4.log.meta\n-rw-r--r-- 1 td-agent td-agent 15217 Jun 27 08:24 buffer.b58c49e45e5bc79d79bc8b7ee27d5d5d1.log\n-rw-r--r-- 1 td-agent td-agent    77 Jun 27 08:24 buffer.b58c49e45e5bc79d79bc8b7ee27d5d5d1.log.meta\n-rw-r--r-- 1 td-agent td-agent  3375 Jun 27 08:24 buffer.b58c49e4c95911f164fb602b9c0fcd9f6.log\n-rw-r--r-- 1 td-agent td-agent    80 Jun 27 08:24 buffer.b58c49e4c95911f164fb602b9c0fcd9f6.log.meta\n```\n\nIn every subdirectory, we get random files per buffer chunk.\n\nHere\u0027s how it works with different path, in a single subfolder, with * in its name, for example `/var/lib/fluentd/data/elasticsearch.buffer/local1.*.path`:\n\n```\n/var/lib/fluentd/data/elasticsearch.buffer/:\ntotal 52\n-rw-r--r-- 1 td-agent td-agent 9777 Jun 27 08:31 elastic.b58c49fcdf9dc191d68786d3d4d3f522d.path\n-rw-r--r-- 1 td-agent td-agent   80 Jun 27 08:31 elastic.b58c49fcdf9dc191d68786d3d4d3f522d.path.meta\n-rw-r--r-- 1 td-agent td-agent  929 Jun 27 08:31 elastic.b58c49fce75d5a1cca32beec0e76bcca6.path\n-rw-r--r-- 1 td-agent td-agent   75 Jun 27 08:31 elastic.b58c49fce75d5a1cca32beec0e76bcca6.path.meta\n-rw-r--r-- 1 td-agent td-agent  528 Jun 27 08:31 elastic.q58c49fc7b42eccc5ee8a561be300b09a.path\n-rw-r--r-- 1 td-agent td-agent   77 Jun 27 08:31 elastic.q58c49fc7b42eccc5ee8a561be300b09a.path.meta\ndrwxr-xr-x 2 td-agent td-agent 4096 Jun 26 17:23 local0\ndrwxr-xr-x 2 td-agent td-agent 4096 Jun 27 08:27 local1\n-rw-r--r-- 1 td-agent td-agent  756 Jun 27 08:31 local1.b58c49fd69b989a6cf2d7c62f737b4210.path\n-rw-r--r-- 1 td-agent td-agent   82 Jun 27 08:31 local1.b58c49fd69b989a6cf2d7c62f737b4210.path.meta\ndrwxr-xr-x 2 td-agent td-agent 4096 Jun 27 08:27 openstack\n```\n\nIt seems both variants achieve the same result? I think my first example, with separate subdirectories is what fluentd documentation recommends, under \"Here is the correct version to avoid prefix problem.\" example.\n\nI\u0027ve asked that question on fluentd slack, but there isn\u0027t much traffic there so I\u0027m not sure when I\u0027ll get some clarification on that.\n\n(much later - it seems I\u0027ve never posted the comment) Given that I don\u0027t know how older versions of fluentd behave, and unclear documentation, I\u0027ve added the \u0027*\u0027 to buffer_path everywhere - it will behave as my second example","commit_id":"3caa6dd4e92b905351d3c05a1efa1d957723f999"},{"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":"06a80459c9c166d534f129607abb4013fb1feb00","unresolved":false,"context_lines":[{"line_number":29,"context_line":"       flush_interval 15s"},{"line_number":30,"context_line":"       reconnect_on_error true"},{"line_number":31,"context_line":"       buffer_type file"},{"line_number":32,"context_line":"       buffer_path /var/lib/fluentd/data/elasticsearch.buffer/{{ syslog_swift_facility }}.*"},{"line_number":33,"context_line":"  \u003c/store\u003e"},{"line_number":34,"context_line":"{% elif enable_monasca | bool %}"},{"line_number":35,"context_line":"    type copy"}],"source_content_type":"text/x-jinja2","patch_set":8,"id":"7faddb67_72de41db","line":32,"range":{"start_line":32,"start_character":28,"end_line":32,"end_character":35},"updated":"2019-08-13 16:23:25.000000000","message":"ditto","commit_id":"4e2e2a7d6310551ab4a2672626fc5c8bf9e26906"},{"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":"06a80459c9c166d534f129607abb4013fb1feb00","unresolved":false,"context_lines":[{"line_number":80,"context_line":"       flush_interval 15s"},{"line_number":81,"context_line":"       reconnect_on_error true"},{"line_number":82,"context_line":"       buffer_type file"},{"line_number":83,"context_line":"       buffer_path /var/lib/fluentd/data/elasticsearch.buffer/{{ syslog_haproxy_facility }}.*"},{"line_number":84,"context_line":"  \u003c/store\u003e"},{"line_number":85,"context_line":"{% elif enable_monasca | bool %}"},{"line_number":86,"context_line":"    type copy"}],"source_content_type":"text/x-jinja2","patch_set":8,"id":"7faddb67_12efcd87","line":83,"range":{"start_line":83,"start_character":28,"end_line":83,"end_character":35},"updated":"2019-08-13 16:23:25.000000000","message":"ditto","commit_id":"4e2e2a7d6310551ab4a2672626fc5c8bf9e26906"}],"ansible/roles/common/templates/conf/output/01-es.conf.j2":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"ed558cd2bd94baca6366fe4b6b1f5d028a5c1651","unresolved":false,"context_lines":[{"line_number":7,"context_line":"       logstash_format true"},{"line_number":8,"context_line":"       logstash_prefix {{ kibana_log_prefix }}"},{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_d2c23b34","line":10,"range":{"start_line":10,"start_character":7,"end_line":10,"end_character":24},"updated":"2019-05-29 09:01:35.000000000","message":"From the doc: \"reload_on_failure: Indicates that the elasticsearch-transport will try to reload the nodes addresses if there is a failure while making the request, this can be useful to quickly remove a dead node from the list of addresses.\" [1]\n\nThis plugin talks to Elasticsearch via the VIP. Does all traffic go via the VIP all of the time (in which case does this option do anything), or does it fetch a list of Elasticsearch nodes from the VIP, and then talk directly to them?\n\n\n[1] https://github.com/uken/fluent-plugin-elasticsearch/tree/v1.17.2#reload_on_failure","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"20342839376318c7458c08e8aadf170593bcde5d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"       logstash_format true"},{"line_number":8,"context_line":"       logstash_prefix {{ kibana_log_prefix }}"},{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_f512c261","line":10,"range":{"start_line":10,"start_character":7,"end_line":10,"end_character":24},"in_reply_to":"bfb3d3c7_7ae321a5","updated":"2019-05-29 15:36:25.000000000","message":"Thanks for investigating this.","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"4b370a8df3a51a3eb358f7abc885c435c18f0677","unresolved":false,"context_lines":[{"line_number":7,"context_line":"       logstash_format true"},{"line_number":8,"context_line":"       logstash_prefix {{ kibana_log_prefix }}"},{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_7ae321a5","line":10,"range":{"start_line":10,"start_character":7,"end_line":10,"end_character":24},"in_reply_to":"bfb3d3c7_d2c23b34","updated":"2019-05-29 15:07:29.000000000","message":"Good point, I just look at tcpdump and the plugin only ever pushes to the VIP, and not the nodes. There is a separate configuration stanza (`hosts`) to add more endpoints.\n\nI\u0027ll remove it.","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"dd5e2bd6fffd3541f9bc10fe2258b36d07b69ca1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"       logstash_format true"},{"line_number":8,"context_line":"       logstash_prefix {{ kibana_log_prefix }}"},{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_2149f25e","line":10,"range":{"start_line":10,"start_character":7,"end_line":10,"end_character":24},"in_reply_to":"bfb3d3c7_f512c261","updated":"2019-05-30 06:26:02.000000000","message":"Done","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"ed558cd2bd94baca6366fe4b6b1f5d028a5c1651","unresolved":false,"context_lines":[{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_d2f0fb93","line":12,"updated":"2019-05-29 09:01:35.000000000","message":"Any reason not to use the plugin buffer options rather than define a buffer section?\n\nhttps://github.com/uken/fluent-plugin-elasticsearch/tree/v1.17.2#buffered-output-options","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"a3c86d61749a7e77837344fcfef9c8a905b3491d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_8c0b3528","line":12,"in_reply_to":"bfb3d3c7_415d0613","updated":"2019-05-30 08:41:34.000000000","message":"Right you are - coming from Centos land I didn\u0027t realise the Ubuntu image was running td-agent [1]. I am not sure how td-agent 1.4.2 compares to fluentd 0.12.43, but if the old style config works with it, that seems like a safe choice. Longer term is seems like we should standardise on either td-agent or fluentd.\n\n[1] https://github.com/openstack/kolla-ansible/blob/master/ansible/roles/common/templates/fluentd.json.j2#L1","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"dd5e2bd6fffd3541f9bc10fe2258b36d07b69ca1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_415d0613","line":12,"in_reply_to":"bfb3d3c7_55206eac","updated":"2019-05-30 06:26:02.000000000","message":"Hmm.. I think I\u0027m confused here or is the fluentd deployment so much different between ubuntu and centos? Ony my ubuntu-source stein deployment I have both fluentd (version 0.12.43, installed under /usr/local/bin/fluentd) and td-agent (version 1.4.2 available from /opt/td-agent/ and executed from /usr/sbin/td-agent) and td-agent is what\u0027s running in my fluentd container.\n\nDoes this differ based on the installation type and base image? I see no issue with changing the configuration back to the 0.12 style, I\u0027m just trying to understand how it all fits together.","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"ddd390b14ff1c13500b335d113c00e2644e308aa","unresolved":false,"context_lines":[{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_724ed338","line":12,"in_reply_to":"bfb3d3c7_8c0b3528","updated":"2019-05-30 13:20:27.000000000","message":"Done","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"20342839376318c7458c08e8aadf170593bcde5d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_55206eac","line":12,"in_reply_to":"bfb3d3c7_9a7a95b7","updated":"2019-05-29 15:36:25.000000000","message":"Does it work with the current version? I think we are running `0.12.42`?","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"4b370a8df3a51a3eb358f7abc885c435c18f0677","unresolved":false,"context_lines":[{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reload_on_failure true"},{"line_number":11,"context_line":"       reconnect_on_error true"},{"line_number":12,"context_line":"       \u003cbuffer\u003e"},{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_9a7a95b7","line":12,"in_reply_to":"bfb3d3c7_d2f0fb93","updated":"2019-05-29 15:07:29.000000000","message":"From the documentation [1] it seems that the `\u003cbuffer\u003e` syntax is newer and deprecates the old v0.12 style.\n\n[1] https://docs.fluentd.org/plugin-helper-overview/api-plugin-helper-compat_parameters","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"ed558cd2bd94baca6366fe4b6b1f5d028a5c1651","unresolved":false,"context_lines":[{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"},{"line_number":16,"context_line":"         path /var/run/td-agent/elasticsearch.buffer"},{"line_number":17,"context_line":"       \u003c/buffer\u003e"},{"line_number":18,"context_line":"    \u003c/store\u003e"},{"line_number":19,"context_line":"\u003c/match\u003e"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_922cc302","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":13},"updated":"2019-05-29 09:01:35.000000000","message":"How about using a docker volume to store this to improve performance? You can add one in `ansible/roles/common/defaults/main.yml`","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"dd5e2bd6fffd3541f9bc10fe2258b36d07b69ca1","unresolved":false,"context_lines":[{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"},{"line_number":16,"context_line":"         path /var/run/td-agent/elasticsearch.buffer"},{"line_number":17,"context_line":"       \u003c/buffer\u003e"},{"line_number":18,"context_line":"    \u003c/store\u003e"},{"line_number":19,"context_line":"\u003c/match\u003e"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_a1f16203","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":13},"in_reply_to":"bfb3d3c7_07216d9f","updated":"2019-05-30 06:26:02.000000000","message":"Any preference where to move it? My first idea was to mount `fluentd_data` volume to /var/lib/td-agent/data but a) that seems to be ubuntu-specific location and b) that will require modifications to the kolla repository too, to fix permissions in `extend_start.sh`.\n\nMy other idea was to mount it over `/var/lib/td-agent/` directly and reuse existing `extend_start.sh` logic, but that still does not solve the problem of this location being distribution-specific.","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"ddd390b14ff1c13500b335d113c00e2644e308aa","unresolved":false,"context_lines":[{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"},{"line_number":16,"context_line":"         path /var/run/td-agent/elasticsearch.buffer"},{"line_number":17,"context_line":"       \u003c/buffer\u003e"},{"line_number":18,"context_line":"    \u003c/store\u003e"},{"line_number":19,"context_line":"\u003c/match\u003e"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_52538fe2","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":13},"in_reply_to":"bfb3d3c7_87ac6eed","updated":"2019-05-30 13:20:27.000000000","message":"Done","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"4b370a8df3a51a3eb358f7abc885c435c18f0677","unresolved":false,"context_lines":[{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"},{"line_number":16,"context_line":"         path /var/run/td-agent/elasticsearch.buffer"},{"line_number":17,"context_line":"       \u003c/buffer\u003e"},{"line_number":18,"context_line":"    \u003c/store\u003e"},{"line_number":19,"context_line":"\u003c/match\u003e"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_9a537539","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":13},"in_reply_to":"bfb3d3c7_922cc302","updated":"2019-05-29 15:07:29.000000000","message":"Hmmm, that makes sense - operations on the overlay FS are generally slower. Should the same be done to the .pos files? If so, any idea how to migrate them from the old location to the new one so that nothing is lost on upgrades?","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"20342839376318c7458c08e8aadf170593bcde5d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"},{"line_number":16,"context_line":"         path /var/run/td-agent/elasticsearch.buffer"},{"line_number":17,"context_line":"       \u003c/buffer\u003e"},{"line_number":18,"context_line":"    \u003c/store\u003e"},{"line_number":19,"context_line":"\u003c/match\u003e"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_07216d9f","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":13},"in_reply_to":"bfb3d3c7_9a537539","updated":"2019-05-29 15:36:25.000000000","message":"Good question, I\u0027m happy for the pos files to be addressed in a different commit, so we can worry about upgrading somewhere else.","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"a3c86d61749a7e77837344fcfef9c8a905b3491d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"         @type file"},{"line_number":14,"context_line":"         flush_interval 10s"},{"line_number":15,"context_line":"         retry_timeout 10d"},{"line_number":16,"context_line":"         path /var/run/td-agent/elasticsearch.buffer"},{"line_number":17,"context_line":"       \u003c/buffer\u003e"},{"line_number":18,"context_line":"    \u003c/store\u003e"},{"line_number":19,"context_line":"\u003c/match\u003e"}],"source_content_type":"text/x-jinja2","patch_set":1,"id":"bfb3d3c7_87ac6eed","line":16,"range":{"start_line":16,"start_character":9,"end_line":16,"end_character":13},"in_reply_to":"bfb3d3c7_a1f16203","updated":"2019-05-30 08:41:34.000000000","message":"Yeah - it\u0027s bizarre that we are using td-agent on one distro and fluentd on the other.\n\nNo strong preference, but it would seem simpler to use a folder which would work for both distros rather than set the name according to the distro in use.\n\nYou should be able to manage permissions on it here:\n\nhttps://github.com/openstack/kolla-ansible/blob/master/ansible/roles/common/templates/fluentd.json.j2","commit_id":"1477a3a27409f4a22a03f201384e21532d09bf54"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"09d9f8b375109a68e4ecdace30fe9d3b37ef6884","unresolved":false,"context_lines":[{"line_number":9,"context_line":"       flush_interval 15s"},{"line_number":10,"context_line":"       reconnect_on_error true"},{"line_number":11,"context_line":"       buffer_type file"},{"line_number":12,"context_line":"       buffer_path /var/lib/fluentd/data/elasticsearch.buffer/"},{"line_number":13,"context_line":"    \u003c/store\u003e"},{"line_number":14,"context_line":"\u003c/match\u003e"}],"source_content_type":"text/x-jinja2","patch_set":4,"id":"9fb8cfa7_e4970a3a","line":12,"range":{"start_line":12,"start_character":7,"end_line":12,"end_character":18},"updated":"2019-06-19 11:25:31.000000000","message":"The docs [1] suggest that this should be something like /var/lib/fluentd/data/elasticsearch.*.buffer\n\n[1] https://docs.fluentd.org/v/0.12/buffer/file#buffer_path-required","commit_id":"3caa6dd4e92b905351d3c05a1efa1d957723f999"},{"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":"06a80459c9c166d534f129607abb4013fb1feb00","unresolved":false,"context_lines":[{"line_number":21,"context_line":"       flush_interval 15s"},{"line_number":22,"context_line":"       reconnect_on_error true"},{"line_number":23,"context_line":"       buffer_type file"},{"line_number":24,"context_line":"       buffer_path /var/lib/fluentd/data/elasticsearch.buffer/openstack.*"},{"line_number":25,"context_line":"    \u003c/store\u003e"},{"line_number":26,"context_line":"\u003c/match\u003e"}],"source_content_type":"text/x-jinja2","patch_set":8,"id":"7faddb67_32f20971","line":24,"range":{"start_line":24,"start_character":28,"end_line":24,"end_character":35},"updated":"2019-08-13 16:23:25.000000000","message":"ditto","commit_id":"4e2e2a7d6310551ab4a2672626fc5c8bf9e26906"}],"ansible/roles/common/templates/fluentd.json.j2":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"4147ef84c5d6921c7b7d655be9c787ee028fc5dc","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        {"},{"line_number":70,"context_line":"            \"path\": \"/var/lib/fluentd/data\","},{"line_number":71,"context_line":"            \"owner\": \"{{ fluentd_user }}:{{ fluentd_user }}\","},{"line_number":72,"context_line":"            \"recurse\": true"},{"line_number":73,"context_line":"        }"},{"line_number":74,"context_line":"    ]"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":5,"id":"9fb8cfa7_af932b5c","line":72,"range":{"start_line":72,"start_character":12,"end_line":72,"end_character":27},"updated":"2019-06-19 12:20:50.000000000","message":"Do we need recurse here? Doesn\u0027t the directory just need to be writeable?","commit_id":"113c52baa326eccad99c2d073060a4796bcc01b3"},{"author":{"_account_id":16036,"name":"Krzysztof Klimonda","email":"kklimonda@syntaxhighlighted.com","username":"kklimonda"},"change_message_id":"00f0c890c42fdce69165b11a0a17d38f04640de8","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        {"},{"line_number":70,"context_line":"            \"path\": \"/var/lib/fluentd/data\","},{"line_number":71,"context_line":"            \"owner\": \"{{ fluentd_user }}:{{ fluentd_user }}\","},{"line_number":72,"context_line":"            \"recurse\": true"},{"line_number":73,"context_line":"        }"},{"line_number":74,"context_line":"    ]"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":5,"id":"9fb8cfa7_d5031b41","line":72,"range":{"start_line":72,"start_character":12,"end_line":72,"end_character":27},"in_reply_to":"9fb8cfa7_af932b5c","updated":"2019-06-26 17:29:48.000000000","message":"Hmm.. there are subdirectories inside of that directory. We probably don\u0027t need it per se given that the uid/name shouldn\u0027t change, I have no good enough reason to keep it, plus other `recurse` have been added to aid a migration, so I\u0027ll just remove it.","commit_id":"113c52baa326eccad99c2d073060a4796bcc01b3"},{"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":"06a80459c9c166d534f129607abb4013fb1feb00","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            \"recurse\": true"},{"line_number":68,"context_line":"        },"},{"line_number":69,"context_line":"        {"},{"line_number":70,"context_line":"            \"path\": \"/var/lib/fluentd/data\","},{"line_number":71,"context_line":"            \"owner\": \"{{ fluentd_user }}:{{ fluentd_user }}\""},{"line_number":72,"context_line":"        }"},{"line_number":73,"context_line":"    ]"}],"source_content_type":"text/x-jinja2","patch_set":8,"id":"7faddb67_92d97df5","line":70,"range":{"start_line":70,"start_character":30,"end_line":70,"end_character":37},"updated":"2019-08-13 16:23:25.000000000","message":"ditto","commit_id":"4e2e2a7d6310551ab4a2672626fc5c8bf9e26906"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"ee151829512839483ca6e84b6ac2420801e80b74","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        },"},{"line_number":69,"context_line":"        {"},{"line_number":70,"context_line":"            \"path\": \"/var/lib/fluentd/data\","},{"line_number":71,"context_line":"            \"owner\": \"{{ fluentd_user }}:{{ fluentd_user }}\""},{"line_number":72,"context_line":"        }"},{"line_number":73,"context_line":"    ]"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":8,"id":"7faddb67_8c8324cb","line":71,"range":{"start_line":71,"start_character":12,"end_line":71,"end_character":18},"updated":"2019-11-13 14:48:07.000000000","message":"Should we make this recursive to ensure that the buffer files all have the correct ownership? Perhaps it doesn\u0027t mater","commit_id":"4e2e2a7d6310551ab4a2672626fc5c8bf9e26906"},{"author":{"_account_id":30523,"name":"Dincer Celik","email":"hello@dincercelik.com","username":"osmanlicilegi"},"change_message_id":"f05ee0f7d4f77974236ad54af569a90d86e9093e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        {"},{"line_number":70,"context_line":"            \"path\": \"/var/lib/fluentd/data\","},{"line_number":71,"context_line":"            \"owner\": \"{{ fluentd_user }}:{{ fluentd_user }}\","},{"line_number":72,"context_line":"            recurse: true"},{"line_number":73,"context_line":"        }"},{"line_number":74,"context_line":"    ]"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-jinja2","patch_set":12,"id":"3fa7e38b_74171b56","line":72,"range":{"start_line":72,"start_character":12,"end_line":72,"end_character":19},"updated":"2019-11-13 17:06:37.000000000","message":"double-quotes missing.","commit_id":"3e359db67cb5e28100ac4b2119680ead7e31d1af"}]}
