swoga
b70e2c9a25
feat: treat failure before success
2021-06-29 14:05:56 +03:00
Pēteris Caune
6094bca241
Improve wording
2021-05-24 14:13:43 +03:00
Pēteris Caune
df44ee58c0
Add an option for weekly reports (in addition to monthly)
2021-05-24 13:44:34 +03:00
Pēteris Caune
7ba5fcbb71
Fix sendalerts to clear Profile.next_nag_date if all checks up
...
Profile.next_nag_date tracks when the next hourly/daily reminder
should be sent. Normally, sendalerts sets this field when
a check goes down, and sendreports clears it out whenever
it is about to send a reminder but realizes all checks are up.
The problem: sendalerts can set next_nag_date to a non-null
value, but it does not clear it out when all checks are up.
This can result in a hourly/daily reminder being sent out
at the wrong time. Specific example, assuming hourly reminders:
13:00: Check A goes down. next_nag_date gets set to 14:00.
13:05: Check A goes up. next_nag_date remains set to 14:00.
13:55: Check B goes down. next_nag_date remains set to 14:00.
14:00: Healthchecks sends a hourly reminder, just 5 minutes
after Check B going down. It should have sent the reminder
at 13:55 + 1 hour = 14:55
The fix: sendalerts can now both set and clear the next_nag_date
field. The main changes are in Project.update_next_nag_dates()
and in Profile.update_next_nag_date(). With the fix:
13:00: Check A goes down. next_nag_date gets set to 14:00.
13:05: Check A goes up. next_nag_date gets set to null.
13:55: Check B goes down. next_nag_date gets set to 14:55.
14:55: Healthchecks sends a hourly reminder.
2021-03-15 12:34:39 +02:00
Pēteris Caune
9a0888aacd
Update sendalerts to log per-notification send times
...
To send notifications, sendalerts calls Flip.send_alerts().
I updated Flip.send_alerts() to be a generator, and to yield
a (channel, error, send_time_in_seconds) triple per sent
notification.
2021-01-15 15:15:00 +02:00
Pēteris Caune
66a1a108bf
When decoding inbound emails, decode encoded headers. Fixes #420
2020-09-08 12:06:32 +03:00
Pēteris Caune
43e56ce788
Add support for multiple, comma-separated keywords (cc: #396 )
2020-07-23 12:06:17 +03:00
Pēteris Caune
0d03e3f00b
Add "Failure Keyword" filtering for inbound emails (cc: #396 )
2020-07-21 14:57:48 +03:00
Pēteris Caune
a18eb134f5
Refactor: change Check.get_status(with_started=...) default value from True to False (with_started=False is or will be useful in more places)
2020-06-25 15:23:59 +03:00
Pēteris Caune
4f6f1d9f66
Fix sendalerts crash loop when encountering a bad cron schedule
2020-02-07 10:36:45 +02:00
Pēteris Caune
ac4f1ca059
Log slow sendalerts.notify runs to stdout
2020-02-06 11:21:28 +02:00
Pēteris Caune
4a7074418a
Track the time spent sending notifications for each flip
2020-02-06 11:11:12 +02:00
Pēteris Caune
9f2638bf72
The sendalerts commands measures notification dwell time and reports it over statsd protocol. Experimental, may go away in a future commit.
2020-02-05 11:25:06 +02:00
Pēteris Caune
6bc4948d00
Removing obsolete comment: the index is defined in hc.api.models.Check.Meta
2020-02-04 15:32:25 +02:00
Pēteris Caune
15ba415298
senddeletionnotices
command skips profiles with recent last_active_date
2019-12-11 15:24:51 +02:00
Pēteris Caune
2bb769f7bb
Send monthly reports on 1st of every month, not randomly during the month
2019-10-12 20:07:09 +03:00
Pēteris Caune
c0d808271e
Add the pruneflips
management command.
2019-07-20 12:25:58 +03:00
Pēteris Caune
e0f161157d
Fix prunepings
and prunepingsslow
, fixes #264
2019-06-24 18:02:36 +03:00
Pēteris Caune
cdfc9840a7
Source formatted with Black
2019-05-15 14:27:50 +03:00
Pēteris Caune
6040759601
Add the prunetokenbucket
management command.
2019-05-05 13:04:32 +03:00
Pēteris Caune
2a7129f8c8
Explicit decode_data=False (otherwise, py3.5 passes str, py3.6+ passes bytes). Should fix #242
2019-04-16 10:32:00 +03:00
Pēteris Caune
cb1b792d6c
smtpd: get a new db connection for every incoming email. cc: #213
2019-02-27 16:44:03 +02:00
Pēteris Caune
7ecd0b606d
Quicker prunenotifications, skip checks with low n_pings values.
2019-01-22 11:09:41 +02:00
Pēteris Caune
fba8806e97
Prepare for the removal of Member.team_id
2019-01-14 22:33:28 +02:00
Pēteris Caune
f357cd3305
Prepare for removing Check.user_id, Channel.user_id, Profile.current_team_id
2019-01-14 21:13:57 +02:00
Pēteris Caune
5edcd42033
Add the "Email Settings..." dialog and the "Subject Must Contain" setting
2019-01-04 16:07:11 +02:00
Pēteris Caune
be4c4f7a26
set Check.user to not null, add uniqueness constraint to Check.code
2019-01-02 09:58:54 +02:00
Pēteris Caune
179b085df4
Move Check.send_alert() to Flip.send_alerts()
2018-12-30 11:55:09 +02:00
Pēteris Caune
2f4b373e12
More test cases. Check.is_down() is redundant, removing.
2018-12-21 11:25:49 +02:00
Pēteris Caune
5f9ebb178c
Rename "Check.get_alert_after" to a now more fitting "Check.going_down_after"
2018-12-19 21:57:48 +02:00
Pēteris Caune
481848a749
Add "/ping/<code>/start" API endpoint
2018-12-18 22:57:12 +02:00
Pēteris Caune
11f65ff7aa
Optimize db query in sendalerts
2018-12-12 19:04:37 +02:00
Pēteris Caune
5be6c403a4
Flip model, for tracking status changes of the Check objects.
2018-12-10 17:51:42 +02:00
Pēteris Caune
b4e53431cd
Obsolete – we don't create anonymous checks any more.
2018-10-23 12:32:31 +03:00
Dan Faulknor
8265ac5a97
Fix for Python 3.6
2018-06-29 00:26:39 +12:00
Pēteris Caune
5cf6f1b51e
Merge Check.get_status() and Check.in_grace_period() into one.
...
This avoids duplicate calls to Check.get_grace_start() in several places.
2018-06-11 19:05:18 +03:00
Pēteris Caune
fbe77c9e0a
Silence output from management commands when running tests.
2018-04-30 20:02:36 +03:00
Pēteris Caune
fc176cd832
settelegramwebhook
now sends a correct "allowed_updates" field.
2018-01-18 00:58:19 +02:00
Pēteris Caune
1392226538
sendalerts was not using the api_check (status, user_id, alert_after) index so removing it. The index was not selective enough.
2018-01-17 00:49:03 +02:00
Pēteris Caune
266fbd225d
sendreports doesn't send nags if nag_period=0 ("disabled"). This would result in an infinite loop of nag emails.
2017-12-29 18:05:23 +02:00
Pēteris Caune
ebbc898d02
Experimental settelegramwebhook
management command
2017-12-27 18:28:34 +02:00
Pēteris Caune
f2a2241b6b
Email listener: "./manage.py smtpd"
2017-11-01 19:20:12 +02:00
Pēteris Caune
d520706c27
Adding an option to send daily or hourly reminders if any check is down. Fixes #48
2017-10-14 16:03:56 +03:00
Pēteris Caune
8d0a2f2eaf
Remove startup check for update_alert_after trigger, remove drop_triggers command.
2017-09-12 12:05:58 +03:00
Pēteris Caune
09e5129bbe
sendalerts reuses database connection.
2017-05-07 15:31:10 +03:00
Pēteris Caune
d7d21b0959
Pause before next report to avoid hitting sending quota
2017-04-24 22:35:16 +03:00
Pēteris Caune
9dcb1678f3
--no-threads flag for sendalerts command
2017-03-28 20:04:24 +01:00
Ronald Ip
7900a201c1
Add --no-loop option to sendalerts management command.
...
Allow `sendalerts` to be run by an external scheduler, on a one-shot
basis, exiting after all alerts have been sent.
2017-03-11 18:29:50 +08:00
Pēteris Caune
d1b4643b45
Obsolete
2017-03-06 14:38:47 +02:00
Pēteris Caune
0b6d484bd5
"prunenotifications" management command
2016-12-15 18:54:03 +02:00