Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix the use of timestamps in the Jira ticket titles #2978

Merged
merged 1 commit into from
Nov 9, 2020
Merged

Fix the use of timestamps in the Jira ticket titles #2978

merged 1 commit into from
Nov 9, 2020

Conversation

ferozsalam
Copy link
Contributor

@ferozsalam ferozsalam commented Oct 5, 2020

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 in ElastAlert rules defined to use most alerting platforms, with the timestamp_field
set to @timestamp.min.

However, when we try to create a Jira alert against records of this format, 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.

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.
@Qmando Qmando merged commit 1dc4f30 into Yelp:master Nov 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants