diff --git a/src/analyzer/alerters.py b/src/analyzer/alerters.py index 04f42096..f6e87bd2 100644 --- a/src/analyzer/alerters.py +++ b/src/analyzer/alerters.py @@ -23,6 +23,9 @@ def alert_smtp(alert, metric): # For backwards compatibility + server = settings.SMTP_OPTS['server'] + port = settings.SMTP_OPTS['port'] + if '@' in alert[1]: sender = settings.ALERT_SENDER recipient = alert[1] @@ -42,7 +45,7 @@ def alert_smtp(alert, metric): link = settings.GRAPH_URL % (metric[1]) body = 'Anomalous value: %s
Next alert in: %s seconds ' % (metric[0], alert[2], link, link) msg.attach(MIMEText(body, 'html')) - s = SMTP('127.0.0.1') + s = SMTP(server, port) s.sendmail(sender, recipient, msg.as_string()) s.quit() diff --git a/src/analyzer/analyzer.py b/src/analyzer/analyzer.py index 51bf4d95..b1ddc334 100644 --- a/src/analyzer/analyzer.py +++ b/src/analyzer/analyzer.py @@ -1,4 +1,5 @@ import logging +import traceback from Queue import Empty from redis import StrictRedis from time import time, sleep @@ -201,6 +202,7 @@ def run(self): except Exception as e: logger.error("couldn't send alert: %s" % e) + logger.error("stacktrace: %s" % str(traceback.format_exc())) # Write anomalous_metrics to static webapp directory filename = path.abspath(path.join(path.dirname(__file__), '..', settings.ANOMALY_DUMP)) diff --git a/src/settings.py.example b/src/settings.py.example index 5a65a1f0..d8a81f03 100644 --- a/src/settings.py.example +++ b/src/settings.py.example @@ -127,6 +127,10 @@ ALERTS = ( # Each alert module requires additional information. SMTP_OPTS = { + # The SMTP server to use + "server": "localhost", + # The SMTP port to use on the above server + "port": "25", # This specifies the sender of email alerts. "sender": "skyline-alerts@etsy.com", # recipients is a dictionary mapping metric names