feat: implement shared memory zone for WebSocket metrics persistence across reloads #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request refactors and improves the shared memory management for WebSocket statistics in the
ngx_http_websocket_stat_module.cfile. The main changes involve switching to NGINX's recommended shared memory zone API for storing and initializing counters, ensuring metrics are preserved across reloads, and improving the handling of maximum connection limits. These updates enhance reliability, maintainability, and correctness of the module.Shared Memory Management Improvements:
ngx_shared_memory_addAPI, ensuring that the shared memory zone and metrics are preserved across reloads. Added a new initialization functionngx_http_websocket_stat_shm_initto properly set up or reuse the shared memory zone. [1] [2]allocate_countersfunction to accept a configuration pointer and return an error code, integrating it into module initialization for better error handling.WebSocket Connection Limit Handling:
>=instead of==, preventing connections from exceeding the configured limit.