All notable changes to Wingtips
will be documented in this file. Wingtips
adheres to Semantic Versioning.
Wingtips is used heavily and is stable internally at Nike, however the wider community may have needs or use cases that we haven't considered. Therefore Wingtips will live at a sub-1.0 version for a short time after its initial open source release to give it time to respond quickly to the open source community without ballooning the version numbers. Once its public APIs have stabilized again as an open source project it will be switched to the normal post-1.0 semantic versioning system.
0.13.x
Releases - 0.13.00.12.x
Releases - 0.12.1, 0.12.00.11.x
Releases - 0.11.2, 0.11.1, 0.11.00.10.x
Releases - 0.10.00.9.x
Releases - 0.9.0.1, 0.9.0
Released on 2017-10-25.
- Added support for Spring and Spring Boot projects, both on the incoming-request side and
propagating-tracing-downstream side (via Spring's
RestTemplate
HTTP client). Please see the readmes for the wingtips-spring, wingtips-spring-boot, and wingtips-zipkin-spring-boot modules for details and usage examples.- Added by Aleš Justin in pull request #37
- and by Nic Munroe in pull request #51.
- Added support for the Apache HTTP Client. See the wingtips-apache-http-client
module readme for details and usage examples.
- Added by Nic Munroe in pull request #53.
- Fixed
RequestTracingFilter
to work properly for both Servlet 2.x and Servlet 3+ environments. Part of this fix includes not exposing Servlet API as a transitive dependency of thewingtips-servlet-api
module. This means you may need to pull in the Servlet API into your project if it's not already there, although it is usually provided by your Servlet container. See the "Servlet API dependency required at runtime" section of thewingtips-servlet-api
readme for details.- Fixed by woldie in pull request #48
- and by Nic Munroe in pull requests #49 and #52
- and with help from Adrian Cole, in particular some comments in pull request #49 that pointed us at the ServletRuntime class from Brave.
Released on 2017-09-27.
- Fixed
RequestTracingFilter
to work properly with async servlet requests. Previously the overall request span was completing instantly when the endpoint method returned rather than waiting for the async request to finish. Tests have been added that execute against a real running Jetty server equipped withRequestTracingFilter
and several different types of servlet endpoints - these tests prevent regression and verify proper Wingtips behavior for the following use cases: synchronous/blocking servlet, async servlet, blocking-forwarded servlet (using the request dispatcher to forward the request to a different blocking servlet), async-forwarded servlet (using theAsyncContext.dispatch(...)
method to forward the request to a different async servlet), and an async servlet that errors-out due to hitting its request timeout.- Fixed by Nic Munroe in pull request #42.
- With the fixes to
RequestTracingFilter
, several methods and classes are no longer needed and have been marked@Deprecated
. They will be removed in a future update. Full deprecation/migration instructions are in the@deprecated
javadocs, but here is a short list:RequestTracingFilterNoAsync
class - this class is no longer needed sinceRequestTracingFilter
is no longer abstract. Move to usingRequestTracingFilter
directly.RequestTracingFilter.isAsyncDispatch(HttpServletRequest)
method - this method is no longer needed or used byRequestTracingFilter
. It remains to prevent breaking subclasses that overrode it, but it will not be used.RequestTracingFilter.ERROR_REQUEST_URI_ATTRIBUTE
field - this field is no longer used. If you still need it for some reason you can refer tojavax.servlet.RequestDispatcher.ERROR_REQUEST_URI
instead.- Deprecated by Nic Munroe in pull request #42.
- Added a warning to the readme about error handling
and potentially confusing/non-obvious behavior when autoclosing
Span
s withtry-with-resources
statements.- Added by Nic Munroe in pull request #43.
- Added several sample applications that show how Wingtips works in various frameworks and use cases. See their
respective readmes for more information:
- samples/sample-jersey1
- samples/sample-jersey2
- samples/sample-spring-web-mvc
- Added by Nic Munroe in pull request #44.
Released on 2017-09-18.
- Added support for reporting 128-bit trace IDs to Zipkin.
- Done by Adrian Cole in pull request #34.
- Added
Tracer.getCurrentSpanStackSize()
method.- Added by Nic Munroe in pull request #38.
- Added Java 7 and Java 8 async usage helpers. Please see the
async section of the main readme and the
readme for the new Java 8 module for details.
- Added by Nic Munroe in pull request #39.
- Added
AutoCloseable
implementation toSpan
to support usage in Javatry-with-resources
statements. See the try-with-resources section of the readme for details.- Added by Nic Munroe in pull request #40.
- Zipkin modules updated to use Zipkin version
1.16.2
.- Updated by Adrian Cole in pull request #34.
- Updated SLF4J API dependency to version
1.7.25
.- Updated by Nic Munroe in pull request #38.
- Upgraded to Gradle
4.1
.- Done by Nic Munroe in pull request #38.
- Updated Logback dependency to
1.2.3
(only affects tests).- Updated by Nic Munroe in pull request #38.
- Changed Travis CI to use oraclejdk8 when building Wingtips.
- Done by Nic Munroe in pull request #38.
Released on 2016-09-17.
- 32 character (128 bit) trace IDs are now gracefully handled by throwing away the high bits (any characters left of 16 characters). This allows the tracing system to more flexibly introduce 128bit trace ID support in the future.
- Updated by Adrian Cole in pull request #28.
- Zipkin modules updated to use Zipkin version 1.11.1
- Updated by Adrian Cole in pull request #28.
Released on 2016-09-05.
- Zipkin updated to version 1.8.4.
- Updated by Adrian Cole in pull request #24.
Released on 2016-08-20.
- Trace and span ID generation changed to conform to Zipkin/B3 standards by encoding IDs in lowercase hexadecimal format.
- Fixed by Nic Munroe in pull request #16. For issues #14 and #15.
Released on 2016-08-11.
- Zipkin integration.
- Added by Nic Munroe in pull requests #7, #8, and #10. For issue #9.
Released on 2016-07-19.
- Javadoc jar, CONTRIBUTING.md doc, Travis CI badge in readme, Download badge in readme, artifact publishing support.
- Added by Nic Munroe.
- Broken Zipkin link.
- Fixed by Adrian Cole.
Released on 2016-06-07.
- Initial open source code drop for Wingtips.
- Added by Nic Munroe.