- Support max payload size for transport handlers.
- Transport handlers should now be implemented as classes extending py_zipkin.transport.BaseTransportHandler.
- Don't overwrite passed in annotations
- Add binary annotations to the span even if the request is not being sampled. This fixes binary annotations for firehose spans.
- Add support for "firehose mode", which logs 100% of the spans regardless of sample rate.
- context_stack will now default to ThreadLocalStack() if passed as None
- Add support for using explicit in-process context storage instead of using thread_local. This allows you to use py_zipkin in cooperative multitasking environments e.g. asyncio
- py_zipkin.thread_local is now deprecated. Instead use py_zipkin.stack.ThreadLocalStack()
- TraceId and SpanId generation performance improvements.
- 128-bit TraceIds now start with an epoch timestamp to support easy interop with AWS X-Ray
- Add batch span sending. Note that spans are now sent in lists.
- Be defensive about having logging handlers configured to avoid throwing NullHandler attribute errors
- Don't log ss and sr annotations when in a client span context
- Add error binary annotation if an exception occurs
- Fixed server send timing to more accurately reflect when server send actually occurs.
- Replaced logging_start annotation with logging_end
- Added 128-bit trace id support
- Added ability to explicitly specify host for a span
- Added exception handling if host can't be determined automatically
- SERVER_ADDR ('sa') binary annotations can be added to spans
- py36 support
- Fixed a bug where update_binary_annotations would fail for a child span in a trace that is not being sampled
- Simplify update_binary_annotations for both root and non-root spans
- Added support for forcing zipkin_span to report timestamp/duration. Changes API of zipkin_span, but defaults back to existing behavior.
- Properly set timestamp/duration on server and local spans
- Updated thrift spec to include these new fields
- The zipkin_span entrypoint should be backwards compatible
- Add optional annotation for when Zipkin logging starts
- Fix bug in zipkin_span decorator
- Be defensive about transport_handler when logging spans.
- Add ability to override span_id when creating new ZipkinAttrs.
- Added start and stop functions as friendlier versions of the __enter__ and __exit__ functions.
- Adds new param to thrift.create_endpoint allowing creation of thrift Endpoint objects on a proxy machine representing another host.
- Officially "release" v0.2.0. Accidentally pushed a v0.2.0 without the proper version bump, so v0.2.1 is the new real version. Please use this instead of v0.2.0.
- Fix problem where if zipkin_attrs and sample_rate were passed, but zipkin_attrs.is_sampled=True, new zipkin_attrs were being generated.
- Fix sampling algorithm that always sampled for rates > 50%
- First py_zipkin version with context manager/decorator functionality.