Skip to content

Releases: anycable/anycable-go

v0.6.0 (preview 2)

07 Mar 12:21
Compare
Choose a tag to compare
v0.6.0 (preview 2) Pre-release
Pre-release

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)

05 Mar 17:09
Compare
Choose a tag to compare
v0.6.0 (preview 1) Pre-release
Pre-release

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

08 Feb 16:48
Compare
Choose a tag to compare

Fixes

  • [Fixes #25] Automatically reconnect to Redis when connection is lost.

v0.5.3

22 Dec 12:33
Compare
Choose a tag to compare
Bump 0.5.3

v0.5.2

22 Dec 09:27
Compare
Choose a tag to compare
[ci skip] v0.5.2

v0.5.1

08 Nov 15:30
Compare
Choose a tag to compare

Added TLS support:

anycable-go -addr=0.0.0.0:443 -ssl_cert=path/to/ssl.cert -ssl_key=path/to/ssl.key

> Running AnyCable websocket server (secured) v0.5.1 on 0.0.0.0:443 at /cable

v0.5.0

21 Oct 11:40
Compare
Choose a tag to compare

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.