Skip to content

Commit 734caf2

Browse files
committed
Fix the use of timestamps in the Jira ticket titles
This has come about because we currently use records which have timestamps like: ``` "@timestamp": { "min": "2020-10-03T07:05:01.987Z", "max": "2020-10-05T07:05:09.572Z" }, ``` These work fine with the `timestamp_field` set to `@timestamp.min`. However, when we try to create a Jira alert using ElastAlert from these, we run into a Python error: ``` File "/usr/local/lib/python3.6/site-packages/elastalert/alerts.py", line 875, in create_default_title, title += ' - %s' % (pretty_ts(matches[0][self.rule['timestamp_field']], self.rule.get('use_local_time'))), KeyError: '@timestamp.min' ``` This is because matches[0][self.rule['timestamp_field']] attempts to access the `timestamp_field` directly rather than using a `get()`. The proposed fix will not change any existing behaviour, but will skip the addition of a timestamp to the ticket title if the required field doesn't exist, rather than throwing an error and disabling the rule.
1 parent ea62cf4 commit 734caf2

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

elastalert/alerts.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,9 @@ def create_default_title(self, matches, for_search=False):
868868
if for_search:
869869
return title
870870

871-
title += ' - %s' % (pretty_ts(matches[0][self.rule['timestamp_field']], self.rule.get('use_local_time')))
871+
timestamp = matches[0].get(self.rule['timestamp_field'])
872+
if timestamp:
873+
title += ' - %s' % (pretty_ts(timestamp, self.rule.get('use_local_time')))
872874

873875
# Add count for spikes
874876
count = matches[0].get('spike_count')

0 commit comments

Comments
 (0)