-
-
Notifications
You must be signed in to change notification settings - Fork 596
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
Reporting to Socket.IO Admin UI #1164
Conversation
miguelgrinberg
commented
Mar 30, 2023
•
edited
Loading
edited
- Instrumentation for sync server
- Instrumentation for async server
- Unit tests
- Documentation
- Multi-server support
- Enter and leave room requests should go on the message queue
- Nodes should routinely report their connected clients to all admins
- All nodes should emit "server_stats" at regular intervals, regardless of admins connected or not
Codecov Report
@@ Coverage Diff @@
## main #1164 +/- ##
==========================================
Coverage 100.00% 100.00%
==========================================
Files 29 31 +2
Lines 2021 2405 +384
Branches 373 431 +58
==========================================
+ Hits 2021 2405 +384
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
Amazing thank you ! Can't wait to implement and test this :D |
388752c
to
7724895
Compare
7724895
to
ae34cfd
Compare
Hi @miguelgrinberg :) Is there any news on this ? :) |
@Seluj78 I think this implementation is complete, so you are welcome to use it. I will not merge it until I come up with a good testing strategy though. |
I tried testing it with
The code: socketio = SocketIO(application)
socketio.init_app(application, cors_allowed_origins="*")
InstrumentedServer(socketio, auth=False) |
@Seluj78 for Flask-SocketIO use this: InstrumentedServer(socketio.server, auth=False) |
The server started without a problem now, but when I enter connection details (
Let me know if you need the full error log |
I think this is likely a mistake on my part, not something you are doing wrong. I tested mostly websocket connections. Are you working with polling connections? EDIT: actually I don't know, it seems to work well for me. I'm using the
|
Weird... My code: socketio = SocketIO(application)
socketio.init_app(application, cors_allowed_origins="*")
InstrumentedServer(socketio.server, auth=False) And the error:
|
@Seluj78 I have pushed some fixes into this branch. Let me know if they help. |
732cd2b
to
e84e3c5
Compare
9c4b5db
to
b8251c4
Compare
I haven't tried in a while but I just cloned this branch again and installed it and it seems like it's working ! I just added |
@Seluj78 the |
Great ! I will check these out, I was just testing quickly. Once you've merged this I will test it more thoroughly and deploy it in production where we have about 500 active connections at the same time. |
@Seluj78 if full instrumentation affects performance you can instrument for production mode, which disables the most expensive monitoring features. This is all based on the JavaScript implementation. |
Indeed I've just seen that, thank you. I was wondering what the performance impact is, but idk how to benchmark it. I'll try and see :) |
ab72863
to
0948832
Compare
ab33cb7
to
8e3460c
Compare
26e728f
to
eec1cff
Compare
eec1cff
to
7a1796c
Compare