)]}'
{"nagios/plugins/query_prometheus_alerts.py":[{"author":{"_account_id":17591,"name":"Steve Wilkerson","email":"wilkers.steve@gmail.com","username":"srwilkers"},"change_message_id":"358124ba762e26f9be3b7b2832a6610250ecedda","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            \"Unknown: Error response from prometheus: {}\".format("},{"line_number":82,"context_line":"                str(prometheus_response)))"},{"line_number":83,"context_line":"        sys.exit(STATE_UNKNOWN)"},{"line_number":84,"context_line":"    elif \u0027status\u0027 in prometheus_response and prometheus_response[\u0027data\u0027][\u0027result\u0027] \u003d\u003d []:"},{"line_number":85,"context_line":"        print("},{"line_number":86,"context_line":"            \"Unknown: Error response from prometheus: {}\".format("},{"line_number":87,"context_line":"                str(prometheus_response)))"},{"line_number":88,"context_line":"        sys.exit(STATE_UNKNOWN)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    firingScalarMessages_critical \u003d []"},{"line_number":91,"context_line":"    firingScalarMessages_warning \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9644ff75","line":88,"range":{"start_line":84,"start_character":0,"end_line":88,"end_character":31},"updated":"2019-08-14 14:00:50.000000000","message":"What scenario does this cover?  The error message is identical to the above","commit_id":"9782960e402e2285173e3b537710b3f618825816"},{"author":{"_account_id":17591,"name":"Steve Wilkerson","email":"wilkers.steve@gmail.com","username":"srwilkers"},"change_message_id":"dd4f3f598196fd7e9d4184349425de53564c7367","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            \"Unknown: Error response from prometheus: {}\".format("},{"line_number":82,"context_line":"                str(prometheus_response)))"},{"line_number":83,"context_line":"        sys.exit(STATE_UNKNOWN)"},{"line_number":84,"context_line":"    elif \u0027status\u0027 in prometheus_response and prometheus_response[\u0027data\u0027][\u0027result\u0027] \u003d\u003d []:"},{"line_number":85,"context_line":"        print("},{"line_number":86,"context_line":"            \"Unknown: Error response from prometheus: {}\".format("},{"line_number":87,"context_line":"                str(prometheus_response)))"},{"line_number":88,"context_line":"        sys.exit(STATE_UNKNOWN)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    firingScalarMessages_critical \u003d []"},{"line_number":91,"context_line":"    firingScalarMessages_warning \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_8c6b8eef","line":88,"range":{"start_line":84,"start_character":0,"end_line":88,"end_character":31},"in_reply_to":"7faddb67_9182c9ff","updated":"2019-08-14 15:03:43.000000000","message":"Okay. If the response returns with a status of success and no results, it just means there\u0027s no current alerts firing for the supplied alert name.  We can remove this, as this should be captured below with L115-127","commit_id":"9782960e402e2285173e3b537710b3f618825816"},{"author":{"_account_id":30582,"name":"RADHIKA PAI","email":"rp592h@att.com","username":"rp592h"},"change_message_id":"1569d4d8d5848ce6bda16dac9c96faca2ec27412","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            \"Unknown: Error response from prometheus: {}\".format("},{"line_number":82,"context_line":"                str(prometheus_response)))"},{"line_number":83,"context_line":"        sys.exit(STATE_UNKNOWN)"},{"line_number":84,"context_line":"    elif \u0027status\u0027 in prometheus_response and prometheus_response[\u0027data\u0027][\u0027result\u0027] \u003d\u003d []:"},{"line_number":85,"context_line":"        print("},{"line_number":86,"context_line":"            \"Unknown: Error response from prometheus: {}\".format("},{"line_number":87,"context_line":"                str(prometheus_response)))"},{"line_number":88,"context_line":"        sys.exit(STATE_UNKNOWN)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    firingScalarMessages_critical \u003d []"},{"line_number":91,"context_line":"    firingScalarMessages_warning \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9182c9ff","line":88,"range":{"start_line":84,"start_character":0,"end_line":88,"end_character":31},"in_reply_to":"7faddb67_9644ff75","updated":"2019-08-14 14:39:57.000000000","message":"For the  {u\u0027status\u0027: u\u0027success\u0027, u\u0027data\u0027: {u\u0027resultType\u0027: u\u0027vector\u0027, u\u0027result\u0027: []}}, earlier the plugin returned OK .\nTo handle this , i have added the condition.","commit_id":"9782960e402e2285173e3b537710b3f618825816"},{"author":{"_account_id":17591,"name":"Steve Wilkerson","email":"wilkers.steve@gmail.com","username":"srwilkers"},"change_message_id":"358124ba762e26f9be3b7b2832a6610250ecedda","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    for metric in prometheus_response[\u0027data\u0027][\u0027result\u0027]:"},{"line_number":93,"context_line":"        alertstate \u003d metric[\u0027metric\u0027][\u0027alertstate\u0027]"},{"line_number":94,"context_line":"        message \u003d args.msg_format.format(**metric[\u0027metric\u0027])"},{"line_number":95,"context_line":"        if alertstate \u003d\u003d \u0027firing\u0027 and severity \u003d\u003d \u0027page\u0027:"},{"line_number":96,"context_line":"            firingScalarMessages_critical.append(message)"},{"line_number":97,"context_line":"        if alertstate \u003d\u003d \u0027firing\u0027 and severity \u003d\u003d \u0027warning\u0027:"},{"line_number":98,"context_line":"            firingScalarMessages_warning.append(message)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    if firingScalarMessages_critical:"},{"line_number":101,"context_line":"        print(\",\".join(firingScalarMessages_critical))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_431b3272","line":98,"range":{"start_line":95,"start_character":0,"end_line":98,"end_character":56},"updated":"2019-08-14 14:00:50.000000000","message":"Could we handle this with a nested if instead of an \u0027and\u0027 check?","commit_id":"9782960e402e2285173e3b537710b3f618825816"},{"author":{"_account_id":30582,"name":"RADHIKA PAI","email":"rp592h@att.com","username":"rp592h"},"change_message_id":"1569d4d8d5848ce6bda16dac9c96faca2ec27412","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    for metric in prometheus_response[\u0027data\u0027][\u0027result\u0027]:"},{"line_number":93,"context_line":"        alertstate \u003d metric[\u0027metric\u0027][\u0027alertstate\u0027]"},{"line_number":94,"context_line":"        message \u003d args.msg_format.format(**metric[\u0027metric\u0027])"},{"line_number":95,"context_line":"        if alertstate \u003d\u003d \u0027firing\u0027 and severity \u003d\u003d \u0027page\u0027:"},{"line_number":96,"context_line":"            firingScalarMessages_critical.append(message)"},{"line_number":97,"context_line":"        if alertstate \u003d\u003d \u0027firing\u0027 and severity \u003d\u003d \u0027warning\u0027:"},{"line_number":98,"context_line":"            firingScalarMessages_warning.append(message)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    if firingScalarMessages_critical:"},{"line_number":101,"context_line":"        print(\",\".join(firingScalarMessages_critical))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_4c3a76cd","line":98,"range":{"start_line":95,"start_character":0,"end_line":98,"end_character":56},"in_reply_to":"7faddb67_431b3272","updated":"2019-08-14 14:39:57.000000000","message":"Yes Steve i can change this to nested. but the output of array is like this example {u\u0027status\u0027: u\u0027success\u0027, u\u0027data\u0027: {u\u0027resultType\u0027: u\u0027vector\u0027, u\u0027result\u0027: [{u\u0027metric\u0027: {u\u0027__name__\u0027: u\u0027ALERTS\u0027, u\u0027alertstate\u0027: u\u0027firing\u0027, u\u0027severity\u0027: u\u0027page\u0027, u\u0027alertname\u0027: u\u0027calico_ipset_errors_high_1h\u0027}, u\u0027value\u0027: [1565727606.177, u\u00271\u0027]}]}}. \nI see that the severity is either \"page\" or \"warning\" for a Monitor as described in the prometheus.yaml file.","commit_id":"9782960e402e2285173e3b537710b3f618825816"},{"author":{"_account_id":17591,"name":"Steve Wilkerson","email":"wilkers.steve@gmail.com","username":"srwilkers"},"change_message_id":"dd4f3f598196fd7e9d4184349425de53564c7367","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    for metric in prometheus_response[\u0027data\u0027][\u0027result\u0027]:"},{"line_number":93,"context_line":"        alertstate \u003d metric[\u0027metric\u0027][\u0027alertstate\u0027]"},{"line_number":94,"context_line":"        message \u003d args.msg_format.format(**metric[\u0027metric\u0027])"},{"line_number":95,"context_line":"        if alertstate \u003d\u003d \u0027firing\u0027 and severity \u003d\u003d \u0027page\u0027:"},{"line_number":96,"context_line":"            firingScalarMessages_critical.append(message)"},{"line_number":97,"context_line":"        if alertstate \u003d\u003d \u0027firing\u0027 and severity \u003d\u003d \u0027warning\u0027:"},{"line_number":98,"context_line":"            firingScalarMessages_warning.append(message)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    if firingScalarMessages_critical:"},{"line_number":101,"context_line":"        print(\",\".join(firingScalarMessages_critical))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_760f002e","line":98,"range":{"start_line":95,"start_character":0,"end_line":98,"end_character":56},"in_reply_to":"7faddb67_4c3a76cd","updated":"2019-08-14 15:03:43.000000000","message":"That\u0027s correct.  We can assign the severity of each result to a variable, like we do for the alertstate.  Then it just becomes:\n\n        if alertstate \u003d\u003d \u0027firing\u0027:\n            if severity \u003d\u003d \u0027page\u0027:\n                firingScalarMessages_critical.append(message)\n            if severity \u003d\u003d \u0027warning\u0027:\n                firingScalarMessages_warning.append(message)","commit_id":"9782960e402e2285173e3b537710b3f618825816"},{"author":{"_account_id":17591,"name":"Steve Wilkerson","email":"wilkers.steve@gmail.com","username":"srwilkers"},"change_message_id":"358124ba762e26f9be3b7b2832a6610250ecedda","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        if alertstate \u003d\u003d \u0027firing\u0027 and severity \u003d\u003d \u0027warning\u0027:"},{"line_number":98,"context_line":"            firingScalarMessages_warning.append(message)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    if firingScalarMessages_critical:"},{"line_number":101,"context_line":"        print(\",\".join(firingScalarMessages_critical))"},{"line_number":102,"context_line":"        sys.exit(STATE_CRITICAL)"},{"line_number":103,"context_line":"    elif firingScalarMessages_warning:"},{"line_number":104,"context_line":"        print(\",\".join(firingScalarMessages_warning))"},{"line_number":105,"context_line":"        sys.exit(STATE_WARNING)"},{"line_number":106,"context_line":"    else:"},{"line_number":107,"context_line":"        if args.metrics_csv:"},{"line_number":108,"context_line":"            metrics_available, error_messages \u003d check_prom_metrics_available("}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_71638dde","line":105,"range":{"start_line":100,"start_character":0,"end_line":105,"end_character":31},"updated":"2019-08-14 14:00:50.000000000","message":"Is it necessary to differentiate between messages?  With this approach, we\u0027d assume that we\u0027re only receiving one severity type and never both.  Can we find a way to simplify this?","commit_id":"9782960e402e2285173e3b537710b3f618825816"},{"author":{"_account_id":17591,"name":"Steve Wilkerson","email":"wilkers.steve@gmail.com","username":"srwilkers"},"change_message_id":"1254ecb6cc1319281718cd2a4bf354fde82f869d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        alertstate \u003d metric[\u0027metric\u0027][\u0027alertstate\u0027]"},{"line_number":89,"context_line":"        message \u003d args.msg_format.format(**metric[\u0027metric\u0027])"},{"line_number":90,"context_line":"        if alertstate \u003d\u003d \u0027firing\u0027:"},{"line_number":91,"context_line":"           if severity \u003d\u003d \u0027page\u0027:"},{"line_number":92,"context_line":"              firingScalarMessages_critical.append(message)"},{"line_number":93,"context_line":"           if severity \u003d\u003d \u0027warning\u0027:"},{"line_number":94,"context_line":"              firingScalarMessages_warning.append(message)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_616a82b3","line":91,"range":{"start_line":91,"start_character":14,"end_line":91,"end_character":22},"updated":"2019-08-20 15:19:53.000000000","message":"We need to define and assign the value of this variable, similar to what we do for alertstate above","commit_id":"5c193d2777a1e6c4fa741c1c0c01c327abfc0587"},{"author":{"_account_id":17591,"name":"Steve Wilkerson","email":"wilkers.steve@gmail.com","username":"srwilkers"},"change_message_id":"1254ecb6cc1319281718cd2a4bf354fde82f869d","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        if alertstate \u003d\u003d \u0027firing\u0027:"},{"line_number":91,"context_line":"           if severity \u003d\u003d \u0027page\u0027:"},{"line_number":92,"context_line":"              firingScalarMessages_critical.append(message)"},{"line_number":93,"context_line":"           if severity \u003d\u003d \u0027warning\u0027:"},{"line_number":94,"context_line":"              firingScalarMessages_warning.append(message)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    if firingScalarMessages_critical:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_21600acf","line":93,"range":{"start_line":93,"start_character":14,"end_line":93,"end_character":22},"updated":"2019-08-20 15:19:53.000000000","message":"Same","commit_id":"5c193d2777a1e6c4fa741c1c0c01c327abfc0587"}]}
