)]}'
{"conf.d/ceph.yaml.example":[{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"5d3e3e4b008edfc6c8838b1c6a4b34c8cb36f886","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    collect_usage_metrics: True # Collect cluster usage metrics"},{"line_number":6,"context_line":"    collect_stats_metrics: True # Collect cluster stats metrics"},{"line_number":7,"context_line":"    collect_mon_metrics: True # Collect metrics regarding monitors"},{"line_number":8,"context_line":"    collect_osd_metrics: True # Collect metrics regarding OSDs "},{"line_number":9,"context_line":"    collect_pool_metrics: True # Collect metrics regarding Pools"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"7f231b9d_d0d1ab59","line":8,"updated":"2017-06-12 05:39:23.000000000","message":"whitespace should go away ;-)","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16310,"name":"Flávio","email":"framalho@suse.com","username":"flaviosr"},"change_message_id":"3121ef978d4080fb8ae29010f89047357fb4f093","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    collect_usage_metrics: True # Collect cluster usage metrics"},{"line_number":6,"context_line":"    collect_stats_metrics: True # Collect cluster stats metrics"},{"line_number":7,"context_line":"    collect_mon_metrics: True # Collect metrics regarding monitors"},{"line_number":8,"context_line":"    collect_osd_metrics: True # Collect metrics regarding OSDs "},{"line_number":9,"context_line":"    collect_pool_metrics: True # Collect metrics regarding Pools"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"7f231b9d_706649f0","line":8,"in_reply_to":"7f231b9d_d0d1ab59","updated":"2017-06-12 16:31:39.000000000","message":"Done","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"}],"monasca_agent/collector/checks_d/ceph.py":[{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"5d3e3e4b008edfc6c8838b1c6a4b34c8cb36f886","unresolved":false,"context_lines":[{"line_number":14,"context_line":"import re"},{"line_number":15,"context_line":"import subprocess"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from monasca_agent.collector.checks import AgentCheck"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Ceph(AgentCheck):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_70d09751","line":17,"updated":"2017-06-12 05:39:23.000000000","message":"imports should reach as far as to the module you need, not actual object\n\n  from monasca_agent.collector import checks","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16310,"name":"Flávio","email":"framalho@suse.com","username":"flaviosr"},"change_message_id":"3121ef978d4080fb8ae29010f89047357fb4f093","unresolved":false,"context_lines":[{"line_number":14,"context_line":"import re"},{"line_number":15,"context_line":"import subprocess"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from monasca_agent.collector.checks import AgentCheck"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Ceph(AgentCheck):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_b0f741f6","line":17,"in_reply_to":"7f231b9d_70d09751","updated":"2017-06-12 16:31:39.000000000","message":"Done","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"5d3e3e4b008edfc6c8838b1c6a4b34c8cb36f886","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Ceph(AgentCheck):"},{"line_number":21,"context_line":"    CLUSTER \u003d None"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def check(self, instance):"},{"line_number":24,"context_line":"        self.CLUSTER \u003d instance.get(\u0027cluster_name\u0027, \u0027ceph\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_50c59b8d","line":21,"updated":"2017-06-12 05:39:23.000000000","message":"There\u0027s no point in having this variable here (these are class variables, shared by all instances)","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16310,"name":"Flávio","email":"framalho@suse.com","username":"flaviosr"},"change_message_id":"3121ef978d4080fb8ae29010f89047357fb4f093","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class Ceph(AgentCheck):"},{"line_number":21,"context_line":"    CLUSTER \u003d None"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def check(self, instance):"},{"line_number":24,"context_line":"        self.CLUSTER \u003d instance.get(\u0027cluster_name\u0027, \u0027ceph\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_70d9a981","line":21,"in_reply_to":"7f231b9d_50c59b8d","updated":"2017-06-12 16:31:39.000000000","message":"Done","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"5d3e3e4b008edfc6c8838b1c6a4b34c8cb36f886","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                                                \u0027service\u0027: \u0027ceph\u0027}, instance)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        # Cluster usage metrics"},{"line_number":35,"context_line":"        if collect_usage_metrics:"},{"line_number":36,"context_line":"            ceph_df \u003d self._ceph_cmd(\u0027df detail\u0027, \u0027json\u0027)"},{"line_number":37,"context_line":"            metrics \u003d self._get_usage_metrics(ceph_df)"},{"line_number":38,"context_line":"            for metric, value in metrics.iteritems():"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_f069478b","line":35,"updated":"2017-06-12 05:39:23.000000000","message":"can we wrap all the stages(options) regarding metric collection inside methods similar to the example\n\n  def _collect_usage_metrics(self):\n    if not instance.get(\u0027collect_usage_metrics\u0027, True):\n      return \n    \n    # oh, let\u0027s collect these","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16310,"name":"Flávio","email":"framalho@suse.com","username":"flaviosr"},"change_message_id":"3121ef978d4080fb8ae29010f89047357fb4f093","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                                                \u0027service\u0027: \u0027ceph\u0027}, instance)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        # Cluster usage metrics"},{"line_number":35,"context_line":"        if collect_usage_metrics:"},{"line_number":36,"context_line":"            ceph_df \u003d self._ceph_cmd(\u0027df detail\u0027, \u0027json\u0027)"},{"line_number":37,"context_line":"            metrics \u003d self._get_usage_metrics(ceph_df)"},{"line_number":38,"context_line":"            for metric, value in metrics.iteritems():"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_0bdda613","line":35,"in_reply_to":"7f231b9d_f069478b","updated":"2017-06-12 16:31:39.000000000","message":"Done","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"5d3e3e4b008edfc6c8838b1c6a4b34c8cb36f886","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        in the format {\u0027metric1\u0027: value1, ...}"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        metrics \u003d {}"},{"line_number":131,"context_line":"        cache_flush_rate_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s flush\u0027)"},{"line_number":132,"context_line":"        cache_evict_rate_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s evict\u0027)"},{"line_number":133,"context_line":"        cache_promote_ops_regex \u003d re.compile(r\u0027(\\d+) op/s promote\u0027)"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_504a3b27","line":131,"updated":"2017-06-12 05:39:23.000000000","message":"I suggest moving those regexps into module level private variables, not have them created each time we call this method\n\ni.e.\n\n  _CACHE_FLUSH_RATE_REGEX \n  _CACHE_EVICT_RATE_REGEX\n  ...","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16310,"name":"Flávio","email":"framalho@suse.com","username":"flaviosr"},"change_message_id":"3121ef978d4080fb8ae29010f89047357fb4f093","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        in the format {\u0027metric1\u0027: value1, ...}"},{"line_number":129,"context_line":"        \"\"\""},{"line_number":130,"context_line":"        metrics \u003d {}"},{"line_number":131,"context_line":"        cache_flush_rate_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s flush\u0027)"},{"line_number":132,"context_line":"        cache_evict_rate_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s evict\u0027)"},{"line_number":133,"context_line":"        cache_promote_ops_regex \u003d re.compile(r\u0027(\\d+) op/s promote\u0027)"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_700ac926","line":131,"in_reply_to":"7f231b9d_504a3b27","updated":"2017-06-12 16:31:39.000000000","message":"Done","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"5d3e3e4b008edfc6c8838b1c6a4b34c8cb36f886","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        in the format {\u0027metric1\u0027: value1, ...}"},{"line_number":169,"context_line":"        \"\"\""},{"line_number":170,"context_line":"        metrics \u003d {}"},{"line_number":171,"context_line":"        client_io_read_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s rd\u0027)"},{"line_number":172,"context_line":"        client_io_write_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s wr\u0027)"},{"line_number":173,"context_line":"        client_io_read_ops_regex \u003d re.compile(r\u0027(\\d+) op/s rd\u0027)"},{"line_number":174,"context_line":"        client_io_write_ops_regex \u003d re.compile(r\u0027(\\d+) op/s wr\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_b064efba","line":171,"updated":"2017-06-12 05:39:23.000000000","message":"Same comment here.","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16310,"name":"Flávio","email":"framalho@suse.com","username":"flaviosr"},"change_message_id":"3121ef978d4080fb8ae29010f89047357fb4f093","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        in the format {\u0027metric1\u0027: value1, ...}"},{"line_number":169,"context_line":"        \"\"\""},{"line_number":170,"context_line":"        metrics \u003d {}"},{"line_number":171,"context_line":"        client_io_read_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s rd\u0027)"},{"line_number":172,"context_line":"        client_io_write_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s wr\u0027)"},{"line_number":173,"context_line":"        client_io_read_ops_regex \u003d re.compile(r\u0027(\\d+) op/s rd\u0027)"},{"line_number":174,"context_line":"        client_io_write_ops_regex \u003d re.compile(r\u0027(\\d+) op/s wr\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_eb038a0c","line":171,"in_reply_to":"7f231b9d_b064efba","updated":"2017-06-12 16:31:39.000000000","message":"Done","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"5d3e3e4b008edfc6c8838b1c6a4b34c8cb36f886","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        in the format {\u0027metric1\u0027: value1, ...}"},{"line_number":214,"context_line":"        \"\"\""},{"line_number":215,"context_line":"        metrics \u003d {}"},{"line_number":216,"context_line":"        recovery_io_rate_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s\u0027)"},{"line_number":217,"context_line":"        recovery_io_key_regex \u003d re.compile(r\u0027(\\d+) keys/s\u0027)"},{"line_number":218,"context_line":"        recovery_io_object_regex \u003d re.compile(r\u0027(\\d+) objects/s\u0027)"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_9059f3ff","line":216,"updated":"2017-06-12 05:39:23.000000000","message":"And here and in overall :)","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"},{"author":{"_account_id":16310,"name":"Flávio","email":"framalho@suse.com","username":"flaviosr"},"change_message_id":"3121ef978d4080fb8ae29010f89047357fb4f093","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        in the format {\u0027metric1\u0027: value1, ...}"},{"line_number":214,"context_line":"        \"\"\""},{"line_number":215,"context_line":"        metrics \u003d {}"},{"line_number":216,"context_line":"        recovery_io_rate_regex \u003d re.compile(r\u0027(\\d+) ([kKmMgG][bB])/s\u0027)"},{"line_number":217,"context_line":"        recovery_io_key_regex \u003d re.compile(r\u0027(\\d+) keys/s\u0027)"},{"line_number":218,"context_line":"        recovery_io_object_regex \u003d re.compile(r\u0027(\\d+) objects/s\u0027)"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f231b9d_8b12d657","line":216,"in_reply_to":"7f231b9d_9059f3ff","updated":"2017-06-12 16:31:39.000000000","message":"Done","commit_id":"8af2fcbfb9dccd0b8c9002dbbaca0af712534dff"}]}
