Commit graph

326 commits

Author SHA1 Message Date
Moritz R
361e44ad6a
Merge branch 'louislam:master' into master 2022-04-13 15:58:17 +02:00
Louis Lam
279e2eb3f6 Merge branch 'master' into logging
# Conflicts:
#	server/database.js
#	server/jobs.js
#	server/model/monitor.js
#	server/routers/api-router.js
#	server/server.js
#	server/socket-handlers/status-page-socket-handler.js
#	server/util-server.js
2022-04-12 16:32:14 +08:00
Louis Lam
c9fa183712 Manage domain names 2022-04-10 00:25:27 +08:00
Louis Lam
c4e74c9943 Render <StatusPage> if domain matched 2022-04-06 22:43:22 +08:00
Louis Lam
70311f7a5a Add an option to enable/disable the domain name expiry notification #1364 2022-04-05 21:27:50 +08:00
Moritz R
af44b0beab
Merge branch 'master' into master 2022-04-03 17:19:29 +02:00
Moritz R
84a0b24448
Update server/model/monitor.js
As per recommendation of @Computroniks

Co-authored-by: Matthew Nickson <mnickson@sidingsmedia.com>
2022-04-03 17:15:21 +02:00
Jimmy Huang
a4be651118
Update server/model/monitor.js
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2022-04-01 15:26:50 +08:00
Louis Lam
04e3394d02 Merge branch 'master' into feature/request-with-http-proxy
# Conflicts:
#	package-lock.json
#	package.json
#	server/database.js
#	src/languages/en.js
#	src/mixins/socket.js
2022-04-01 14:57:35 +08:00
OidaTiftla
91366ff565
Merge branch 'master' into introduce-resend-interval 2022-03-27 21:19:57 +02:00
Louis Lam
be88351eb3
Merge pull request #1136 from chakflying/fix/prometheus-on-delete
Fix: Remove prometheus metrics on delete [Test needed]
2022-03-27 11:05:50 +08:00
Louis Lam
aef0a66205 [Status Page] Simplify show tags logic 2022-03-18 17:56:46 +08:00
Louis Lam
e87cdf4d09 [Status Page] wip, upload logo and status page listing 2022-03-17 16:42:26 +08:00
Louis Lam
1033ca5cf4 [Status Page] wip, combine api, add status_page_id into group and incident tables 2022-03-16 15:38:10 +08:00
Louis Lam
18ec42b060 [Status Page] wip 2022-03-16 14:14:47 +08:00
Louis Lam
50d6e888c2 [new status page] wip 2022-03-10 21:34:30 +08:00
Uğur Erkan
8078d0618d Add socks proxy support to proxy feature
- Socks proxy support implemented.
- Monitor proxy agent create flow refactored
  and moved under proxy class.

Thanks for suggestion @thomasleveil
2022-03-06 19:34:51 +03:00
Uğur Erkan
78d76512ba Add http and https proxy feature
Added new proxy feature based on http and https proxy agents.
Proxy feature works like notifications, there is many proxy
could be related one proxy entry.

