-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed the metrics for the push type. #2491
Conversation
@@ -87,6 +88,7 @@ router.get("/api/push/:pushToken", async (request, response) => { | |||
|
|||
io.to(monitor.user_id).emit("heartbeat", bean.toJSON()); | |||
Monitor.sendStats(io, monitor.id, monitor.user_id); | |||
new Prometheus(monitor).update(bean, undefined); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since I don't use Prometheus, may need someone to cross check.
As here new Prometheus(monitor)
is created a new Object for each request, I am not sure whether it is really ok.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the correct way to use the current design. Since we don't have a list of existing metrics, only way to update is to construct the object with the same parameters. It's a very simple object with some identifying fields.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should I mark this as resolved?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry to jump in.
But this would be solved with #898, where I'm currently working on and my current suggested commit (054b3ec) for the PR would allow access to the existing Prometheus instance of the monitor on monitor.prometheus.update(...)
.
BTW: For the notes of @louislam 😉 We could think about to put stuff like monitor.prometheus.update(...)
in onAfterUpdate
on the bean... I don't know redbean-node
good enough, but it sounds like the monitor could implement everything that has to be done on update there. So every store
would automatically update prometheus and other stuff if required? This would hide monitor internal stuff from api-router or other callers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you can now replace this line with monitor.getPrometheus().update(bean, undefined);
You can also fix the response time display by changing line 40: let ping = parseInt(request.query.ping) || null; |
I'm trying to understand what this would do, because I don't have any errors now. The ping is reported as -1 in |
When I tried to send the ping with push parameters |
Good catch, I will try that later this week and add it to the pull request. |
in preperation for louislam#2491,louislam#680 and 898
in preperation for louislam#2491,louislam#680 and louislam#898
in preperation for louislam#2491,louislam#680 and louislam#898
https://github.com/louislam/uptime-kuma/blob/master/CONTRIBUTING.md#can-i-create-a-pull-request-for-uptime-kuma
Tick the checkbox if you understand [x]:
Description
Fixes part of #1474.
Currently, the push metrics are only updated when they "expire". This is fixed with this small change.
Type of change
Please delete any options that are not relevant.
Checklist
(including JSDoc for methods)
Screenshots (if any)
Please do not use any external image service. Instead, just paste in or drag and drop the image here, and it will be uploaded automatically.