uptime-kuma icon indicating copy to clipboard operation
uptime-kuma copied to clipboard

Enhancements

Open Panja0 opened this issue 4 years ago • 58 comments

First of all great work! Looks really awesome. Though I have a few enhancement requests to make it even greater! 👍

  • [ ] Select all monitors at once to pause them: at the moment you have to pause them all manually one by one
  • [ ] Scheduled pausing: for scheduled maintenance, server reboot etc
  • [x] Retries: for instance 3 retries in xx seconds before a service is being marked as down
  • [x] Accepted HTTP codes: I would like to add status codes to some HTTP request, 401 for instance (#173 )
  • [x] Public dashboard: create a status page where monitors can be shown but not edited
  • [x] 2FA: would be great to have 2FA (Google auth, Authy etc) for logging in with the admin account
  • [x] Send notification/alert after xx time: have an interval for sending notifications, to avoid small downtimes
  • [x] Reset/delete up/downtime history: be able to delete the history for a monitor (after history delete it's 100% up again)
  • [x] Version number on webinterface (thx @rezzorix)
  • [x] Link to this github page (thx @rezzorix)
  • [ ] Monitor groups: e.g. Server1, Server2 etc. (thx @LeviSnoot)
  • [ ] Re-order monitors: create your own list priority (thx @LeviSnoot)
  • [ ] Combined monitors : A monitor that looks at two instances but is displayed as one and/or has a dropdown to show all contained (thx @LeviSnoot)
  • [x] Dark mode: based on system settings (thx @LeviSnoot)
  • [ ] Incident reports: ties into public status page, the ability to write a message relating to the status of a monitor, with a status on each message such as "⛔ Investigating", "⚠ Resolving" and "✔ Resolved". (thx @LeviSnoot)
  • [x] White labeling public status page with custom logo, page title and favicon - that said there should obviously still be credit to the project, maybe in the form of a footer or something (thx @LeviSnoot)
  • [ ] Pagination: next page for the Dashboard / Dashboard of each monitor (thx @rezzorix)
  • [x] Import/export monitors list as JSON (thx @kvpt)
  • [x] Add the possibility to define an announcement (thx @kvpt)
  • [ ] Ability to use a separate docker container as the database e.g. mariadb (thx @joe-eklund)
  • [ ] Ability to authenticate with digest or basic auth (thx @joe-eklund)
  • [x] Heartbeat monitoring, instead of pinging services, those services must check in (thx @joe-eklund)
  • [x] Able to ignore SSL issues for specific monitors (thx @joe-eklund)
  • [ ] User management with LDAP and oAuth. This would allow us to use our built in user management tools instead of having to create yet another user for people that need access. (thx @joe-eklund)
  • [x] Ability to set default notifications in settings so you don't have to select each time you create a new monitor "Check now" button to perform a check a single monitor right away (thx @parityhero)
  • [x] Tags to group monitors with filtering: by tag, by type (thx @parityhero)
  • [ ] More information about monitor: date created, last modified etc. (thx @parityhero)
  • [x] Ability to SMTP multiple email addresses or CC/BCC (thx @parityhero)
  • [ ] Personnalize notifications for texts / icons to be used, depending on private/public channels for example (thx @magicgg91)
  • [x] Check certficate validity and expiration time (thx @magicgg91)
  • [ ] Ability to configure how long the monitor history is retained. A global setting to automatically delete monitor entries older than ${x} days would declutter the user interface. (thx @Spiritreader)
  • [ ] Ability for a "Bulk Upload" via csv etc (thx @EclipseOfficeTech)

Keep up the good work!

[updates] 2021-07-15 @ 3.20pm UTC: Formatting changed to checkboxes per request @louislam

2021-07-15 @ 4.00pm UTC: Added enhancements requested by @kvpt

2021-07-17 @ 8.00am UTC: Added enhancements requested by @joe-eklund

2021-07-19 @ 8.02am UTC: Added enhancements requested by @parityhero

2021-07-21 @ 9.04am UTC: Added enhancements requested by @magicgg91

2021-07-29 @ 1.40pm UTC: Added enhancements requested by @Spiritreader & @EclipseOfficeTech

Panja0 avatar Jul 12 '21 12:07 Panja0

Adding some more simple enhancements to this list above:

  • version number on webinterface
  • link to this github page

rezzorix avatar Jul 12 '21 12:07 rezzorix

Added them to my post! Thanks @rezzorix

Panja0 avatar Jul 12 '21 12:07 Panja0

Added a few more myself as well. :-)

Panja0 avatar Jul 12 '21 13:07 Panja0

Great list! Here's some thoughts of my own:

  • Monitor groups (e.g. Server1, Server2 etc.)
  • Reorder monitors
  • Combined monitors (A monitor that looks at two instances but is displayed as one and/or has a dropdown to show all contained)
  • Dark mode (based on system setting would be great)

EDIT:

Adding more here as I think of them, cause I'd rather not spam the thread every time I think of something:

  • Incident reports (ties into public status page, the ability to write a message relating to the status of a monitor, with a status on each message such as "⛔ Investigating", "⚠ Resolving" and "✔ Resolved").
  • White labeling public status page with custom logo, page title and favicon (that said there should obviously still be credit to the project, maybe in the form of a footer or something)

LeviSnoot avatar Jul 12 '21 15:07 LeviSnoot

Thanks @LeviSnoot Added your enhancements to my post to have a complete list.

Panja0 avatar Jul 12 '21 16:07 Panja0

Would be good if other users add to this thread here more, instead of opening a new one for every single idea they have :)