Supported features
- Proxies can activate and disable in bulk
- Proxies auto enabled by default for new monitors
- Proxies could be applied in bulk to current monitors
- Both authenticated and anonymous proxies supported
- Export and import support for proxies
2022-03-06 19:34:49 +03:00
Louis Lam
595cd93220 Check invalid interval 2022-02-24 15:11:17 +08:00
Jimmy Huang
244a7b3671
Update server/model/monitor.js
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2022-02-07 18:46:16 +08:00
Karel Krýda
b49e5d5c39 The SQL query to determine if the monitor is under maintenance is now in its own method. 2022-01-25 19:07:27 +01:00
Jimmy Huang
ee90d2713f refs issue-1201 in upstream.
Add 100 characters from response body to bean.msg after keyword not match.
2022-01-25 17:39:19 +08:00
Karel Krýda
e7b2832967 The start and end dates of the maintenance are now stored in UTC, which allows it to be converted between time zones 2022-01-24 22:33:15 +01:00
OidaTiftla
f390a8caf1 Fix missing DB patch and use DATETIME as column format 2022-01-24 21:59:25 +01:00
Karel Krýda
5fda1f0f59 minor fixes (missing commas, spaces, translations) 2022-01-23 20:33:39 +01:00
OidaTiftla
11e9eee09d Change seconds to minutes 2022-01-23 17:48:09 +01:00
OidaTiftla
1ac904d6d6 Introduce resend interval if down 2022-01-23 15:22:57 +01:00
Karel Krýda
0d3414c6d6 A complete maintenance planning system has been created 2022-01-23 15:22:00 +01:00
c0derMo
29df70949d Add ability to connect to daemon via http / tcp for windows compatibility 2022-01-22 01:57:37 +00:00
Tarun Singh
22256dfcd2 added timeout for removing the dead loop state 2022-01-20 13:04:59 -05:00
c0derMo
4818bb67d6 Added trailing comma, fixed spelling & translation 2022-01-14 09:09:37 +00:00
c0derMo
c5cc42272f Fixing the editing of docker container & adding english translation 2022-01-13 18:28:45 +00:00
c0derMo
b0259b5592 Added docker container monitor 2022-01-13 16:17:07 +00:00
Louis Lam
227bbdea2f [MQTT] Try to improve error handling 2022-01-13 12:42:34 +08:00
Louis Lam
6272514820 [MQTT] Use existing fields instead of creating new ones (Server) 2022-01-13 11:53:08 +08:00
Louis Lam
076d6bdbb6 Merge branch 'master' into mqtt
# Conflicts:
#	package-lock.json
#	server/database.js
2022-01-13 11:09:16 +08:00
Nelson Chan
1e92487f30 Chore: Remove onDelete as unused 2022-01-07 12:28:08 +08:00
Nelson Chan
edd2534a1b Fix: Clear metrics also on stop and edit 2022-01-07 12:26:26 +08:00
Nelson Chan
f6ef390c76 Fix: Remove Prom. metrics on delete monitor 2022-01-07 12:04:57 +08:00
Tarun Singh
d3c90df8a8 fixed edit monitor fields empty issues 2021-12-18 16:35:18 -05:00
Louis Lam
a42932a43e Simulate Chrome's request Accept header. Better handling of #1067 2021-12-16 15:09:10 +08:00
Andreas Brett
38f8a8ac2f
Merge branch 'louislam:master' into logging 2021-12-10 17:21:55 +01:00
Louis Lam
dcc91d6c72 Fix #922 2021-12-08 14:59:59 +08:00
Andreas Brett
a13bdaac84
Merge branch 'master' into logging 2021-11-29 20:32:42 +01:00
Louis Lam
92a5f18bf5
Merge pull request #864 from ivanbratovic/http-basicauth
Implement explicit HTTP "basic" authentication support
2021-11-23 22:48:54 +08:00
Louis Lam
3d222ac5f5 fix btoa is not define 2021-11-23 12:59:48 +08:00
Tarun Singh
35da8c78f4 added connection timeout and refactored code 2021-11-22 03:21:53 -05:00
Tarun Singh
3f5133d1ba Added authentication logic 2021-11-16 20:44:10 -05:00
Andreas Brett
e5913c5abc separate log functions 2021-11-15 17:52:28 +01:00
Andreas Brett
bdcdf47e52 introduce consistent logging 2021-11-11 12:31:28 +01:00
Louis Lam
41a6d1b701 Fix parseCertificateInfo possibly in dead loop 2021-11-08 15:39:17 +08:00
Ivan Bratović
34d8984e3a
Merge branch 'master' into http-basicauth 2021-11-07 17:15:36 +01:00
Louis Lam
c92153c97e add more debug msg 2021-11-07 21:00:47 +08:00
Tarun Singh
2d802585ff
Update review suggestions
Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
2021-11-04 22:21:54 -04:00
Ivan Bratović
179ca232bc Minor refactor - change variable names and add commas to object definitions 2021-11-04 10:14:17 +01:00
Ivan Bratović
0dcb7aed21 Delinting 2021-11-04 09:50:10 +01:00
Ivan Bratović
23736549f9 Implement HTTP basic auth feature 2021-11-04 09:50:10 +01:00
Tarun Singh
670754b697 added MQTT monitor type 2021-11-03 21:46:43 -04:00
Louis
d7f7dba13f write some error logs to ./data/error.log 2021-10-29 18:24:47 +08:00
Louis Lam
eb22ad5ffe [certificate notification] error handling and better msg 2021-10-27 16:12:18 +08:00
Louis Lam
f5f4835b74 [certificate notification] clear sent history if the cert is changed 2021-10-27 16:03:16 +08:00
Louis Lam
44c1b336dc send certificate notifications in 21, 14, 7 days 2021-10-27 15:33:15 +08:00
Louis Lam
640b6e5b1c prevent monitor dead for unexpected error 2021-10-27 14:08:44 +08:00
Louis Lam
698a38e773 clear status page cache in a better place 2021-10-27 11:39:46 +08:00
Louis Lam
68d44dd9b3 [steam] do not request if there is no steam api key 2021-10-18 17:11:41 +08:00
Louis Lam
20d59e5a13 fix and move the steam api key to settings page 2021-10-18 17:02:05 +08:00
Louis Lam
ae31eb6ba9 Merge branch 'master' into Revyn112_master
# Conflicts:
#	server/model/monitor.js
#	src/languages/en.js
#	src/pages/EditMonitor.vue
2021-10-18 15:50:35 +08:00
Bert Verhelst
1d63dd9ddd fix(monitor): safely get status of previous beat if first beat 2021-10-16 11:28:03 +02:00
Louis Lam
7276f34d90 fix reset-password 2021-10-16 00:57:26 +08:00
Louis Lam
cd211a6be7 [http options] fine tune 2021-10-15 18:36:40 +08:00
Louis Lam
4e71ab7406 Merge branch 'master' into feature/add-support-for-method-body-and-headers 2021-10-15 16:07:05 +08:00
Louis Lam
3b74b727f2 [Push Type] fix missing important flag and missing up notification 2021-10-14 22:32:15 +08:00
Bert Verhelst
5445c2a2ff fix(monitor): revert unintentional change to comment 2021-10-10 18:41:29 +02:00
Bert Verhelst
dc08510e72 Merge remote-tracking branch 'origin/master' into feature/add-support-for-method-body-and-headers 2021-10-10 18:40:53 +02:00
LouisLam
82131f4dd2 merge conflict 2021-10-10 13:09:30 +08:00
Bert Verhelst
5137c80c07 fix(monitor): handle empty headers 2021-10-09 21:51:24 +02:00
LouisLam
56ae6f6117 fix demoMode export 2021-10-10 02:36:20 +08:00
LouisLam
5c89562650 not allow lower than 20s for demo mode 2021-10-10 02:23:27 +08:00
Bert Verhelst
d71d27220b fix(edit-monitor): store headers as JSON 2021-10-09 12:42:32 +02:00
Bert Verhelst
fba4f86552 Merge branch 'master' into feature/add-support-for-method-body-and-headers 2021-10-09 12:35:08 +02:00
LouisLam
a15e9077fc [status page] clear cache if it is an important beat 2021-10-09 17:04:51 +08:00
Bert Verhelst
ec4b7e4064 Merge remote-tracking branch 'louislam/master' into feature/add-support-for-method-body-and-headers 2021-10-07 18:22:59 +02:00
LouisLam
e5f6d7f047 slack and rocket.chat use the primary base url
env var to show time logger
2021-10-07 17:39:58 +08:00
Bert Verhelst
3f0b85e5a8 feat(http-requests): add support for methods, body and headers for http 2021-10-02 16:48:27 +02:00
LouisLam
1ed4ac9494 add Push-based monitoring (#279) 2021-10-01 00:09:43 +08:00
LouisLam
3e4154dfb5 Fix retry interval affected bug 2021-09-29 17:20:35 +08:00
Denis Freund
b67b4d5afd add steam gameserver for monitoring 2021-09-27 11:17:57 +02:00
LouisLam
0a5a6e6a4b [status page] fix monitor order 2021-09-22 15:23:58 +08:00
LouisLam
fe0fc63843 [status page] send uptime 2021-09-22 15:10:08 +08:00
LouisLam
7ee98d989c [status page] implement rest api for heartbeat 2021-09-19 23:24:51 +08:00
LouisLam
fd95d41d9f [status page] many update and save group list 2021-09-19 19:04:51 +08:00
Louis
a6fdd272a6 [status page] minor 2021-09-17 14:42:19 +08:00
LouisLam
2955abb5d9 [status page] create incident 2021-09-16 22:48:28 +08:00
LouisLam
392f8275b3 Merge branch 'master' into public-dashboard
# Conflicts:
#	server/database.js
2021-09-16 16:53:54 +08:00
Louis Lam
72783fd94c
Merge pull request #380 from No0Vad/retry-heartbeat-interval
Added support for a retry interval to monitors
2021-09-16 00:21:53 +08:00
No0Vad
1300448bed Adjustments to the retry interval
The monitor logic for when to use "retryInterval" is updated. Also removed some texts when they are no longer needed.
2021-09-15 00:59:06 +02:00
LouisLam
9902c181bc Merge branch 'master' into public-dashboard
# Conflicts:
#	src/components/MonitorList.vue
#	src/icon.js
2021-09-14 15:05:04 +08:00
Nelson Chan
6e3a904aaa WIP: Add tags functionality
WIP: add color column, show tags

WIP: Improve TagsManager styling & workflow

WIP: Improve styling & validation, use translation

WIP: Complete TagsManager functionality

WIP: Add tags display in monitorList & Details

Fix: update tags list after edit

Fix: slightly improve tags styling

Fix: Improve mobile UI

Fix: Fix tags not showing on create monitor

Fix: bring existingTags inside tagsManager

Fix: remove unused tags prop

Fix: Fix formatting, bump db version
2021-09-13 14:12:11 +08:00
LouisLam
e205adfd7b [status page] developing 2021-09-13 02:26:45 +08:00
No0Vad
f8f9f59464 Added support for a retry interval to monitors
If a check fails and retries are used you can now specify a specific value for that. So you can check faster if the site goes back up again.
2021-09-11 18:54:55 +02:00
LouisLam
8ee34c7904 also handle the first beat problem in uptime 2021-09-09 15:55:34 +08:00
LouisLam
4f07c2ea9a uptime calculation fully sum in sql 2021-09-09 15:46:28 +08:00
LouisLam
6006038689 fix monitor.stop() in some cases 2021-09-08 20:00:16 +08:00
LouisLam
0ddbac5109 Revert "move userMonitorList out of server.js"
This reverts commit a7cf14c663.
2021-09-08 19:54:38 +08:00
LouisLam
0f440596c8 Revert "cache last heartbeat list in memory"
This reverts commit 87678ea92d.
2021-09-08 19:54:37 +08:00
LouisLam
87678ea92d cache last heartbeat list in memory 2021-09-08 18:58:02 +08:00
LouisLam
a7cf14c663 move userMonitorList out of server.js 2021-09-08 16:27:37 +08:00
LouisLam
bf29f28726 send stats only if there is at least one client in the room 2021-08-30 14:55:33 +08:00
Ponkhy
858affa808 Removed useless database query 2021-08-28 21:29:24 +02:00
Ponkhy
303adbf9b1 Show latest dns result in Details.vue 2021-08-28 21:20:25 +02:00
LouisLam
46ac753c46 Merge branch 'master' into dns-monitor 2021-08-26 01:05:46 +08:00
Ponkhy
d313a06d5c Optimizations for output handling 2021-08-25 09:31:42 +02:00
Ponkhy
44d9fa63f0 Adjusted the output for A and AAAA records 2021-08-24 11:47:12 +02:00
Ponkhy
b2041cb36b Fixed ESLint Errors 2021-08-23 16:30:11 +02:00
LouisLam
aa2233eb2d log notification error 2021-08-23 20:57:42 +08:00
Ponkhy
e5981b10ce Replaced var with let and removed re-declaration 2021-08-23 13:08:22 +02:00
LouisLam
50f300dd28 heartbeat interval change to use setTimeout() 2021-08-23 18:52:24 +08:00
Ponkhy
c79be19ec3 Added DNS Monitor Type 2021-08-23 00:05:48 +02:00
LouisLam
eed6d3e847 add more query log for dev env 2021-08-17 02:09:40 +08:00
Louis Lam
af34e861c5
Merge pull request #200 from proffalken/feature/187_add_cert_checks_to_prometheus
Add certificate monitoring to the Prometheus handler
2021-08-13 00:26:58 +08:00
LouisLam
d39b43dacc fix require problem 2021-08-13 00:13:46 +08:00
LouisLam
6a8ccf627a add version to user agent 2021-08-12 01:31:07 +08:00
LouisLam
b14f63491d timeout change to 80% of its interval 2021-08-11 23:12:38 +08:00
LouisLam
692a11e51e pass tls info to prometheus.update 2021-08-10 14:24:05 +01:00
LouisLam
f099e4270d change to Accept: */* to better support all websites 2021-08-10 20:23:15 +08:00
LouisLam
59ef1f13db set longer timeout for axios request 2021-08-09 13:54:24 +08:00
LouisLam
d0aad3400c add reset password in cli 2021-08-09 13:34:44 +08:00
LouisLam
3005585c0f Merge branch 'master' into redirects&status 2021-08-08 14:48:00 +08:00
Philipp Dormann
123fca43a1
FEAT: darkmode (#155)
* darkmode fixes

* fix: darkmode: empty beats in active/ hovered state

* fix: color for empty beats

* fix: navbar background color

* Update src/assets/vars.scss

Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>

* Update src/assets/app.scss

Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>

* wip, split dark theme style by .dark and store light theme to normal

* add back missing css

* working switch theme button and tuning dark theme

* finish dark theme

Co-authored-by: Adam Stachowicz <saibamenppl@gmail.com>
Co-authored-by: LouisLam <louislam@users.noreply.github.com>
2021-08-08 13:47:29 +08:00
Nelson Chan
8f7885e58a Feat: Implement MaxRedirects & StatusCodes 2021-08-05 19:04:38 +08:00
LouisLam
63f0a36811 implement upside down mode and ignore tls error 2021-07-31 00:01:04 +08:00
LouisLam
06377af7e5 turn off object-curly-newline, it makes const { a, b, c, d } = require(...) ugly 2021-07-30 22:11:14 +08:00
LouisLam
60aa67892d store ignoreTls and upsideDown into db 2021-07-30 19:18:26 +08:00
LouisLam
081abcb6a1 add util.ts for sharing common functions between frontend and backend 2021-07-30 11:23:04 +08:00
Adam Stachowicz
4c8fdd07d9 Manual fixes 2021-07-27 19:53:59 +02:00
Adam Stachowicz
9648d700d7 Autofix on save 2021-07-27 19:47:13 +02:00
LouisLam
209fa83cff Add Basic Auth for /metrics 2021-07-28 00:52:31 +08:00
LouisLam
934b797623 Merge branch 'master' into feature/add_prometheus_metrics
# Conflicts:
#	server/model/monitor.js
2021-07-27 23:13:03 +08:00
LouisLam
caec933186 prevent unexpected error throw from checkCertificate interrupt the beat 2021-07-26 12:25:44 +08:00
Nelson Chan
db26b7d123 Fix: Fix no certificate caused by session reuse 2021-07-26 12:24:13 +08:00
Nelson Chan
7b8459c73a Fix: use Optional chaining 2021-07-26 12:24:12 +08:00
Nelson Chan
d0c63ebe3e Feat: Add database storage for TLS info 2021-07-26 12:24:12 +08:00
Nelson Chan
803f0d6219 Feat: Add Barebones certificate info display 2021-07-26 12:24:06 +08:00
LouisLam
d556509d07 戈mprove the readibility of important condition 2021-07-24 11:42:14 +08:00
Sam
1d4d7fa9c4 fix parenthesis mistake 2021-07-22 20:25:03 +02:00
Matthew Macdonald-Wallace
3a8fbff514 Change casing in README, apply DRY to label values 2021-07-22 16:00:56 +01:00
Matthew Macdonald-Wallace
3b45006567 Move common labels into dedicated const 2021-07-22 14:58:22 +01:00
Matthew Macdonald-Wallace
720051a351 Typo in monitor status name 2021-07-22 11:18:20 +01:00
LouisLam
86e18ac11d Merge branch 'master' into Spiritreader_master
# Conflicts:
#	src/pages/EditMonitor.vue
2021-07-22 17:34:41 +08:00
Matthew Macdonald-Wallace
3dcbae0889 Add labels to metrics for querying 2021-07-22 10:21:20 +01:00
Matthew Macdonald-Wallace
96242dce0d Expose check status and response time to Prometheus 2021-07-22 09:38:27 +01:00
LouisLam
03b3bb5b30 fix if notification throw exception, the heartbeat is not stored in to the db. 2021-07-22 12:28:47 +08:00
LouisLam
916b9da0dc Merge branch 'master' into something
# Conflicts:
#	server/notification.js
#	src/components/NotificationDialog.vue
2021-07-22 11:12:52 +08:00
Adam Stachowicz
c4ca8e2acb More info in server logs 2021-07-21 00:41:38 +02:00
Sam
054269ecf0 fix notification when changing from pending -> up 2021-07-20 11:50:33 +02:00
Sam
a8b102ad4a add retries for pinging function
backend:
- new field for monitor: maxretries
- new pending status while service is retrying: 2
- pending status event is not marked important
- pending pings however register as downtime in the calculation

frontend:
- added pending status while service is retrying
- added color for new pending status
- added field to configure amount of retries

database:
- IMPORTANT: THIS REQUIRES MIGRATION!!!!
- added field: maxretries with default value 0
2021-07-19 18:23:06 +02:00
Adam Stachowicz
d94894b7e0 Fix require-v-for-key, remove unused declarations and double spaces 2021-07-18 03:10:15 +02:00
LouisLam
a9d19ae06a support json for keyword type 2021-07-12 10:52:41 +08:00
TheGuyDanish
f84f7aca75
Introduce custom user agent. Fixes #5
Quick and easy fix. Could be improved by adding a version number as well. Like `Uptime-Kuma/0.0.1`, for example.
2021-07-11 21:01:34 +01:00
LouisLam
d357dcb334 fix first beat's uptime is 0% 2021-07-11 20:07:03 +08:00
LouisLam
86492f6dad remove some debug msg 2021-07-10 12:04:40 +08:00
LouisLam
ff4259380e do not send notification if first beat is UP 2021-07-10 01:15:21 +08:00
LouisLam
0ad04d1468 implement webhook 2021-07-09 19:33:22 +08:00
LouisLam
d24a15410e send notification for important heartbeat 2021-07-09 17:55:48 +08:00
LouisLam
3bdf174e90 add telegram notification 2021-07-09 14:14:03 +08:00
LouisLam
ea1556ef81 improve uptime calculation 2021-07-06 13:44:33 +08:00
LouisLam
55bd6b6d7a implement timezone 2021-07-01 21:47:14 +08:00
LouisLam
1d64f643b1 implement keyword monitor 2021-07-01 17:19:28 +08:00
LouisLam
a6b5986dd6 add ping and fix uptime 2021-07-01 17:00:23 +08:00
LouisLam
9c653c3d05 implement tcping 2021-07-01 14:03:06 +08:00
LouisLam
84c21b71c0 implement uptime 2021-07-01 13:11:16 +08:00
LouisLam
82afddcfd6 add duration to heartbeat, add timezone array 2021-07-01 02:02:54 +08:00
LouisLam
46f07fc17e many update again 2021-06-30 21:04:58 +08:00
Louis
9fa84a0a2b many update 2021-06-29 16:06:20 +08:00
LouisLam
d02401b1c2 many update 2021-06-27 16:10:55 +08:00
LouisLam
0a4fb45a8c init 2021-06-25 21:55:49 +08:00