Changelog for the gruf gem. This includes internal history before the gem was made.
- Instrumentation hooks now execute similarly to outer_around hooks; they can now instrument failures
- Instrumentation hooks now pass a
RequestContext
object that contains information about the incoming request, instead of relying on instance variables - StatsD hook now sends success/failure metrics for endpoints
- Add ability to turn off sending exception message on uncaught exception.
- Add configuration to set the error message when an uncaught exception is handled by gruf.
- Add a request logging hook for Rails-style request logging, with optional parameter logging, blacklists, and formatter support
- Optimizations around Symbol casting within service calls
- Add the ability for call options to the client, which enables deadline setting
- Bump gRPC to 1.4
- Added rubocop style-guide checks
- Updated license to MIT
- Send gRPC status 16 (Unauthenticated) instead of 7 (PermissionDenied) when authentication fails
- Move to gRPC 1.3.4
- Add outer_around hook for wrapping the entire call chain
- Add ability to specify a separate gRPC logger from the Gruf logger
- Add ability to run multiple around hooks
- Fix bug with error handling that caused error messages to repeat across streams
- Fix issue with around hook
- Add catchall rescue handler to capture uncaught exceptions and raise a GRPC::Internal error.
- Add Gruf.backtrace_on_error configuration value. If set, Gruf will call Service.set_debug_info with the exception backtrace if an uncaught exception occurs.
- Pass the service instance into hooks for reference
- Ensure timer is measuring in milliseconds
- Fix issue with interceptor and call signature
- Add instrumentation layer and ability to register new instrumentors
- Add out-of-the-box statsd instrumentation support
- Rename Gruf::Endpoint to Gruf::Service
- Make services auto-mount to server upon declaration
- Support mount command on services to allow automatic setup on the server
- Cleanup and consolidate binstub to prevent need for custom binstub per-app
- Relax licensing to a clean BSD license
- Initial public release