One addition:

  • "Pause all" or "Pause Groups" could be helpful.

Sometimes I have a service update running interrupting service to several or all services... that results in a lot notifications :D

rezzorix avatar Jul 13 '21 04:07 rezzorix

@rezzorix Indeed would be handy to post here I guess.

Your addition is already in: Select all monitors at once to pause them: at the moment you have to pause them all manually one by one

Panja0 avatar Jul 13 '21 05:07 Panja0

Very important and easy to implement:

  • Pagination

Pagination (next page) for the Dashboard / Dashboard of each monitor. Also maybe for the monitor list on the left. Just auto separate after every 10, 20, xx pages.

I have setup 10 monitors for different services. Some go off for a bit and on again. Because of that the dashboard is currently already quite long ... and gets longer and longer ... :)

rezzorix avatar Jul 14 '21 11:07 rezzorix

@rezzorix added to the list!

Panja0 avatar Jul 14 '21 11:07 Panja0

Two more suggestions:

Import/export monitors list as JSON

Scenario

  • Add and test monitor in local docker
  • Export JSON from local
  • Import JSON in production

Add the possibility to define an announcement

To announce a specific event, like a maintenance or an hardware failure The announcement is visible in the dashboard header, we can opt-in if a notification is sent or not

kvpt avatar Jul 15 '21 14:07 kvpt

@kvpt added them to the list!

Panja0 avatar Jul 15 '21 16:07 Panja0

Here are some additional enhancement's I would like to see (in addition to the ones above):

  1. Ability to use a separate docker container as the database (e.g. mariadb).
  2. Ability to authenticate with digest or basic auth.
  3. Heartbeat monitoring (instead of pinging services, those services must check in).
  4. Able to ignore SSL issues for specific monitors.
  5. User management with LDAP and oAuth. This would allow us to use our built in user management tools instead of having to create yet another user for people that need access.

Some additional thoughts on SSL: for anyone who has to deal with custom certs like I do, you can inject your own CA or ignore all SSL cert issues for all monitors by doing the following (note this is a docker stack file for docker swarm, but docker-compose is close):

version: "3.8"
services:
  uptime_kuma:
    image: louislam/uptime-kuma
    volumes:
       - /uptime_kuma/data:/app/data
       - /uptime_kuma/certs:/certs
    deploy:
      restart_policy:
        condition: any
    ports:
      - 3001:3001
    environment:
      - NODE_EXTRA_CA_CERTS=/certs/ca-bundle.crt # inject your CA.
      #-NODE_TLS_REJECT_UNAUTHORIZED=0 # ignore ssl issues, potentially dangerous but useful for testing :)

This is looking like a great start to a project in a space that I think is sorely lacking in up to date tools. I am currently using statping but the fact that it hasn't been updated in months makes me think it's abondanware. Once some of the enhancements listed on this page are implemented I will look at deploying Uptime Kuma to production. 😃

joe-eklund avatar Jul 16 '21 22:07 joe-eklund

Added your enhancements to the list @joe-eklund

Panja0 avatar Jul 17 '21 08:07 Panja0

Here are some ideas I thought of:

  1. Ability to set default notifications in settings so you don't have to select each time you create a new monitor
  2. "Check now" button to perform a check a single monitor right away
  3. Tags to group monitors with filtering (by tag, by type)
  4. Sorting monitors in dashboard
  5. More information about monitor (date created, last modified etc.)
  6. Ability to SMTP multiple email addresses or CC/BCC

