)]}'
{"nagios/plugins/query_elasticsearch.py":[{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"387cf441df557bc573ff94791bd8b2b7e52b1719","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            response \u003d requests.post(url, data\u003djson.dumps(data),timeout\u003dargs.timeout,"},{"line_number":234,"context_line":"                                     headers\u003d{\"Content-Type\": \"application/json\"})"},{"line_number":235,"context_line":"    except requests.exceptions.Timeout as con_ex:"},{"line_number":236,"context_line":"        NagiosUtil.service_unknown(\u0027ES connection timed out \u0027 + str(con_ex))"},{"line_number":237,"context_line":"    except requests.exceptions.RequestException as req_ex:"},{"line_number":238,"context_line":"        NagiosUtil.service_unknown(\u0027Unexpected Error Occurred. \u0027 + str(req_ex))"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_231488e8","line":236,"range":{"start_line":236,"start_character":36,"end_line":236,"end_character":38},"updated":"2019-10-15 19:31:59.000000000","message":"Please spell this out, i.e. Elasticsearch","commit_id":"2181aed8b1ebd06cc4ef8b4ae3519ab6825b9cf2"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"0d2be0aa36279cc4f7b8e0db55f5d69787d8b89c","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    parser.add_argument(\u0027--match\u0027, type\u003dcheck_match, help\u003dmatch_help)"},{"line_number":100,"context_line":"    parser.add_argument(\u0027--range\u0027, type\u003dcheck_range, default\u003d5,"},{"line_number":101,"context_line":"                        help\u003drange_help)"},{"line_number":102,"context_line":"    parser.add_argument( \u0027--timeout\u0027, metavar\u003d\u0027timeout\u0027, type\u003dfloat, default\u003d30,"},{"line_number":103,"context_line":"                        required\u003dFalse, help\u003d\u0027Number of seconds to wait for response.\u0027)"},{"line_number":104,"context_line":"    parser.add_argument(\u0027--usr\u0027)"},{"line_number":105,"context_line":"    parser.add_argument(\u0027--pwd\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_46a8a08a","line":102,"range":{"start_line":102,"start_character":62,"end_line":102,"end_character":67},"updated":"2019-10-16 18:38:34.000000000","message":"int - unless we are going to timeout on fractional second?","commit_id":"3fcde125cb30b9415e00e8f864b92c571fdf7edc"}],"nagios/plugins/query_prometheus_alerts.py":[{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"387cf441df557bc573ff94791bd8b2b7e52b1719","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        default\u003d10,"},{"line_number":74,"context_line":"        required\u003dFalse,"},{"line_number":75,"context_line":"        help\u003d\u0027Number of seconds to wait for response.\u0027)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    args \u003d parser.parse_args()"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_a3ab9885","line":76,"updated":"2019-10-15 19:31:59.000000000","message":"Please remove this line","commit_id":"2181aed8b1ebd06cc4ef8b4ae3519ab6825b9cf2"},{"author":{"_account_id":28618,"name":"Drew Walters","email":"drewwalters@microsoft.com","username":"drewwalters96"},"change_message_id":"387cf441df557bc573ff94791bd8b2b7e52b1719","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        sys.exit(STATE_OK)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"def query_prometheus(prometheus_api, alertname, labels_csv,timeout):"},{"line_number":136,"context_line":"    error_messages \u003d []"},{"line_number":137,"context_line":"    response_json \u003d dict()"},{"line_number":138,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_03ee2cec","line":135,"updated":"2019-10-15 19:31:59.000000000","message":"space needed here","commit_id":"2181aed8b1ebd06cc4ef8b4ae3519ab6825b9cf2"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a54d5209eb55c181473c159e65c6975f5cd00533","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        \u0027--timeout\u0027,"},{"line_number":71,"context_line":"        metavar\u003d\u0027timeout\u0027,"},{"line_number":72,"context_line":"        type\u003dfloat,"},{"line_number":73,"context_line":"        default\u003d10,"},{"line_number":74,"context_line":"        required\u003dFalse,"},{"line_number":75,"context_line":"        help\u003d\u0027Number of seconds to wait for response.\u0027)"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_9a96f93d","line":73,"range":{"start_line":73,"start_character":16,"end_line":73,"end_character":19},"updated":"2019-10-16 02:55:21.000000000","message":"should this be also 30 inline with the other timeout? or is 10 the desired value?","commit_id":"66f0df65c0a639925989de0c4e9e215d80e177e4"},{"author":{"_account_id":18295,"name":"John Lawrence","email":"jl401j@us.att.com","username":"jl401j"},"change_message_id":"54f1caf013acb15a2212d4abe0f6d0e99f855b92","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        \u0027--timeout\u0027,"},{"line_number":71,"context_line":"        metavar\u003d\u0027timeout\u0027,"},{"line_number":72,"context_line":"        type\u003dfloat,"},{"line_number":73,"context_line":"        default\u003d10,"},{"line_number":74,"context_line":"        required\u003dFalse,"},{"line_number":75,"context_line":"        help\u003d\u0027Number of seconds to wait for response.\u0027)"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_111ae7c4","line":73,"range":{"start_line":73,"start_character":16,"end_line":73,"end_character":19},"in_reply_to":"3fa7e38b_9a96f93d","updated":"2019-10-16 15:00:15.000000000","message":"The 30 seconds timeout is for the elasticsearch queries. Because sometimes the ES query will take longer. I tested with  10 seconds for the prometheus and seems to be good. Anyway, I added 20 seconds now. Please let me know if it is reasonable or not.","commit_id":"66f0df65c0a639925989de0c4e9e215d80e177e4"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a54d5209eb55c181473c159e65c6975f5cd00533","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    args \u003d parser.parse_args()"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    prometheus_response, error_messages \u003d query_prometheus("},{"line_number":80,"context_line":"        args.prometheus_api, args.alertname, args.labels_csv,args.timeout)"},{"line_number":81,"context_line":"    if error_messages:"},{"line_number":82,"context_line":"        print("},{"line_number":83,"context_line":"            \"Unknown: unable to query prometheus alerts. {}\".format("}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_da8b111c","line":80,"updated":"2019-10-16 02:55:21.000000000","message":"missing space","commit_id":"66f0df65c0a639925989de0c4e9e215d80e177e4"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a54d5209eb55c181473c159e65c6975f5cd00533","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    else:"},{"line_number":111,"context_line":"        if args.metrics_csv:"},{"line_number":112,"context_line":"            metrics_available, error_messages \u003d check_prom_metrics_available("},{"line_number":113,"context_line":"                args.prometheus_api, args.metrics_csv.split(\",\"), args.labels_csv,args.timeout)"},{"line_number":114,"context_line":"            if not metrics_available and not error_messages:"},{"line_number":115,"context_line":"                print("},{"line_number":116,"context_line":"                    \"UNKNOWN: no metrics available to evaluate alert. Please ensure following metrics are flowing to the system: {}\".format("}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_fa8e0d2c","line":113,"updated":"2019-10-16 02:55:21.000000000","message":"missing space.","commit_id":"66f0df65c0a639925989de0c4e9e215d80e177e4"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a54d5209eb55c181473c159e65c6975f5cd00533","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        response \u003d requests.get("},{"line_number":144,"context_line":"            include_schema(prometheus_api) +"},{"line_number":145,"context_line":"            \"/api/v1/query\","},{"line_number":146,"context_line":"            params\u003dquery,timeout\u003dtimeout)"},{"line_number":147,"context_line":"        response_json \u003d response.json()"},{"line_number":148,"context_line":"    except requests.exceptions.Timeout as timeoutException:"},{"line_number":149,"context_line":"        error_messages.append("}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_9a8119fe","line":146,"updated":"2019-10-16 02:55:21.000000000","message":"ditto","commit_id":"66f0df65c0a639925989de0c4e9e215d80e177e4"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a54d5209eb55c181473c159e65c6975f5cd00533","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            \"/api/v1/query\","},{"line_number":146,"context_line":"            params\u003dquery,timeout\u003dtimeout)"},{"line_number":147,"context_line":"        response_json \u003d response.json()"},{"line_number":148,"context_line":"    except requests.exceptions.Timeout as timeoutException:"},{"line_number":149,"context_line":"        error_messages.append("},{"line_number":150,"context_line":"            \"ERROR while invoking prometheus api, Connection timed out, the maximum timeout value of {} seconds\".format(timeout))"},{"line_number":151,"context_line":"    except Exception as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_5a7f2114","line":148,"range":{"start_line":148,"start_character":39,"end_line":148,"end_character":58},"updated":"2019-10-16 02:55:21.000000000","message":"not used","commit_id":"66f0df65c0a639925989de0c4e9e215d80e177e4"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a54d5209eb55c181473c159e65c6975f5cd00533","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    return response_json, error_messages"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"def check_prom_metrics_available(prometheus_api, metrics, labels_csv,timeout):"},{"line_number":160,"context_line":"    error_messages \u003d []"},{"line_number":161,"context_line":"    metrics_available \u003d False"},{"line_number":162,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_1a752932","line":159,"updated":"2019-10-16 02:55:21.000000000","message":"space","commit_id":"66f0df65c0a639925989de0c4e9e215d80e177e4"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a54d5209eb55c181473c159e65c6975f5cd00533","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        response \u003d requests.get("},{"line_number":175,"context_line":"            include_schema(prometheus_api) +"},{"line_number":176,"context_line":"            \"/api/v1/query\","},{"line_number":177,"context_line":"            params\u003dquery,timeout\u003dtimeout)"},{"line_number":178,"context_line":"        response_json \u003d response.json()"},{"line_number":179,"context_line":"        if response_json[\u0027data\u0027][\u0027result\u0027]:"},{"line_number":180,"context_line":"            if response_json[\u0027data\u0027][\u0027result\u0027][0][\u0027value\u0027][1] \u003d\u003d \"1\":"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_3a702540","line":177,"updated":"2019-10-16 02:55:21.000000000","message":"space","commit_id":"66f0df65c0a639925989de0c4e9e215d80e177e4"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a54d5209eb55c181473c159e65c6975f5cd00533","unresolved":false,"context_lines":[{"line_number":181,"context_line":"                metrics_available \u003d False"},{"line_number":182,"context_line":"            else:"},{"line_number":183,"context_line":"                metrics_available \u003d True"},{"line_number":184,"context_line":"    except requests.exceptions.Timeout as timeoutException:"},{"line_number":185,"context_line":"        error_messages.append("},{"line_number":186,"context_line":"            \"ERROR while invoking prometheus api, Connection timed out, the maximum timeout value of {} seconds\".format(timeout))"},{"line_number":187,"context_line":"    except Exception as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_da90f145","line":184,"range":{"start_line":184,"start_character":38,"end_line":184,"end_character":59},"updated":"2019-10-16 02:55:21.000000000","message":"unused","commit_id":"66f0df65c0a639925989de0c4e9e215d80e177e4"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"0d2be0aa36279cc4f7b8e0db55f5d69787d8b89c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    parser.add_argument("},{"line_number":70,"context_line":"        \u0027--timeout\u0027,"},{"line_number":71,"context_line":"        metavar\u003d\u0027timeout\u0027,"},{"line_number":72,"context_line":"        type\u003dfloat,"},{"line_number":73,"context_line":"        default\u003d20,"},{"line_number":74,"context_line":"        required\u003dFalse,"},{"line_number":75,"context_line":"        help\u003d\u0027Number of seconds to wait for response.\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_c6c6d068","line":72,"range":{"start_line":72,"start_character":13,"end_line":72,"end_character":18},"updated":"2019-10-16 18:38:34.000000000","message":"int - unless we are going to timeout on fractional second?","commit_id":"3fcde125cb30b9415e00e8f864b92c571fdf7edc"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"0d2be0aa36279cc4f7b8e0db55f5d69787d8b89c","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        response \u003d requests.get("},{"line_number":144,"context_line":"            include_schema(prometheus_api) +"},{"line_number":145,"context_line":"            \"/api/v1/query\","},{"line_number":146,"context_line":"            params\u003dquery,timeout\u003dtimeout)"},{"line_number":147,"context_line":"        response_json \u003d response.json()"},{"line_number":148,"context_line":"    except requests.exceptions.Timeout:"},{"line_number":149,"context_line":"        error_messages.append("}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_46b3c00a","line":146,"range":{"start_line":146,"start_character":24,"end_line":146,"end_character":26},"updated":"2019-10-16 18:38:34.000000000","message":"space, but okay with follow on PS","commit_id":"3fcde125cb30b9415e00e8f864b92c571fdf7edc"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"0d2be0aa36279cc4f7b8e0db55f5d69787d8b89c","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    return response_json, error_messages"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"def check_prom_metrics_available(prometheus_api, metrics, labels_csv,timeout):"},{"line_number":160,"context_line":"    error_messages \u003d []"},{"line_number":161,"context_line":"    metrics_available \u003d False"},{"line_number":162,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_66b6fcfb","line":159,"range":{"start_line":159,"start_character":68,"end_line":159,"end_character":70},"updated":"2019-10-16 18:38:34.000000000","message":"ditto","commit_id":"3fcde125cb30b9415e00e8f864b92c571fdf7edc"}]}
