-
-
Notifications
You must be signed in to change notification settings - Fork 192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Traces/Transactions via Opentelemetry #784
base: master
Are you sure you want to change the base?
Conversation
6f8f1ea
to
1478508
Compare
e8a40bb
to
cb77932
Compare
cb77932
to
93579f3
Compare
87fe610
to
563e416
Compare
@whatyouhide done! |
08cec4c
to
e77a601
Compare
Turns out `optional` deps in mix.exs work differently in older Elixir, as it would not load opentelemetry deps which made our tests fail because opentelemetry setup was not loaded.
* Add environment to transaction * Make root span the transaction * Generic transactions spans parsing
- Use the worker name as the description and transaction name instead of "{worker} process" - Use "queue.process" as the op - this is according to the docs https://develop.sentry.dev/sdk/telemetry/traces/modules/queues/ Maybe this could be improved in the opentelemetry_oban package?
Co-authored-by: Dan Schultzer <[email protected]>
8574f4c
to
a808377
Compare
I've split this into #842 and #843 /cc @whatyouhide |
Does that mean this PR will be closed without merging? |
Depending on which one is simpler to review, to be honest. I can of course rework this one on top of #842 but this is the 50th comment here so maybe we'd benefit from a cleaner slate. WDYT @whatyouhide? |
This adds support for Traces via Opentelemetry integration, handled by our custom
Sentry.Opentelemetry.SpanProcessor
which accumulates spans and turns them into hierarchical transactions that are then sent to Sentry.For this to work the following deps must be added to an app:
Furthermore, Opentelemetry needs to be configured with our SpanProcessor:
The rest will automagically work.
Supported opentelemetry packages
This initial implementation supports the following Opentelemetry packages:
opentelemetry_phoenix
opentelemetry_bandit
opentelemetry_ecto
opentelemetry_oban
Considerations