def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False app.config['PLUGINS'] = ['reject'] self.app = app.test_client() self.resource = str(uuid4()).upper()[:8] self.reject_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': [], # alert will be rejected because service not defined 'severity': 'warning', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.accept_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], # alert will be accepted because service not defined 'severity': 'warning', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.headers = { 'Content-type': 'application/json' }
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False app.config['PLUGINS'] = ['reject'] self.app = app.test_client() self.resource = str(uuid4()).upper()[:8] self.reject_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': [], # alert will be rejected because service not defined 'severity': 'warning', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.accept_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], # alert will be accepted because service not defined 'severity': 'warning', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.headers = {'Content-type': 'application/json'}
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() self.resource = str(uuid4()).upper()[:8] self.node_down_alert = { 'event': 'node_down', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': { 'ip': '10.0.3.4' } } self.node_up_alert = { 'event': 'node_up', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'normal', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': { 'ip': '10.0.3.4' } } self.headers = {'Content-type': 'application/json'}
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() self.resource = str(uuid4()).upper()[:8] self.fatal_alert = { 'event': 'node_down', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': { 'foo': 'abc def', 'bar': 1234, 'baz': False } } self.critical_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.major_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'major', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.warn_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'warning', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.normal_alert = { 'event': 'node_up', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'normal', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.headers = { 'Content-type': 'application/json', 'X-Forwarded-For': '10.0.0.1' }
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False app.config['CORS_ORIGINS'] = ['http://localhost:5000', 'http://try.alerta.io'] app.config['CORS_ALLOWED_HEADERS'] = ['Content-Type', 'Authorization', 'X-PING-PONG'] self.app = app.test_client() CORS(self.app.application, origins=app.config['CORS_ORIGINS'])
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() self.prometheus_alert = """ { "alerts": [ { "annotations": { "description": "Connect to host2 fails", "summary": "Connect fail" }, "endsAt": "0001-01-01T00:00:00Z", "generatorURL": "http://prometheus.host:9090/...", "labels": { "__name__": "ping_success", "alertname": "failedConnect", "environment": "Production", "instance": "host2", "job": "pinger", "monitor": "testlab", "service": "System", "severity": "critical", "timeout": "600" }, "startsAt": "2016-08-01T13:27:08.008+03:00", "status": "firing" } ], "commonAnnotations": { "summary": "Connect fail" }, "commonLabels": { "__name__": "ping_success", "alertname": "failedConnect", "environment": "Production", "job": "pinger", "monitor": "testlab", "service": "System", "severity": "critical", "timeout": "600" }, "externalURL": "http://alertmanager.host:9093", "groupKey": 5615590933959184469, "groupLabels": { "alertname": "failedConnect" }, "receiver": "alerta", "status": "firing", "version": "3" } """ self.headers = { 'Content-type': 'application/json', 'X-Forwarded-For': ['10.1.1.1', '172.16.1.1', '192.168.1.1'], }
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() self.resource = str(uuid4()).upper()[:8] self.fatal_alert = { 'event': 'node_down', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': {'foo': 'abc def', 'bar': 1234, 'baz': False} } self.critical_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.major_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'major', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.warn_alert = { 'event': 'node_marginal', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'warning', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.normal_alert = { 'event': 'node_up', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], 'severity': 'normal', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.headers = { 'Content-type': 'application/json' }
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() self.origin = str(uuid4()).upper()[:8] self.heartbeat = {'origin': self.origin, 'tags': ['foo', 'bar', 'baz']} self.headers = {'Content-type': 'application/json'}
def setUp(self): app.config["TESTING"] = True app.config["AUTH_REQUIRED"] = True app.config["CUSTOMER_VIEWS"] = True app.config["ALLOWED_EMAIL_DOMAINS"] = ["debeauharnais.fr"] self.app = app.test_client() self.alert = {"event": "Foo", "resource": "Bar", "environment": "Production", "service": ["Quux"]} self.api_key = db.create_key("demo-key", type="read-write", text="demo-key") self.headers = {"Authorization": "Key %s" % self.api_key, "Content-type": "application/json"}
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() self.origin = str(uuid4()).upper()[:8] self.heartbeat = { 'origin': self.origin, 'tags': ['foo', 'bar', 'baz'] } self.headers = { 'Content-type': 'application/json' }
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = True app.config['CUSTOMER_VIEWS'] = True self.app = app.test_client() self.alert = { 'event': 'node_marginal', 'resource': 'node404', 'environment': 'Production', 'service': ['Network'], 'severity': 'warning', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.admin_api_key = db.create_key('admin-api-key', type='read-write', text='demo-key') self.customer_api_key = db.create_key('customer-api-key', customer='Foo', type='read-write', text='demo-key')
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = True self.app = app.test_client() self.alert = { 'event': 'Foo', 'resource': 'Bar', 'environment': 'Production', 'service': ['Quux'] } self.api_key = db.create_key('demo-key', type='read-write', text='demo-key') self.headers = { 'Authorization': 'Key %s' % self.api_key, 'Content-type': 'application/json' }
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = True app.config['CUSTOMER_VIEWS'] = True app.config['ALLOWED_EMAIL_DOMAINS'] = ['debeauharnais.fr'] self.app = app.test_client() self.alert = { 'event': 'Foo', 'resource': 'Bar', 'environment': 'Production', 'service': ['Quux'] } self.api_key = db.create_key('demo-key', type='read-write', text='demo-key')['key'] self.headers = { 'Authorization': 'Key %s' % self.api_key, 'Content-type': 'application/json' }
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() correlate = [ 'node_down', 'node_marginal', 'node_up', 'node_pwned', 'node_trace' ] self.auth_alert = { 'event': 'node_pwned', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], 'severity': 'security', 'correlate': correlate, 'tags': ['foo'], 'attributes': { 'foo': 'abc def', 'bar': 1234, 'baz': False } } self.critical_alert = { 'event': 'node_down', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': correlate } self.major_alert = { 'event': 'node_marginal', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], 'severity': 'major', 'correlate': correlate } self.warn_alert = { 'event': 'node_marginal', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], 'severity': 'warning', 'correlate': correlate } self.normal_alert = { 'event': 'node_up', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], 'severity': 'normal', 'correlate': correlate } self.trace_alert = { 'event': 'node_trace', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], 'severity': 'trace', 'correlate': correlate } self.ok_alert = { 'event': 'node_ok', 'resource': 'node2', 'environment': 'Production', 'service': ['Network'], 'severity': 'ok', 'correlate': [] } self.inform_alert = { 'event': 'node_inform', 'resource': 'node3', 'environment': 'Production', 'service': ['Network'], 'severity': 'informational', 'correlate': [] } self.debug_alert = { 'event': 'node_debug', 'resource': 'node4', 'environment': 'Production', 'service': ['Network'], 'severity': 'debug', 'correlate': [] } self.headers = {'Content-type': 'application/json'}
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() self.trigger_alert = { 'event': 'node_down', 'resource': str(uuid4()).upper()[:8], 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': {'foo': 'abc def', 'bar': 1234, 'baz': False} } self.resolve_alert = { 'event': 'node_marginal', 'resource': str(uuid4()).upper()[:8], 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.pagerduty_alert = """ { "messages": [ { "id": "bb8b8fe0-e8d5-11e2-9c1e-22000afd16cf", "created_on": "2013-07-09T20:25:44Z", "type": "incident.acknowledge", "data": { "incident": { "id": "PIJ90N7", "incident_number": 1, "created_on": "2013-07-09T20:25:44Z", "status": "triggered", "html_url": "https://acme.pagerduty.com/incidents/PIJ90N7", "incident_key": "%s", "service": { "id": "PBAZLIU", "name": "service", "html_url": "https://acme.pagerduty.com/services/PBAZLIU" }, "assigned_to_user": { "id": "PPI9KUT", "name": "Alan Kay", "email": "*****@*****.**", "html_url": "https://acme.pagerduty.com/users/PPI9KUT" }, "trigger_summary_data": { "subject": "45645" }, "trigger_details_html_url": "https://acme.pagerduty.com/incidents/PIJ90N7/log_entries/PIJ90N7", "last_status_change_on": "2013-07-09T20:25:44Z", "last_status_change_by": "null" } } }, { "id": "8a1d6420-e9c4-11e2-b33e-f23c91699516", "created_on": "2013-07-09T20:25:45Z", "type": "incident.resolve", "data": { "incident": { "id": "PIJ90N7", "incident_number": 1, "created_on": "2013-07-09T20:25:44Z", "status": "resolved", "html_url": "https://acme.pagerduty.com/incidents/PIJ90N7", "incident_key": "%s", "service": { "id": "PBAZLIU", "name": "service", "html_url": "https://acme.pagerduty.com/services/PBAZLIU" }, "assigned_to_user": "******", "resolved_by_user": { "id": "PPI9KUT", "name": "Alan Kay", "email": "*****@*****.**", "html_url": "https://acme.pagerduty.com/users/PPI9KUT" }, "trigger_summary_data": { "subject": "45645" }, "trigger_details_html_url": "https://acme.pagerduty.com/incidents/PIJ90N7/log_entries/PIJ90N7", "last_status_change_on": "2013-07-09T20:25:45Z", "last_status_change_by": { "id": "PPI9KUT", "name": "Alan Kay", "email": "*****@*****.**", "html_url": "https://acme.pagerduty.com/users/PPI9KUT" } } } } ] } """ self.riemann_alert = """ { "host": "hostbob", "service": "servicejane", "state": "ok", "description": "This is a description", "metric": 1 } """ self.prometheus_alert = """ { "alerts": [ { "annotations": { "description": "Connect to host2 fails", "summary": "Connect fail" }, "endsAt": "0001-01-01T00:00:00Z", "generatorURL": "http://prometheus.host:9090/...", "labels": { "__name__": "ping_success", "alertname": "failedConnect", "environment": "Production", "instance": "host2", "job": "pinger", "monitor": "testlab", "service": "System", "severity": "critical", "timeout": "600" }, "startsAt": "2016-08-01T13:27:08.008+03:00", "status": "firing" } ], "commonAnnotations": { "summary": "Connect fail" }, "commonLabels": { "__name__": "ping_success", "alertname": "failedConnect", "environment": "Production", "job": "pinger", "monitor": "testlab", "service": "System", "severity": "critical", "timeout": "600" }, "externalURL": "http://alertmanager.host:9093", "groupKey": 5615590933959184469, "groupLabels": { "alertname": "failedConnect" }, "receiver": "alerta", "status": "firing", "version": "3" } """ self.grafana_alert_alerting = """ { "evalMatches":[ { "value":100, "metric":"High value", "tags":null }, { "value":200, "metric":"Higher Value", "tags":null } ], "message": "Test notification from grafana", "ruleId":1, "ruleName":"Test notification", "ruleUrl":"http://localhost:3000/", "imageUrl":"http://grafana.org/assets/img/blog/mixed_styles.png", "state":"alerting", "title":"[Alerting] Test notification" } """ self.grafana_alert_ok = """ { "evalMatches":[], "message": "Test notification from grafana", "ruleId":1, "ruleName":"Test notification", "ruleUrl":"http://localhost:3000/", "state":"ok", "title":"[OK] Test notification" } """ self.telegram_alert = { 'event': 'node_down', 'resource': str(uuid4()).upper()[:8], 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': {'foo': 'abc def', 'bar': 1234, 'baz': False} } self.telegram_ack = """ { "update_id": 913527394, "callback_query": { "id": "688111769854308995", "from": { "id": 160213506, "first_name": "Nick", "last_name": "Satterly", "username": "******" }, "message": { "message_id": 37, "from": { "id": 264434259, "first_name": "alerta-bot", "username": "******" }, "chat": { "id": -163056465, "title": "Alerta Telegram", "type": "group", "all_members_are_administrators": true }, "date": 1481841548, "text": "", "entities": [ { "type": "text_link", "offset": 0, "length": 8, "url": "https://try.alerta.io/#/alert/a2b47856-1779-49a9-a2aa-5cbd2e539b56" } ] }, "chat_instance": "-428019502972440238", "data": "/ack %s" } } """ self.headers = { 'Content-type': 'application/json', 'X-Forwarded-For': ['10.1.1.1', '172.16.1.1', '192.168.1.1'], }
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() self.trigger_alert = { 'event': 'node_down', 'resource': str(uuid4()).upper()[:8], 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': {'foo': 'abc def', 'bar': 1234, 'baz': False} } self.resolve_alert = { 'event': 'node_marginal', 'resource': str(uuid4()).upper()[:8], 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.pagerduty_alert = """ { "messages": [ { "id": "bb8b8fe0-e8d5-11e2-9c1e-22000afd16cf", "created_on": "2013-07-09T20:25:44Z", "type": "incident.acknowledge", "data": { "incident": { "id": "PIJ90N7", "incident_number": 1, "created_on": "2013-07-09T20:25:44Z", "status": "triggered", "html_url": "https://acme.pagerduty.com/incidents/PIJ90N7", "incident_key": "%s", "service": { "id": "PBAZLIU", "name": "service", "html_url": "https://acme.pagerduty.com/services/PBAZLIU" }, "assigned_to_user": { "id": "PPI9KUT", "name": "Alan Kay", "email": "*****@*****.**", "html_url": "https://acme.pagerduty.com/users/PPI9KUT" }, "trigger_summary_data": { "subject": "45645" }, "trigger_details_html_url": "https://acme.pagerduty.com/incidents/PIJ90N7/log_entries/PIJ90N7", "last_status_change_on": "2013-07-09T20:25:44Z", "last_status_change_by": "null" } } }, { "id": "8a1d6420-e9c4-11e2-b33e-f23c91699516", "created_on": "2013-07-09T20:25:45Z", "type": "incident.resolve", "data": { "incident": { "id": "PIJ90N7", "incident_number": 1, "created_on": "2013-07-09T20:25:44Z", "status": "resolved", "html_url": "https://acme.pagerduty.com/incidents/PIJ90N7", "incident_key": "%s", "service": { "id": "PBAZLIU", "name": "service", "html_url": "https://acme.pagerduty.com/services/PBAZLIU" }, "assigned_to_user": "******", "resolved_by_user": { "id": "PPI9KUT", "name": "Alan Kay", "email": "*****@*****.**", "html_url": "https://acme.pagerduty.com/users/PPI9KUT" }, "trigger_summary_data": { "subject": "45645" }, "trigger_details_html_url": "https://acme.pagerduty.com/incidents/PIJ90N7/log_entries/PIJ90N7", "last_status_change_on": "2013-07-09T20:25:45Z", "last_status_change_by": { "id": "PPI9KUT", "name": "Alan Kay", "email": "*****@*****.**", "html_url": "https://acme.pagerduty.com/users/PPI9KUT" } } } } ] } """ self.prometheus_alert = """ { "alerts": [ { "annotations": { "description": "Connect to host2 fails", "summary": "Connect fail" }, "endsAt": "0001-01-01T00:00:00Z", "generatorURL": "http://prometheus.host:9090/...", "labels": { "__name__": "ping_success", "alertname": "failedConnect", "environment": "Production", "instance": "host2", "job": "pinger", "monitor": "testlab", "service": "System", "severity": "critical", "timeout": "600" }, "startsAt": "2016-08-01T13:27:08.008+03:00", "status": "firing" } ], "commonAnnotations": { "summary": "Connect fail" }, "commonLabels": { "__name__": "ping_success", "alertname": "failedConnect", "environment": "Production", "job": "pinger", "monitor": "testlab", "service": "System", "severity": "critical", "timeout": "600" }, "externalURL": "http://alertmanager.host:9093", "groupKey": 5615590933959184469, "groupLabels": { "alertname": "failedConnect" }, "receiver": "alerta", "status": "firing", "version": "3" } """ self.grafana_alert_alerting = """ { "evalMatches":[ { "value":100, "metric":"High value", "tags":null }, { "value":200, "metric":"Higher Value", "tags":null } ], "message": "Test notification from grafana", "ruleId":1, "ruleName":"Test notification", "ruleUrl":"http://localhost:3000/", "imageUrl":"http://grafana.org/assets/img/blog/mixed_styles.png", "state":"alerting", "title":"[Alerting] Test notification" } """ self.grafana_alert_ok = """ { "evalMatches":[], "message": "Test notification from grafana", "ruleId":1, "ruleName":"Test notification", "ruleUrl":"http://localhost:3000/", "state":"ok", "title":"[OK] Test notification" } """ self.telegram_alert = { 'event': 'node_down', 'resource': str(uuid4()).upper()[:8], 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': {'foo': 'abc def', 'bar': 1234, 'baz': False} } self.telegram_ack = """ { "update_id": 913527394, "callback_query": { "id": "688111769854308995", "from": { "id": 160213506, "first_name": "Nick", "last_name": "Satterly", "username": "******" }, "message": { "message_id": 37, "from": { "id": 264434259, "first_name": "alerta-bot", "username": "******" }, "chat": { "id": -163056465, "title": "Alerta Telegram", "type": "group", "all_members_are_administrators": true }, "date": 1481841548, "text": "", "entities": [ { "type": "text_link", "offset": 0, "length": 8, "url": "https://try.alerta.io/#/alert/a2b47856-1779-49a9-a2aa-5cbd2e539b56" } ] }, "chat_instance": "-428019502972440238", "data": "/ack %s" } } """ self.headers = { 'Content-type': 'application/json', 'X-Forwarded-For': ['10.1.1.1', '172.16.1.1', '192.168.1.1'], }
def setUp(self): app.config['TESTING'] = True app.config['AUTH_REQUIRED'] = False self.app = app.test_client() self.trigger_alert = { 'event': 'node_down', 'resource': str(uuid4()).upper()[:8], 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': { 'foo': 'abc def', 'bar': 1234, 'baz': False } } self.resolve_alert = { 'event': 'node_marginal', 'resource': str(uuid4()).upper()[:8], 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'] } self.pingdom_down = """ { "second_probe": { "ip": "185.39.146.214", "location": "Stockholm 2, Sweden", "ipv6": "2a02:752:100:e::4002" }, "check_type": "HTTP", "first_probe": { "ip": "85.93.93.123", "location": "Strasbourg 5, France", "ipv6": "" }, "tags": [], "check_id": 803318, "current_state": "DOWN", "check_params": { "url": "/", "encryption": false, "hostname": "api.alerta.io", "basic_auth": false, "port": 80, "header": "User-Agent:Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)", "ipv6": false, "full_url": "http://api.alerta.io/" }, "previous_state": "UP", "check_name": "Alerta API on OpenShift", "version": 1, "state_changed_timestamp": 1498861543, "importance_level": "HIGH", "state_changed_utc_time": "2017-06-30T22:25:43", "long_description": "HTTP Server Error 503 Service Unavailable", "description": "HTTP Error 503" } """ self.pingdom_up = """ { "second_probe": {}, "check_type": "HTTP", "first_probe": { "ip": "185.70.76.23", "location": "Athens, Greece", "ipv6": "" }, "tags": [], "check_id": 803318, "current_state": "UP", "check_params": { "url": "/", "encryption": false, "hostname": "api.alerta.io", "basic_auth": false, "port": 80, "header": "User-Agent:Pingdom.com_bot_version_1.4_(http://www.pingdom.com/)", "ipv6": false, "full_url": "http://api.alerta.io/" }, "previous_state": "DOWN", "check_name": "Alerta API on OpenShift", "version": 1, "state_changed_timestamp": 1498861843, "importance_level": "HIGH", "state_changed_utc_time": "2017-06-30T22:30:43", "long_description": "OK", "description": "OK" } """ self.pagerduty_alert = """ { "messages": [ { "id": "bb8b8fe0-e8d5-11e2-9c1e-22000afd16cf", "created_on": "2013-07-09T20:25:44Z", "type": "incident.acknowledge", "data": { "incident": { "id": "PIJ90N7", "incident_number": 1, "created_on": "2013-07-09T20:25:44Z", "status": "triggered", "html_url": "https://acme.pagerduty.com/incidents/PIJ90N7", "incident_key": "%s", "service": { "id": "PBAZLIU", "name": "service", "html_url": "https://acme.pagerduty.com/services/PBAZLIU" }, "assigned_to_user": { "id": "PPI9KUT", "name": "Alan Kay", "email": "*****@*****.**", "html_url": "https://acme.pagerduty.com/users/PPI9KUT" }, "trigger_summary_data": { "subject": "45645" }, "trigger_details_html_url": "https://acme.pagerduty.com/incidents/PIJ90N7/log_entries/PIJ90N7", "last_status_change_on": "2013-07-09T20:25:44Z", "last_status_change_by": "null" } } }, { "id": "8a1d6420-e9c4-11e2-b33e-f23c91699516", "created_on": "2013-07-09T20:25:45Z", "type": "incident.resolve", "data": { "incident": { "id": "PIJ90N7", "incident_number": 1, "created_on": "2013-07-09T20:25:44Z", "status": "resolved", "html_url": "https://acme.pagerduty.com/incidents/PIJ90N7", "incident_key": "%s", "service": { "id": "PBAZLIU", "name": "service", "html_url": "https://acme.pagerduty.com/services/PBAZLIU" }, "assigned_to_user": "******", "resolved_by_user": { "id": "PPI9KUT", "name": "Alan Kay", "email": "*****@*****.**", "html_url": "https://acme.pagerduty.com/users/PPI9KUT" }, "trigger_summary_data": { "subject": "45645" }, "trigger_details_html_url": "https://acme.pagerduty.com/incidents/PIJ90N7/log_entries/PIJ90N7", "last_status_change_on": "2013-07-09T20:25:45Z", "last_status_change_by": { "id": "PPI9KUT", "name": "Alan Kay", "email": "*****@*****.**", "html_url": "https://acme.pagerduty.com/users/PPI9KUT" } } } } ] } """ self.riemann_alert = """ { "host": "hostbob", "service": "servicejane", "state": "ok", "description": "This is a description", "metric": 1 } """ self.stackdriver_open = """ { "incident": { "incident_id": "f2e08c333dc64cb09f75eaab355393bz", "resource_id": "i-4a266a2d", "resource_name": "webserver-85", "state": "open", "started_at": 1499368214, "ended_at": null, "policy_name": "Webserver Health", "condition_name": "CPU usage", "url": "https://app.stackdriver.com/incidents/f2e08c333dc64cb09f75eaab355393bz", "summary": "CPU (agent) for webserver-85 is above the threshold of 1% with a value of 28.5%" }, "version": "1.1" } """ self.stackdriver_closed = """ { "incident": { "incident_id": "f2e08c333dc64cb09f75eaab355393bz", "resource_id": "i-4a266a2d", "resource_name": "webserver-85", "state": "closed", "started_at": 1499368214, "ended_at": 1499368836, "policy_name": "Webserver Health", "condition_name": "CPU usage", "url": "https://app.stackdriver.com/incidents/f2e08c333dc64cb09f75eaab355393bz", "summary": "CPU (agent) for webserver-85 is above the threshold of 1% with a value of 28.5%" }, "version": "1.1" } """ self.prometheus_alert = """ { "alerts": [ { "annotations": { "description": "Connect to host2 fails", "summary": "Connect fail" }, "endsAt": "0001-01-01T00:00:00Z", "generatorURL": "http://prometheus.host:9090/...", "labels": { "__name__": "ping_success", "alertname": "failedConnect", "environment": "Production", "instance": "host2", "job": "pinger", "monitor": "testlab", "service": "System", "severity": "critical", "timeout": "600" }, "startsAt": "2016-08-01T13:27:08.008+03:00", "status": "firing" } ], "commonAnnotations": { "summary": "Connect fail" }, "commonLabels": { "__name__": "ping_success", "alertname": "failedConnect", "environment": "Production", "job": "pinger", "monitor": "testlab", "service": "System", "severity": "critical", "timeout": "600" }, "externalURL": "http://alertmanager.host:9093", "groupKey": 5615590933959184469, "groupLabels": { "alertname": "failedConnect" }, "receiver": "alerta", "status": "firing", "version": "3" } """ self.grafana_alert_alerting = """ { "evalMatches":[ { "value":100, "metric":"High value", "tags":null }, { "value":200, "metric":"Higher Value", "tags":null } ], "message": "Test notification from grafana", "ruleId":1, "ruleName":"Test notification", "ruleUrl":"http://localhost:3000/", "imageUrl":"http://grafana.org/assets/img/blog/mixed_styles.png", "state":"alerting", "title":"[Alerting] Test notification" } """ self.grafana_alert_ok = """ { "evalMatches":[], "message": "Test notification from grafana", "ruleId":1, "ruleName":"Test notification", "ruleUrl":"http://localhost:3000/", "state":"ok", "title":"[OK] Test notification" } """ self.telegram_alert = { 'event': 'node_down', 'resource': str(uuid4()).upper()[:8], 'environment': 'Production', 'service': ['Network'], 'severity': 'critical', 'correlate': ['node_down', 'node_marginal', 'node_up'], 'tags': ['foo'], 'attributes': { 'foo': 'abc def', 'bar': 1234, 'baz': False } } self.telegram_ack = """ { "update_id": 913527394, "callback_query": { "id": "688111769854308995", "from": { "id": 160213506, "first_name": "Nick", "last_name": "Satterly", "username": "******" }, "message": { "message_id": 37, "from": { "id": 264434259, "first_name": "alerta-bot", "username": "******" }, "chat": { "id": -163056465, "title": "Alerta Telegram", "type": "group", "all_members_are_administrators": true }, "date": 1481841548, "text": "", "entities": [ { "type": "text_link", "offset": 0, "length": 8, "url": "https://try.alerta.io/#/alert/a2b47856-1779-49a9-a2aa-5cbd2e539b56" } ] }, "chat_instance": "-428019502972440238", "data": "/ack %s" } } """ self.headers = { 'Content-type': 'application/json', 'X-Forwarded-For': ['10.1.1.1', '172.16.1.1', '192.168.1.1'], }
def setUp(self): app.config["TESTING"] = True app.config["AUTH_REQUIRED"] = False self.app = app.test_client() correlate = ["node_down", "node_marginal", "node_up", "node_pwned", "node_trace"] self.auth_alert = { "event": "node_pwned", "resource": "node1", "environment": "Production", "service": ["Network"], "severity": "security", "correlate": correlate, "tags": ["foo"], "attributes": {"foo": "abc def", "bar": 1234, "baz": False}, } self.critical_alert = { "event": "node_down", "resource": "node1", "environment": "Production", "service": ["Network"], "severity": "critical", "correlate": correlate, } self.major_alert = { "event": "node_marginal", "resource": "node1", "environment": "Production", "service": ["Network"], "severity": "major", "correlate": correlate, } self.warn_alert = { "event": "node_marginal", "resource": "node1", "environment": "Production", "service": ["Network"], "severity": "warning", "correlate": correlate, } self.normal_alert = { "event": "node_up", "resource": "node1", "environment": "Production", "service": ["Network"], "severity": "normal", "correlate": correlate, } self.trace_alert = { "event": "node_trace", "resource": "node1", "environment": "Production", "service": ["Network"], "severity": "trace", "correlate": correlate, } self.ok_alert = { "event": "node_ok", "resource": "node2", "environment": "Production", "service": ["Network"], "severity": "ok", "correlate": [], } self.inform_alert = { "event": "node_inform", "resource": "node3", "environment": "Production", "service": ["Network"], "severity": "informational", "correlate": [], } self.debug_alert = { "event": "node_debug", "resource": "node4", "environment": "Production", "service": ["Network"], "severity": "debug", "correlate": [], } self.headers = {"Content-type": "application/json"}