Commit Graph

396 Commits

Author SHA1 Message Date
Anton Tolchanov 94625df2b2
Treat error response payloads from Slack as errors (#3121)
As described in the "More error types" section below, Slack API can return
errors with a 200 response code:
https://slack.dev/node-slack-sdk/web-api#handle-errors

This change adds parsing of API response to extract error messages.

Signed-off-by: Anton Tolchanov <anton@tailscale.com>
2023-08-10 10:59:13 +01:00
George Robinson 638f41c215
Log the GroupKey and alerts in retry (#3438)
This commit updates notify.go to log the GroupKey and fingerprints
of an alert at the debug level, and just the GroupKey at the
warning level should the notify attempt fail.

Signed-off-by: George Robinson <george.robinson@grafana.com>
2023-08-07 11:31:28 +01:00
Jack d10f21f38c
Add msteams (#3324)
* Add msteams

Signed-off-by: Jack Zhang <jack4zhang@gmail.com>
---------
Signed-off-by: Jack Zhang <jack4zhang@gmail.com>
Signed-off-by: Jack <jack4zhang@gmail.com>
2023-06-08 11:27:56 -04:00
Davide Bizzarri 140c3d683f notify/webhook: trim space from url_file content
Signed-off-by: Davide Bizzarri <davide.bizzarri@neoom.com>
2023-05-16 13:30:06 +02:00
Alec 3b9cd0408e
Add support for pushover devices (#3318)
* Add support for pushover devices

Signed-off-by: Alec Pinson <30310787+alec-pinson@users.noreply.github.com>

* update docs

Signed-off-by: Alec Pinson <30310787+alec-pinson@users.noreply.github.com>

---------

Signed-off-by: Alec Pinson <30310787+alec-pinson@users.noreply.github.com>
2023-05-05 13:04:47 +01:00
gotjosh 0f3ab929fa
Slack Notifier: Only return an error when it actually occurs (#3350) 2023-05-02 17:59:37 +01:00
gotjosh 4dc20154f6
add reason code to slack notifier (#3252)
* add reason code to slack notifier
this uses the new error with reason to determine based on status code what the reason is for the slack integration

partial #3231

Signed-off-by: gotjosh <josue.abreu@gmail.com>

* Add some tests

Signed-off-by: gotjosh <josue.abreu@gmail.com>

* Handle the error

Signed-off-by: gotjosh <josue.abreu@gmail.com>

---------

Signed-off-by: gotjosh <josue.abreu@gmail.com>
2023-04-28 14:05:56 +01:00
r0nn f040f089aa
fix wechat notifier response field name (#3330)
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2023-04-28 12:40:49 +01:00
Yijie Qin 9a8d1f976e
add reason code to notifiers (#3307)
* add reason code to notifiers

Signed-off-by: Yijie Qin <qinyijie@amazon.com>
2023-04-07 17:05:17 +02:00
Simon Pasquier bb1c123b7f
Merge pull request #3226 from an5t/telegram-token-file
Support loading Telegram bot token from file
2023-04-06 17:15:17 +02:00
Simon Rozet 41eb1213bb
support loading webhook URL from a file (#3223)
* support loading webhook URL from a file

/cc #2498

Signed-off-by: Simon Rozet <me@simonrozet.com>

* notify/webhook: add test for reading url from file

Signed-off-by: Simon Rozet <me@simonrozet.com>

* notify/pushover: add tests for reading secrets from files

Signed-off-by: Simon Rozet <me@simonrozet.com>

---------

Signed-off-by: Simon Rozet <me@simonrozet.com>
2023-03-03 15:31:14 +01:00
Yijie Qin 7923bc5f8e
add status code label to the numTotalFailedNotifications metric (#3094)
* add reason label to the numTotalFailedNotifications metric

Signed-off-by: Yijie Qin <qinyijie@amazon.com>
2023-02-03 12:09:21 +00:00
Simon Rozet 8f559aad34
mark webhook URL as a secret (#3228)
Signed-off-by: Simon Rozet <me@simonrozet.com>
2023-02-02 16:23:51 +00:00
Andrey Mishakin 6c9c58015e Support loading Telegram bot token from file
Signed-off-by: Andrey Mishakin <stieroglif@gmail.com>
2023-01-22 16:35:01 +03:00
Simon Rozet a8e4c166a8
support loading pushover secrets from files (#3200)
* support loading pushover secrets from files

Add the user_key_file and token_file keys to the pushover config.

/cc https://github.com/prometheus/alertmanager/issues/2498

Signed-off-by: Simon Rozet <me@simonrozet.com>
2023-01-18 23:33:42 +01:00
Simon Pasquier ebcea59acc
Merge pull request #3190 from prometheus/release-0.25
Release 0.25
2023-01-05 14:35:35 +01:00
Simon Pasquier aa6a929316 telegram: use HTML template with HTML parse mode
Closes #3061

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2022-12-20 17:17:53 +01:00
Martin Chodur 26cbd6bd86
feat: add template.FromGlobsWithAdditionalFuncs (#3174)
* refactor: add Options to the template.FromGlob function to allow customizing the Template

Signed-off-by: Martin Chodur <m.chodur@seznam.cz>
2022-12-16 10:13:13 -04:00
gotjosh 907f7d3e80
Merge pull request #3132 from prometheus/webex-notifier
Notifier: Webex
2022-12-15 13:57:12 -04:00
gotjosh 1ba6405bbc
Remove the dedicated field to APIURL in favour of the configuration one
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-12-15 11:51:45 -04:00
gotjosh 572de996b7
Remove the `bot_token`
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-12-15 11:48:01 -04:00
gotjosh 5ebe94d325
Rename message to markwdown on the webex notifier
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-12-15 11:05:55 -04:00
gotjosh 217524d823
Merge pull request #3145 from alexweav/log-warn
Emit warning-level logs when truncating messages in notifications
2022-12-13 19:33:30 -04:00
Alex Weaver 0eee3ca9cb Rename key to max_runes
Signed-off-by: Alex Weaver <weaver.alex.d@gmail.com>
2022-12-13 17:28:11 -06:00
Alex Weaver 9b9237cef1 Fix casing in victorops log message
Signed-off-by: Alex Weaver <weaver.alex.d@gmail.com>
2022-12-13 17:28:11 -06:00
Alex Weaver 18181afb15 Fix one last log level that I missed
Signed-off-by: Alex Weaver <weaver.alex.d@gmail.com>
2022-12-13 17:28:11 -06:00
Alex Weaver 42dcba213f Also log the length that values were truncated to
Signed-off-by: Alex Weaver <weaver.alex.d@gmail.com>
2022-12-13 17:28:11 -06:00
Alex Weaver 7a420fec35 Adjust degenerate log message in telegram notifier
Signed-off-by: Alex Weaver <weaver.alex.d@gmail.com>
2022-12-13 17:28:11 -06:00
Alex Weaver ed3cfbb124 Avoid logging the entire message after truncation
Signed-off-by: Alex Weaver <weaver.alex.d@gmail.com>
2022-12-13 17:28:11 -06:00
Alex Weaver bb5804eca9 Change truncation log level to warn
Signed-off-by: Alex Weaver <weaver.alex.d@gmail.com>
2022-12-13 17:28:11 -06:00
Ben Kochie 432ee01c8c
Update Go to 1.19 (#3150)
* Update Go to 1.19

* Update Go.
* Update some Go modules.
* Update Swagger to the latest for Go 1.19 compatibility.
* api/v2: regenerate
* Accommodate to the changes in the client package
* asset/assets_vfsdata.go: regenerate

Signed-off-by: SuperQ <superq@gmail.com>
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
Co-authored-by: Simon Pasquier <spasquie@redhat.com>
2022-11-30 17:06:57 +01:00
gotjosh f51f51ec72
Use the new truncation in bytes functions to ensure strings are not butchered
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-11-11 15:15:09 +00:00
gotjosh e8b5c0aa0d
Fix and add a new test
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-11-09 20:07:54 +00:00
gotjosh ac0dc96127
A few changes to better align with what I know think it's the best setup in Webex Teams
- Move away from Webhook to APIRUL
- Make the Room ID a require field
- Set Authorization Credentails via Headers

Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-11-09 20:07:54 +00:00
gotjosh 9e2608ebff
Notifier: Webex
Cisco's Webex has been one of the most requested notifiers on Grafana for a while now, please see: https://github.com/grafana/grafana/issues/11750#issue-318358659

Given it's straightforward implementation, low maintance overhead and request demand, I think it's worth including this directly in the Alertmanager.

Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-11-09 20:07:54 +00:00
gotjosh 964edb741d
Address review comments
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-11-09 18:05:48 +00:00
gotjosh 4ecf5044dd
fix typo
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-11-09 17:31:17 +00:00
gotjosh c7362ab831
Fix comments
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-11-09 17:20:22 +00:00
gotjosh b3f50f0c84
Truncate: Be explicit on truncation of runes or bytes.
While most integrations set a limit by UTF-8 compatible characters (some like Webex) use runes - as pointed out in https://github.com/prometheus/alertmanager/pull/3132. This PR makes it explicit wether the truncation is happening at a byte or rune level.

Signed-off-by: gotjosh <josue.abreu@gmail.com>
2022-11-09 17:17:42 +00:00
Matthias Loibl 28c3df0173
Merge pull request #2948 from metalmatze/discord
notify/discord: Create Discord integration
2022-10-25 18:24:19 +02:00
Oktarian T-B dd7214e51f
Add support for reading VictorOps API key from file (#3111)
* Read VictorOps API key from file

* Update documentation

* Improve tests

Signed-off-by: Oktarian T-B <oktariantilneybassett@improbable.io>
2022-10-25 15:40:17 +02:00
Oktarian T-B d4d36e400a
Log Response Details for Notifier errors for Webhooks, Pushover and VictorOps (#3103)
* Pass in response body to Retrier Check
* Custom error details for webhook notifier

Signed-off-by: Oktarian Tilney-Bassett <oktariantilneybassett@improbable.io>
2022-10-19 15:07:38 +02:00
Julien Pivotto 21ca295319
Merge pull request #2982 from roidelapluie/expiresoon
Expires notify log sooner when possible
2022-10-19 09:26:37 +02:00
Oktarian T-B 1045dc0f21
Add support for reading PagerDuty secrets from files (#3107)
* Add support for reading PagerDuty secrets from files

* Update documentation

Signed-off-by: Oktarian Tilney-Bassett <oktariantilneybassett@improbable.io>
2022-10-14 14:55:59 +02:00
Julien Pivotto b0443021dc Expires notify log sooner when possible
It seems useless to keep the notifications in the nflog for longer than
twice the repeat interval. This should help reduce memory usage of
clustered alertmanagers.

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
2022-10-14 10:03:17 +02:00
Oktarian T-B d034f116d5
Add PagerDuty source field (PD-CEF) (#3106)
* Add new source field to PD config
* Update documentation

Signed-off-by: Oktarian Tilney-Bassett <oktariantilneybassett@improbable.io>
2022-10-13 14:01:46 +02:00
Simon Pasquier fe0622ab14
notify/email: refactor tests (#3078)
We don't need to test `getPassword()` separately as it can be covered
with the tests already checking the various authentication methods.

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2022-09-30 13:32:25 +02:00
Ben Ridley 33a0e77a71
Add timezone support to time intervals. (#2782)
* Add explicit UTC to time interval tests

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Add timezone support to time intervals

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Update time interval documentation with time zone info

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Refactor notification tests to test timezone support

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Make use of Local more clear

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Fix documentation about timezone support.

Makes it clear that the default is UTC, but others are supported.

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Remove commented/unused function

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Fix tests using incorrect timezones

Previously tests were using time zone names that were unsupported by the
RFC822 parser. This switches the tests to use RFC822Z and specifies the
zones by number.

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Add a few more timezone test cases

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Remove unnecessary if/else branch

Co-authored-by: Sylvain Rabot <sylvain@abstraction.fr>
Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Rename timezone to location for consistency with Go stdlib

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Make Windows timezone error more specific

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Update docs to use 'location'

Signed-off-by: Ben Ridley <benridley29@gmail.com>

* Apply suggestions from code review

Co-authored-by: Sylvain Rabot <sylvain@abstraction.fr>
Signed-off-by: Ben Ridley <benridley29@gmail.com>

Signed-off-by: Ben Ridley <benridley29@gmail.com>
Co-authored-by: Sylvain Rabot <sylvain@abstraction.fr>
2022-09-22 14:45:17 +02:00
Eric R. Rath efc956c7f7
SMTP config: add global and local password file fields (#3038)
* SMTP config: add global and local password file fields

Add config fields (for both global email config and route-specific email
config) that specify path to file containing SMTP password.  We don't
want the password in the config file itself, and reading the password
from a k8s-secret-backed file keeps the password itself "encrypted at
rest" in etcd, and cleanly separated from the rest of the AM config.

I used the same approach as pull request #2534 "Add support to set the
Slack URL in the file"
<https://github.com/prometheus/alertmanager/pull/2534/files> in the
upstream repo.

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* changed *AuthPasswordFile field types to string per review feedback

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* added error to getPassword() retval per review feedback

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* simplified conf.smtp-* files

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* update docs to reflect field type change

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* don't treat username-without-password as invalid

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* test cleanup

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* Apply suggestions from code review

Co-authored-by: Simon Pasquier <spasquie@redhat.com>
Signed-off-by: Eric R. Rath <4080262+ericrrath@users.noreply.github.com>

* Updated per review feedback

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* added sub-test per review feedback

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* added test on Email.getPassword() per feedback

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* only inherit global SMTP passwords if neither local password field is set

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

* removed blank line caught by gofumpt

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>

Signed-off-by: Eric R. Rath <eric.rath@oracle.com>
Signed-off-by: Eric R. Rath <4080262+ericrrath@users.noreply.github.com>
Co-authored-by: Simon Pasquier <spasquie@redhat.com>
2022-09-16 14:36:57 +02:00
Yanks Yoon 3d624c0552
replace 3 dots with ellipsis (#3072)
Signed-off-by: charlie4284 <charlie4284@gmail.com>

Signed-off-by: charlie4284 <charlie4284@gmail.com>
2022-09-12 17:28:10 +02:00