@parityhero Added your enhancements to the list. Removed 1 duplicate: 4. Sorting monitors in dashboard --> Re-order monitors: create your own list priority

Panja0 avatar Jul 19 '21 08:07 Panja0

  • Dark mode (based on system setting would be great) I would also suggest to have a swhitch button between light/dark mode

Few other small suggestions :

  • Personnalize notifications for texts / icons to be used (depending on private/public channels for example)
  • Check specific status code (200, 400, 500...)
  • Check certficate validity and expiration time
  • Define treshold for response timewith alert if it's up to defined level in 1 time or average one.

magicgg91 avatar Jul 19 '21 22:07 magicgg91

@magicgg91 Added yours to the list as well. Removed the duplicates.

Panja0 avatar Jul 21 '21 09:07 Panja0

I have another potential improvement:

The ability to configure how long the monitor history is retained. A global setting to automatically delete monitor entries older than ${x} days would declutter the user interface. This would also go in tandem with the "delete all logs for a specific monitor".

It's more control handed over to the user and should only need a toggle and textbox in the global app settings and a database query to prune old entries according to the timestamp.

Spiritreader avatar Jul 29 '21 09:07 Spiritreader

Would love the ability for a "Bulk Upload" via csv etc....

DRM-Scripts avatar Jul 29 '21 13:07 DRM-Scripts

@Spiritreader @EclipseOfficeTech Added your enhancements to the list!

Panja0 avatar Jul 29 '21 13:07 Panja0

Check certficate validity and expiration time (thx @magicgg91)

awesome this is implemented now in 1.0.7.

I have not yet figured out though: will it cause a notification when the TLS cert validity is about to expire? Some servers i'm taking care of do not have the most reliably cert renew facilities yet and i'd love to be warned a few days ahead :D

aslmx avatar Aug 02 '21 05:08 aslmx

@aslmx Notification for TLS expiry is not implemented yet. (see #116) It's a bit more difficult since we might need to add a config section for when and how often to send notifications.

chakflying avatar Aug 03 '21 03:08 chakflying

~~Could I get authentication around the /metrics page added- at the minute someone reverse forwarding the project will/could be inadvertently disclosing internal network configuration (i.e. if checking internal IP addresses), accurate internal DNS names etc....~~

Ignore me - I thought I had logged out but clearly not. It seems the the /metrics page is not in sync with the logout from the main area? I can still access metrics after logging into the metrics page but logging out of the main pages.

That said integrated/native SSL support seems like a must.

Aterfax avatar Aug 06 '21 11:08 Aterfax

A simple one (hopefully).

Can a setting be added in Email Notification to set the name of the "User" sending the notification.

Currently it says Uptime Kuma [email protected]

DRM-Scripts avatar Aug 19 '21 15:08 DRM-Scripts

Can a setting be added in Email Notification to set the name of the "User" sending the notification. Currently it says Uptime Kuma [email protected]

I'd also like that one.

I run two instances of Uptime Kuma, one in my LAN, one on a VPS. I solve the challenge to differentiate alarms, because they send to different eMail addresses. Like [email protected] for Alerts from LAN and [email protected] for alarms from my VPS. But would be nicer if the FROM could be customized!

aslmx avatar Aug 23 '21 05:08 aslmx

could we please add the option to check http(s) pages behind http basic authentication? This is how this looks in uptimerobot:

image

ovizii avatar Aug 25 '21 13:08 ovizii

could we please add the option to check http(s) pages behind http basic authentication? This is how this looks in uptimerobot:

You should be able to do it inline (haven't tested it tho): https://username:[email protected]/login

Twisterado avatar Aug 25 '21 13:08 Twisterado

could we please add the option to check http(s) pages behind http basic authentication? This is how this looks in uptimerobot:

You should be able to do it inline (haven't tested it tho): https://username:[email protected]/login

Thanks, that worked perfectly!

ovizii avatar Aug 25 '21 13:08 ovizii

The current "status" isn't really helpful. Take this example: there was an 401 error which I solved by adding http basic auth to this monitor. Since then tis UP - this status would only be useful if it would show how long it persisted for i.e. status 401 for 7 minutes or some such?

image

ovizii avatar Aug 25 '21 13:08 ovizii

+1 for Reset/delete up/downtime history: be able to delete the history for a monitor (after history delete it's 100% up again)

aidenmitchell avatar Aug 26 '21 17:08 aidenmitchell