in next_steps/readable_alerts_html/readable_alerts_html.py [0:0]
def create_email_contents(anomaly_detector_arn, alert_timestamp, alert_metric_name, anomaly_score, anomaly_group_id, relevant_time_series):
# Format email subject
subject = "L4M Alert - %s - %s" % (alert_metric_name,
alert_timestamp.strftime("%Y-%m-%d %H:%M"))
# Begin formatting HTML body
html_body = '<body style="font-family:Helvetica; font-size: 11pt;">\n'
# Table of summary
html_body += '<table>\n'
html_body += "<tr> <td>%s</td> <td>%s</td> </tr>\n" % (
"Measure name :", alert_metric_name)
html_body += "<tr> <td>%s</td> <td>%s</td> </tr>\n" % (
"Timestamp :", alert_timestamp.strftime("%Y-%m-%d %H:%M"))
html_body += "<tr> <td>%s</td> <td>%s</td> </tr>\n" % (
"Anomaly score :", "%.2f" % anomaly_score)
html_body += "<tr> <td>%s</td> <td>%s</td> </tr>\n" % (
"Num relevant time series :", "%d" % len(relevant_time_series))
html_body += '</table>\n'
html_body += "<br>\n"
# Prepare list of dimension names for the relevant time series table (to be consistently sorted)
dimension_names = [dimension["DimensionName"]
for dimension in relevant_time_series[0]]
# Table of relevant time series
html_body += '<table border="1" >\n'
html_body += '<caption>List of relevant time series</caption>\n'
# Header row with dimension names
html_body += '<tr bgcolor="#ccccff">'
for dimension_name in dimension_names:
html_body += "<th>%s</th>" % dimension_name
html_body += "</tr>\n"
# Data rows with dimension values
for dimension_list in relevant_time_series:
# Converting to python dictionary to easily lookup
dimension_name_value_map = {}
for dimension_name_value in dimension_list:
dimension_name_value_map[dimension_name_value["DimensionName"]
] = dimension_name_value["DimensionValue"]
html_body += "<tr>"
for dimension_name in dimension_names:
html_body += "<td>%s</td>" % dimension_name_value_map[dimension_name]
html_body += "</tr>\n"
html_body += '</table>\n'
html_body += "<br>\n"
# Direct link to anomaly group detail page
console_url = create_url_to_console(anomaly_detector_arn, anomaly_group_id)
html_body += '<a href="%s">Link to Lookout for Metrics console</a>\n' % console_url
html_body += "</body>"
# Return compiled email contents
return subject, html_body