Releases: stephenpapierski/uptime-kuma
Discord/Slack Notification Cards
Description
Improves display of notification messages from louislam#4005 and louislam#4112. I have updated the discord and slack notification providers to provide SLOW/NOMINAL notifications that look similar to the existing UP/DOWN notifications. By default, the rest of the notification providers fall back to plain text notifications. Help would be appreciated adding similar functionality to many of the other notification providers.
Type of change
- New feature (non-breaking change which adds functionality)
Checklist
- My code follows the style guidelines of this project
- I ran ESLint and other linters for modified files
- I have performed a self-review of my own code and tested it
- I have commented my code, particularly in hard-to-understand areas (including JSDoc for methods)
- My changes generates no new warnings
- My code needed automated testing. I have added them (this is optional task)
Screenshots
Discord
![image](https://private-user-images.githubusercontent.com/5900005/286402116-02320460-7101-410c-8cc6-3d6d5fca5ff0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4NjQwMjExNi0wMjMyMDQ2MC03MTAxLTQxMGMtOGNjNi0zZDZkNWZjYTVmZjAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzEyM2Q2NzdkNGFjZWZiYThiMTY1Mjk4ZGRkZjAxMjMyNWEzM2VmNTc5ODIxNTY3YjMwODQ5ZTQ0MGEwOTk5MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.Doa1z5ymnxwptZEIU7jVKW-VaOS5iNpbQGY4JemhkG4)
Slack
![image](https://private-user-images.githubusercontent.com/5900005/286402282-de9908b6-daa8-449f-a70e-ecf830cb866c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4NjQwMjI4Mi1kZTk5MDhiNi1kYWE4LTQ0OWYtYTcwZS1lY2Y4MzBjYjg2NmMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjQ3NGI0ZDgxNTJkNGUxMTI0ODQ0YmRkNDkzMGFmNDA0M2EzZmVmODllMmY5OTkwYzJhZmM3MDFiZDU2N2U0ZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.VuhbUrouD_84HsbZhKENBYCgv8WCp8vinzOuW79J4_c)
Visual Improvements
Description
Adds Visual Elements to louislam#4005
Fixes louislam#4035
This pull request generally adds visual flair to the work done in louislam#4005 . Since all changes are visual, change details are listed under screenshots below.
Type of change
- Bug fix (non-breaking change which fixes an issue)
- User interface (UI)
- New feature (non-breaking change which adds functionality)
Checklist
- My code follows the style guidelines of this project
- I ran ESLint and other linters for modified files
- I have performed a self-review of my own code and tested it
- I have commented my code, particularly in hard-to-understand areas (including JSDoc for methods)
- My changes generates no new warnings
- My code needed automated testing. I have added them (this is optional task)
Screenshots
Notifications Only
Description
This new feature allows notifications to be configured surrounding the response time of a given service.
Resolves louislam#1813
Closes louislam#1878
- Add
Resend Interval
- Add
Last
Response Time Calculation Method - Add
Threshold Calculation
withStatic Threshold
andRelative to Avg. Response
Methods - Also send notification when service returns to normal response time
Notification Control
Control | Behavior |
---|---|
Slow Response Notification |
Enable slow response notifications |
Resend Notification if Slow Response X times consecutively |
Resend notification every x times the service responds slowly. A setting of 0 make it so that notifications are only sent when a service starts responding slowly or returns to a normal response time (situations 1 and 2 below) |
Notifications are sent during 3 events.
- Response time is greater than specified threshold (Service started responding slowly)
- Response time returns to less than specified threshold (Service returned to normal response time)
- Response time remains slow x consecutive times, if
Resend Notification
is greater than 0 (Service still responding slowly)
Response Time Calculation
There are multiple options for calculating the response time.
Method | Additional Parameters | Description |
---|---|---|
Average | Window Duration |
Average response time during Window Duration |
Max | Window Duration |
Maximum response time during Window Duration |
Last | N/A | Response time of the last heartbeat |
Threshold Calculation
There are also multiple options for calculating the threshold.
Method | Additional Parameters | Description |
---|---|---|
Static Threshold | Threshold |
Define a static threshold in milliseconds |
Relative to Avg. Response | Threshold Multiplier |
Calculate the threshold (Threshold Multiplier * 24-hour average response time). The goal here is that you don't have to tune your thresholds, it will simply tell you if your service is responding slower than "normal". |
Type of change
Please delete any options that are not relevant.
- User interface (UI)
- New feature (non-breaking change which adds functionality)
Checklist
- My code follows the style guidelines of this project
- I ran ESLint and other linters for modified files
- I have performed a self-review of my own code and tested it
- I have commented my code, particularly in hard-to-understand areas
(including JSDoc for methods) - My changes generate no new warnings
- My code needed automated testing. I have added them (this is optional task)
Screenshots (if any)
Feature Disabled (default)
"Slow Response Notification" checkbox below rest of "General" fields.
Feature Enabled (with default settings)
![image](https://private-user-images.githubusercontent.com/5900005/281887843-9a61f784-7f80-4354-ae00-88b7b2339d6a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4MTg4Nzg0My05YTYxZjc4NC03ZjgwLTQzNTQtYWUwMC04OGI3YjIzMzlkNmEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OWU2Yjc0NDdiMWI5ZGJjYzAwODQ4NzhjYmRlOTg5NTQ1YWNlYjllZjgwYTYxYzExNGY1OGQ5MmFhZTZmNjU2NSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.0ntJTy5CMBi0mmaFlg2ZhhzQBBFZpwRxb990HjwKRQY)
Response Time Calculation
Average
![image](https://private-user-images.githubusercontent.com/5900005/281885219-8a0c28b8-f8d2-4619-af09-04c2392c6815.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4MTg4NTIxOS04YTBjMjhiOC1mOGQyLTQ2MTktYWYwOS0wNGMyMzkyYzY4MTUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTk1OTA1ZDZkNTU1MTQyMzIzYTI4NDRlOTdjMWI2NGQ5Y2U3YTA1MTAyOTkwMTE5Y2QyOTMxYjM3NzE1ZWMxYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.pJJ2ZY9vuKn7kg8qUtBwI37AenMoa1Ah65lE-6mVvAI)
Max
![image](https://private-user-images.githubusercontent.com/5900005/281885614-134e8703-b5ce-4710-a3e7-92eef948b836.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4MTg4NTYxNC0xMzRlODcwMy1iNWNlLTQ3MTAtYTNlNy05MmVlZjk0OGI4MzYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NmFjNmY5MDZmZDZlNTVkZmFjZGExYWQ0MmMzYjEwYzA1NmIyOTRiNjYzODhiNGRiNjc0NjhiYWY1N2QyYTdiNSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.hcSQiMcnH3Gzn__Yr-adDjTn5K5QjWjnIRv8sU4-Y9E)
Last (Window Duration Hidden)
![image](https://private-user-images.githubusercontent.com/5900005/281885415-60143f72-5a60-4035-ab26-838eed5a889f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4MTg4NTQxNS02MDE0M2Y3Mi01YTYwLTQwMzUtYWIyNi04MzhlZWQ1YTg4OWYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YmJlNzQ2ZWRhZTc0ZDRjOWM2NDEzMDhkY2M0OWNhM2EzNTExNzYwNWY4ZmY0MDY2YWEzODhmMGYyYzc3MjJlZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.vCwhwBB7Coe0FYJ-tVMcbDonnM9E8nO5P4JNSKuF238)
Threshold Calculation
Relative to Avg. Response
![image](https://private-user-images.githubusercontent.com/5900005/281886877-de4171f1-b30c-4d80-9c86-9d25842475d2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4MTg4Njg3Ny1kZTQxNzFmMS1iMzBjLTRkODAtOWM4Ni05ZDI1ODQyNDc1ZDIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZDVkMTI4OWMyYmRjNzhiZjZmMDVjZDgzNmM1NTMwMDM2YmM1OTA0YzVmMjcwZGE1ODBhZjRlMjhiNmU3YWRmYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.ltfyjNxoUq4d1Z00OuhoL5EXizvitTJkWiKBlqhSIYs)
Static Threshold
![image](https://private-user-images.githubusercontent.com/5900005/281887083-656c2281-5022-4c26-9eda-3d6c81ddfd0d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4MTg4NzA4My02NTZjMjI4MS01MDIyLTRjMjYtOWVkYS0zZDZjODFkZGZkMGQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OWUzNDZjMWRkMjkzZGFmYmZhN2I5OTVkZDYzM2M2OTgyMjczYmRiODBjMWQwMGUxNmIxZTk0YTBmYWMxMDAyYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.HKlJobpd2FUPW09VmEmE-w5cxg9aJkI6DiGGTKRe9Jc)
Resend Interval
![image](https://private-user-images.githubusercontent.com/5900005/281887556-0accc470-9aaa-4086-82ee-f20cca3ce131.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4MTg4NzU1Ni0wYWNjYzQ3MC05YWFhLTQwODYtODJlZS1mMjBjY2EzY2UxMzEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZWRmNTZjMDgwMDVkOGRkOWM2NTY0ZmVjODAzOTllNDFmZWZiMDQ3YTk2ODEyM2M0MWIwYWQ3MWJjMzNlNWQ0ZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.1y0DgLUNC0qWEXnTHD4T8MGvtnYmD1P7n1j37guesG8)
Example Discord Notifications
![image](https://private-user-images.githubusercontent.com/5900005/281889786-5ac9a5c8-7128-4381-a667-929afcddf565.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4MTg4OTc4Ni01YWM5YTVjOC03MTI4LTQzODEtYTY2Ny05MjlhZmNkZGY1NjUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9N2UzZDU2YmZhOTEwNjM1NGRjYmRmYzk5YTdjNDYyZjAyOTBmOWNiMTYwZWUxZjc2M2MxMzdlMDM3MzQzOGU2NSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.zaCn-2F6dQkOY0sSlicPVM7l_00vauRnG2KLuvxHHH0)
![image](https://private-user-images.githubusercontent.com/5900005/281891576-cd33f9e6-6b6d-4773-8d48-e3eced5345d3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1OTc4NTIsIm5iZiI6MTcxOTU5NzU1MiwicGF0aCI6Ii81OTAwMDA1LzI4MTg5MTU3Ni1jZDMzZjllNi02YjZkLTQ3NzMtOGQ0OC1lM2VjZWQ1MzQ1ZDMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYyOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MjhUMTc1OTEyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjBlZTZmMTAyNTRjN2RkYzA2Njk0OWYwYzkxZDM4NmU4MDFlNTlmM2I3MmM0N2Y2ZjYyN2VlOThmMzdkYjgwMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.0HfakHs9uHPK-CPJUGPReGrT8ELVyt5pqqkNAMovIaA)