Skip to content
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

Switch to using eventstreams #7

Open
yuvipanda opened this issue Apr 1, 2018 · 2 comments
Open

Switch to using eventstreams #7

yuvipanda opened this issue Apr 1, 2018 · 2 comments

Comments

@yuvipanda
Copy link
Collaborator

Eventstreams are a much better fit for this than polling via HTTP requests as we do now. We should switch to it (plus a polyfill for IE users)

@krinsman
Copy link
Contributor

Is using Prometheus+psutil a good enough compromise to using event streams?

That is what I am trying to implement lately (a standard "interface" for Prometheus to track any suitable psutil metric that the user specifies in config). I have no idea either way whether that's performant or not though.

@jtpio
Copy link
Member

jtpio commented Apr 27, 2020

I think this refers to using an EventSource on the frontend instead of polling via HTTP requests?

With the nbresuse backend emitting the events.

davidbrochart pushed a commit to davidbrochart/jupyter-resource-usage that referenced this issue Dec 14, 2022
davidbrochart added a commit that referenced this issue Dec 15, 2022
* initial commit

* add Makefile

* refactor react state

* add a timer with react hook to ensure the panel is refreshed - fixes Quansight/jupyterlab-kernel-usage#6

* panel content for #4 and #7

* new icon fixes #3

* ensure minimal ipykernel version - fixes #8

* format cpu to 1 decimal - fixes #2

* better format the memory numbers - fixes #1

* bump version to 0.2.0

* better format for the memory

* bump versoin to 0.3.0

* update preview image

* lint

* tune the panel layout

* show a message is kernel usage is not available

* Add PID

* readme: add ipykernel requirement - closes #8

* release: 0.4.0

* remove old kernel poll

* don't throw timeout exception

* remove logging

* Pool only the active kernel and if the sidebar is visible

* lint

* polish the ui and add cpu_count

* release: 0.5.0

* Fix issues related to fronted querying too often.

There were three issues:
- the `notebookTracker.currentChanged` signal was being connected
  on each re-render of React widget and re-renders were triggered
  by update to state that was defined in the callback leading to
  O(n^2) accumulation of callbacks.
- the `kernelChanged` signal was being connected on each change of
  the notebook leading to O(n) accumulation of callbacks.
- the sidebar panel could have been created multiple times if
  invoked from command palette - O(1) accumulation of callbacks.

* Limit the backend timeout to 1+2+3=6 seconds total

* Clear kernel ID if disposed

* Merge jupyterlab-kernel-usage

* Add ipykernel dependency

* Update README

* Pin ipykernel>=6.11.0

* Remove jupyterlab-kernel-usage

* Include changes from Quansight/jupyterlab-kernel-usage#24

* Lint

* Remove @jupyterlab/launcher dependency

Co-authored-by: Michał Krassowski <[email protected]>

* Review

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: Eric Charles <[email protected]>
Co-authored-by: krassowski <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants