- Bump from 3.0.0 to fix build
- Generate 128-bit trace IDs by default. 64-bit trace IDs will be transparently forwarded if received in the X-B3-TraceId header.
- Remove support for '0x' and '-0x' prefixes in trace IDs
- Remove the zipkin.trace_id_generator setting
- Use environ dict object from request object to populate zipin span attributes
- Requires Python >= 3.8
- Adds OTels semantic conventions for http server span attributes - http.request.method - network.protocol.version - url.path - server.address - server.port - url.scheme - user_agent.original - url.query - client.address - http.response.status_code - otel.status_code - otel.library.name - otel.library.version
- Adds the Zipkin Annotation (OTel Event) when an exception occures as the type of exception
- Adds exception.stacktrace as an attribute if an exception occurs
- Handle exceptions during request processing to set response_status_code=500 and error.type
- Use V2_JSON zipkin encoding by default
- Updated README.md
- Fixed a flake8 formatting related failure from 1.0.0
- The post_handler_hook api is changed to pass the zipkin_span context so users can add more content to the span during post processing
- Change tween ordering to be close to INGRESS rather than EXCVIEW
- Add zipkin_span_id to the request object.
- Path and route blacklists now work also for firehose traces
- Remove zipkin.always_emit_zipkin_headers config option. Rather than using set_property to add the trace_id to the request, we now do a simple assignment which is way faster and removes the need for that flag.
- Update tween to support py-zipkin 0.18+
- Add zipkin.encoding param to allow specifying the output span encoding.
- Add post_handler_hook to the tween.
- Set zipkin.use_pattern_as_span_name to use the pyramid route pattern as span_name rather than the raw url.
- Requires py_zipkin >= 0.13.0.
- Use renamed py_zipkin.storage interface
- Remove deprecated logger.debug() usage in tests
- Require py_zipkin >= 0.13.0
- Added support for http.route annotation
- Add max_span_batch_size to the zipkin tween settings.
- Require py_zipkin >= 0.11.0
- Added support for experimental firehose mode
- Added support for using a request-specific stack for storing zipkin attributes.
- Trace context is again propagated for non-sampled requests.
- Modified tween.py to include host and port when creating a zipkin span.
- Added zipkin.always_emit_zipkin_headers config flag.
- Skip zipkin_span context manager if the request is not being sampled to improve performance and avoid unnecessary work.
- Using new update_binary_annotations functions from py_zipkin.
- Requires py_zipkin >= 0.7.0
- No changes
- Add automatic timestamp/duration reporting for root server span. Also added functionality for individual services to override this setting in configuration.
- Add registry setting to force py-zipkin to add a logging annotation to server traces. Requires py-zipkin >= 0.4.4.
- support for configuring custom versions of create_zipkin_attr and is_tracing through the pyramid registry.
- Fix sample rate bug and make sampling be random and not depend on request id.
- Make get_trace_id function more defensive about what types of trace ids it accepts. Converts "0x..." and "-0x..." IDs to remove the leading "Ox"s
- Make zipkin.transport_handler a function that takes two arguments, a stream_name and a message.
- Alias create_headers_for_new_span to create_http_headers_for_new_span for backwards compatibility.
- Moved non-pyramid and zipkin-only code to py_zipkin package
- 'zipkin.transport_handler' now only takes a single message parameter
- create_headers_for_new_span is moved to py_zipkin and renamed to create_http_headers_for_new_span
- Fix coverage command invocation to be compatible with coverage v4.2
- make "service_name" default to "unknown" when not found in registry
- Add @zipkin_span decorator for logging functions as spans
- Binary annotation values are converted to str
- Removed restriction where only successful status codes are logged
- Added status code as a default binary annotation
- Prevent errors when ZipkinAttrs doesn't exist (usually in multithreaded environments)
- pyramid-zipkin is a pure python package
- Renames ClientSpanContext to SpanContext, adds 'ss' and 'sr' annotations.
- Always generate ZipkinAttrs, even when a request isn't sampled.
- Don't set parent_span_id on root span
- Made generate_random_64bit_string always return str, not unicode
- Fixed bug where headers were not 64-bit unsigned hex strings.
- Added ClientSpanContext, that lets users log arbitrary trees of client spans.
- Deprecates "is_client=True" debug logging key in favor of a non-None "service_name" key for indicating that a span logged is a new client span.
- Batches up additional annotations in client before sending to the collector.
- Spans without a span ID will generate a new span ID by default.
- Add ability to override "service_name" attribute when logging client spans.
- Don't re-compile path regexes
- Don't enter ZipkinLoggingContext if request is not sampled.
- Fix bug which was squashing identical span names.
- over=EXCVIEW ordering instead of over=MAIN
- Add support for set_extra_binary_annotations callback.
- Add http.uri.qs annotation which includes query string, http.uri doesn't.
- Change config parameters to be generic for scribe/kafka transport.
- Compatible with py33, py34. Replaced Thrift with thriftpy.
- Re-assign empty list to threading_local.requests if attr not present instead of globally assigning empty list.
- pyramid-zipkin setup.