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
Boot time speed up & metrics #1
Conversation
Added different key format. Refactor connectivity checks. Refactor node/servicer internal structure of mesh to reduce amount of worker/cron instances. Refactor chains/keys reload.
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.
Ah. I don't have much insights to add. File loading/configuration can only be done so concisely. As long as it works!
Added FullNode worker dynamic resize on servicers change. Updated servicers reload to only run the modification on maps when there is something new/removed.
@PoktBlade more changes on this, please check the latest commit |
…e and better readability of the code without so many casts. Refactor fullNode.Servicer to be a map instead of a slice. Enhance a bit more the logs and bootstrap time information.
Added metrics config support. Refactor code to split in files. Bump pond version to 1.8.3 (patch). Clean up the code.
Update config to handle rpc timeout for different things like chains, client and pocket node calls with a different value.
…able by config file.
Ensure that http response body is read even on errored request to reuse connections.
Enhanced chains reload logs. Enhanced startup logs.
… so many edge cases and possible infinite goroutine spams. Added name property to nodes as optional key, if not set use the hostname of the node url. Added minWorker, maxWorker, maxCapacity to prometheus metrics collectors. Refactor minWorker, maxWorker and maxCapacity option in config. Bump default to a more real world value. Updated docs.
…pact on mesh code, but help node runners to keep internal track.
…/queries on prometheus. Added chains name map so those metrics could contain the chain name you wish. ChainsNameMap could work with a local file or remote endpoint (GET)
… error log. Does not affect the code but is unnecessary.
Added status_type and status_code labels to error metrics. Added internal, notify and chain error metrics.
Added metrics docs and basic geo-mesh grafana dashboard.
…ould be leaked on logs. Moved Grafana Dashboard to a file to easily compare/copy from raw github files. Updated mesh.md
Enhance docs based on blade suggestions.
High Level SummaryThis update includes changes that allow for faster boot time and better overall performance & maintainability.
Breaking ChangesThis changes require you update both: Pocket Node & Mesh Node
NOTE: You must add the new private endpoints ( Configuration Changes
Core ChangesNew:
Fix:
Rework:
Dependencies:
Bump VersionNew version: RC-0.3.0 Docs
-- I made some changes to the release notes, could you elaborate more on the rework of:
|
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.
LGTM.
I think this is an iterative step architecturally and code-wise to improve the quality of Mesh. This is obviously not its final form and plenty of more code quality & architectural improvements down the road.
amazing work @jorgecuesta , I imagine a future where the entire network is leveraging mesh in some form or way
High-Level Summary
This update includes changes that allow for faster boot time and better overall performance & maintainability.
Breaking Changes
This changes require you update both: Pocket Node & Mesh Node
/v1/private/mesh/check
endpoint/v1/mesh/health
to/v1/private/mesh/health
/v1/private/mesh/servicer
authtoken
query param from private mesh endpoints in favor ofAuthorization: <token>
header./v1/private/mesh/*
endpointsNOTE:
check
) and use the same code/image on both sides or your mesh node will not start./v1/health
endpoint from your proxy.Configuration Changes
node_check_interval
to configure the rate at a full Node is health checked.log_chain_request
andlog_chain_response
to avoid unnecessary debug logs.chains_name_map
andremote_chains_name_map
to enhance exposed metrics with chain name.metrics_moniker
to help to identify a mesh node instance on metrics queries.metrics_report_interval
to configure the rate at metrics about workers are reported.<servicer|chain>_rpc_max_idle_connections
<servicer|chain>_rpc_max_conns_per_host
<servicer|chain>_rpc_max_idle_conns_per_host
chain_drop_connections
client_rpc_read_timeout
client_rpc_read_header_timeout
client_rpc_write_timeout
chain_request_path_cleanup
hot_reload_interval
in favor ofkeys_hot_reload_interval
andchains_hot_reload_interval
as separated valuesrpc_timeout
in favor of:client_rpc_timeout
andchain_rpc_timeout
Core Changes
New:
\t
characters on the path.Fix:
Rework:
authtoken
query parameter used to call private method to be passed using the HTTP headerAuthorization
to avoid it being leaked on logs.Dependencies:
Bump Version
New version: RC-0.3.0
Docs