Capture nested traces during code execution in a vendor agnostic way.
- Zero-overhead if tracing is disabled and minimal overhead if enabled.
- Small opinionated interface with standardised semantics, consistent with the W3C Trace Context Specification.
Please see the project documentation for more details.
-
Getting Started - This guide explains how to use
traces
for tracing code execution. -
Context Propagation - This guide explains how to propagate trace context between different execution contexts within your application using
Traces.current_context
andTraces.with_context
. -
Testing - This guide explains how to test traces in your code.
-
Capture - This guide explains how to use
traces
for exporting traces from your application. This can be used to document all possible traces.
Please see the project releases for all releases.
- Don't call
prepare
intraces/provider.rb
. It can cause circular loading warnings.
- W3C Baggage Support - Full support for W3C Baggage specification for application-specific context propagation.
- New Context Propagation Interfaces
- Remove support for
resource:
keyword argument with no direct replacement – use an attribute instead.
- Introduce
traces:provider:list
command to list all available trace providers.
We welcome contributions to this project.
- Fork it.
- Create your feature branch (
git checkout -b my-new-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create new Pull Request.
In order to protect users of this project, we require all contributors to comply with the Developer Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.
- traces-backend-open_telemetry — A backend for submitting traces to OpenTelemetry, including ScoutAPM.
- traces-backend-datadog — A backend for submitting traces to Datadog.
- traces-backend-newrelic - A backend for submitting traces to New Relic.
- metrics — A metrics interface which follows a similar pattern.