Releases: anycable/anycable-go
v0.6.0 (preview 2)
Features
- Added HTTP metrics endpoint.
Application metrics (Prometheus-formatted) now could be accessible through HTTP.
You can enabled this feature with --metrics_http=/metrics
option (the value is the endpoint to serve data at).
You can also specify custom port with --metrics_http_port=1234
(and thus protect this information by making it inaccessible to public web). By default metrics are served by the server which handle WebSocket connections.
- Added
--metrics_log_interval
option.
Now it's possible to configure the interval at which statistics is logged (when enabled). By default equals to 15s.
- Added RPC related metrics.
Changes
Metrics names slightly changed (to comply with Prometheus conventions).
v0.6.0 (preview 1)
The first preview release of the upcoming 0.6.0.
The main goal of 0.6.0 release is a codebase refactoring and reorganization (for better flexibility and extensibility). Also, a bunch of new features are planned for the release.
NOTE: This release is compatible with Ruby gems with 0.5.x versions.
Changes
- [Breaking Change] New configuration and CLI options.
See upgrade notes for more information.
- New logging format.
Now we use structured logging with the help if apex/log. For example:
INFO 2018-03-05T08:44:57.684Z context=main Starting AnyCable unknown
INFO 2018-03-05T08:44:57.684Z context=main Handle WebSocket connections at /cable
INFO 2018-03-05T08:44:57.684Z context=http Starting HTTP server at 0.0.0.0:8080
INFO 2018-03-05T08:44:57.685Z context=rpc RPC pool initialized: 0.0.0.0:50051
INFO 2018-03-05T08:44:57.695Z context=pubsub Subscribed to Redis channel: __anycable__
Also, json
format is supported out-of-the-box (--log_format=json
or ANYCABLE_LOG_FORMAT=json
).
Features
- Added
metrics
package with some basic metrics (counters and gauges).
Metrics collected (cached) every 15s (will be configurable in the future).
Currently, only logging mode is available (disabled by default): run with --metrics_log
command to flush stats every 15s to log (with info
level).
NOTE: Counter values contain delta counts (for the last period).
Example metrics log entry:
INFO 2018-03-05T16:20:07.367Z auth_failures_count=0 broadcast_msg_count=228 client_msg_count=2228 clients_num=10000 context=metrics disconnect_queue_size=0 goroutines_num=21273 streams_num=1 uniq_clients_num=10000 unknown_broadcast_msg_count=0 unknown_client_msg_count=0
- Added signal handling and graceful shutdown.
When receiving SIGINT
or SIGTERM
we:
- Stop the server (to not accept new connections)
- Close all registered sessions (authenticated clients)
- Wait for pending Disconnect requests to complete
- Wait for active RPC calls to finish.
v0.5.4
v0.5.3
v0.5.2
v0.5.1
v0.5.0
This release brings AnyCable RPC v0.5.0 support.
Features
- Added support for passing arbitrary headers to RPC service:
# pass headers as comma-separated list
anycable-go -headers=cookie,x-api-token,origin
By default we pass only "Cookie" header.
Fixes
- Send control frame before closing connections.
See also release notes for anycable
gem.