)]}'
{"doc/source/admin_guide.rst":[{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"89d84aea4b143eeb6e3afdf9fade4f8bf54999c9","unresolved":false,"context_lines":[{"line_number":439,"context_line":""},{"line_number":440,"context_line":"Note that metrics reported to StatsD are counters or timing data (which are"},{"line_number":441,"context_line":"sent in units of milliseconds).  StatsD usually expands timing data out to min,"},{"line_number":442,"context_line":"max, avg, count, and 90th percentile per per timing metric, but the details of"},{"line_number":443,"context_line":"this behavior will depend on the configuration of your StatsD server.  Some"},{"line_number":444,"context_line":"important \"gauge\" metrics may still need to be collected using another method."},{"line_number":445,"context_line":"For example, the `object-server.async_pendings` StatsD metric counts the generation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAM3%2F%2FPVg%3D","line":442,"updated":"2013-02-01 21:36:43.000000000","message":"double \"per\" on this line","commit_id":"430ef2755b0eaa7f7de6b946463aa225cfca0900"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"89d84aea4b143eeb6e3afdf9fade4f8bf54999c9","unresolved":false,"context_lines":[{"line_number":821,"context_line":"----------------------------------------------------  --------------------------------------------"},{"line_number":822,"context_line":"`proxy-server.\u003ctype\u003e.\u003cverb\u003e.\u003cstatus\u003e.timing`          Timing data for requests, start to finish."},{"line_number":823,"context_line":"                                                      The \u003cstatus\u003e portion is the numeric HTTP"},{"line_number":824,"context_line":"                                                      status code for the request (eg.  \"200\" or"},{"line_number":825,"context_line":"                                                      \"404\")."},{"line_number":826,"context_line":"`proxy-server.\u003ctype\u003e.GET.\u003cstatus\u003e.first-byte.timing`  Timing data up to completion of sending the"},{"line_number":827,"context_line":"                                                      response headers (only for GET requests)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"AAAAM3%2F%2FPVY%3D","line":824,"updated":"2013-02-01 21:36:43.000000000","message":"it\u0027s \"e.g.\" with two periods.\n\nIt was wrong before, too, but would you fix it since you\u0027re already editing this section of the admin guide?","commit_id":"430ef2755b0eaa7f7de6b946463aa225cfca0900"}],"swift/common/middleware/proxy_logging.py":[{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"89d84aea4b143eeb6e3afdf9fade4f8bf54999c9","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                status_int \u003d status_int_for_logging()"},{"line_number":189,"context_line":"                metric_name \u003d self.statsd_metric_name(req, status_int, method)"},{"line_number":190,"context_line":"                if metric_name:"},{"line_number":191,"context_line":"                    self.access_logger.timing("},{"line_number":192,"context_line":"                        metric_name + \u0027.first-byte.timing\u0027,"},{"line_number":193,"context_line":"                        (time.time() - start_time) * 1000)"},{"line_number":194,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FNvg%3D","line":191,"updated":"2013-02-01 21:36:43.000000000","message":"You could use timing_since() here instead of doing the subtraction and *1000 yourself. Not critical, but might be nice.","commit_id":"430ef2755b0eaa7f7de6b946463aa225cfca0900"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"f94832146a787c5275a8a04ffd747e3e51666f5b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        return req.environ.get(\u0027swift.orig_req_method\u0027, req.method)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def log_request(self, req, status_int, bytes_received, bytes_sent,"},{"line_number":85,"context_line":"                    request_time, client_disconnect):"},{"line_number":86,"context_line":"        \"\"\""},{"line_number":87,"context_line":"        Log a request."},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2B76M%3D","line":85,"updated":"2013-02-13 22:09:13.000000000","message":"You\u0027re removing the only use of client_disconnect in this method. Perhaps it\u0027s not needed anymore in the parameter list.","commit_id":"536bd24a8804e0c8cc919a8b26b5ae64e1f33d58"}]}
