Finagle v19.12.0 Release Notes

Release Date: 2019-12-13 // 4 months ago
  • 🆕 New Features

    
    * finagle-core, finagle-exp: Add annotations to ``DarkTrafficFilter`` to identify which span
      is dark, as well as which light span it correlates with. ``PHAB_ID=D402864``
    
    * finagle-core: Introduce `Trace#traceLocal` for creating local spans within a trace context.
      ``PHAB_ID=D404869``
    
    ⚙ Runtime Behavior Changes
    
    • ⬆️ finagle: Upgrade to jackson 2.9.10 and jackson-databind 2.9.10.1 PHAB_ID=D410846

    • finagle-core: Per-method metrics on MethodBuilder are now created lazily, so if you have methods that you don't use, the associated metrics won't be exported. PHAB_ID=D400382

    • ⏪ finagle-mysql: The RollbackFactory no longer attempts to roll back if the underlying session is closed since it is highly unlikely to succeed. It now simply poisons the session and calls close. PHAB_ID=D408155

    • finagle-netty4: Change the 'connection_requests' metric to debug verbosity. PHAB_ID=D391289

    • finagle-serversets: Ensure ZkSession#retrying is resilient to ZK host resolution failure. PHAB_ID=D403895

    • finagle-thrift: Per-method metrics are now created lazily, so if you have methods on a Thrift service that you don't use, the associated metrics won't be exported. PHAB_ID=D400382

    • finagle-zipkin-core: Tracing produces microsecond resolution timestamps in JDK9 or later. PHAB_ID=D400661

    • finagle-core: Trace#time and Trace#timeFuture no longer generate timestamped annotations or silently discard timing information. They now instead generate a BinaryAnnotation containing the timing information. In order to also get timestamped Annotations for when the operation began and ended, use in conjunction with Trace#traceLocal. PHAB_ID=D404869

    💥 Breaking API Changes

    
    * finagle-core: The `RetryPolicy` companion object is no longer a `JavaSingleton`.
      ``PHAB_ID=D399947``
    
    * finagle-thrift: The RichClientParam constructors are now all either
      deprecated, so to construct it, you must call one of the RichClientParam.apply
      methods.  ``PHAB_ID=D400382``
    
    🗄 Deprecations
    
    • 🗄 finagle-core: Deprecate Tracing#record(message, duration) as it does not have the intended effect and silently discards any duration information in the resulting trace. Instead you should use either Tracing#recordBinary or a combination of Trace#traceLocal and Trace#time. PHAB_ID=D404869

    🐛 Bug Fixes

    
    * finagle-core: `ClosableService` client stack module that prevents the reuse of closed services
      when `FactoryToService` is not set. This is important for clients making use of the `newClient`
      api. ``PHAB_ID=D407805``