Added support for W3C Trace Context, with easy upgrade from New Relic trace context
Distributed Tracing now supports W3C Trace Context headers for HTTP protocols when distributed tracing is enabled. Our implementation can accept and emit both
the W3C trace header format and the New Relic trace header format. This simplifies
agent upgrades, allowing trace context to be propagated between services with older
and newer releases of New Relic agents. W3C trace header format will always be
accepted and emitted. New Relic trace header format will be accepted, and you can
optionally disable emission of the New Relic trace header format.
When distributed tracing is enabled by setting distributed_tracing.enabled to true,
the Ruby agent will now accept W3C's traceparent and tracestate headers when
calling DistributedTracing.accept_distributed_trace_headers or automatically via
http instrumentation. When calling DistributedTracing.insert_distributed_trace_headers,
or automatically via http instrumentation, the Ruby agent will include the W3C
headers along with the New Relic distributed tracing header, unless the New Relic
trace header format is disabled by setting exclude_newrelic_header setting to true.
Added DistributedTracing.accept_distributed_trace_headers API for accepting both
New Relic and W3C TraceContext distributed traces.
Deprecated DistributedTracing.accept_distributed_trace_payload which will be removed
in a future major release.
Added DistributedTracing.insert_distributed_trace_headers API for adding outbound
distributed trace headers. Both W3C TraceContext and New Relic formats will be
included unless distributed_tracing.exclude_newrelic_header: true.
Deprecated DistributedTracing.create_distributed_trace_payload which will be removed
in a future major release.
Known Issues and Workarounds
If a .NET agent is initiating traces as the root service, do not upgrade your
downstream Ruby New Relic agents to this agent release.
Official Ruby 2.7 support
The Ruby agent has been verified to run with Ruby 2.7.0.
Reduced allocations when tracing transactions using API calls
Default empty hashes for options parameter were not frozen, leading to
excessive and unnecessary allocations when calling APIs for tracing transactions.
Thanks to Joel Turkel (jturkel) for the contribution!
... (truncated)
Commits
29bc3e0 Merge pull request #2006 from ruby-agent/dev
88d7393 Merge pull request #2005 from ruby-agent/RUBY-2384_python_w3c_tests_compliance
1debf7b RUBY-2384 ensure nil is returned when errors encountered parsing tracestate
7055a16 RUBY-2384 python tests passing for empty entries in tracestate
80807fa Merge branch 'release' of source.datanerd.us:ruby-agent/ruby_agent into release
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking Bump now in your Dependabot dashboard.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps newrelic_rpm from 3.9.0.229 to 6.9.0.363.
Changelog
Sourced from newrelic_rpm's changelog.
Commits
29bc3e0
Merge pull request #2006 from ruby-agent/dev88d7393
Merge pull request #2005 from ruby-agent/RUBY-2384_python_w3c_tests_compliance1debf7b
RUBY-2384 ensure nil is returned when errors encountered parsing tracestate7055a16
RUBY-2384 python tests passing for empty entries in tracestate80807fa
Merge branch 'release' of source.datanerd.us:ruby-agent/ruby_agent into releasea625a74
Merge branch 'dev' into releasef9e83af
known issue for W3C support added to CHANGELOGdf95c99
Merge pull request #2003 from ruby-agent/dev5201b40
RUBY-2348 cleaned up CHANGELOG notes [ci skip]add3396
RUBY-2348 cleaned up CHANGELOG notes [ci skip]Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.
You can always request more updates by clicking
Bump now
in your Dependabot dashboard.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)