-
Notifications
You must be signed in to change notification settings - Fork 60
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
Experimental OpenTelemetry Core #437
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - probably need to run some perf tests to make sure nothing is out of the ordinary but then should be good to merge
Superb! |
Might be good to get input from @lmolkova and @martinjt on the span names to be in sync with the OTel Semantic Conventions (https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/) |
activity source: Span names are inspired from the NATS protocol somewhat mimicking HTTP calls e.g. Publish: happy to changed them based on your recommendations. |
Have you checked out the spec for these yet? https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/ There are formats recommended there for the span names, and also what attributes must be present. |
New span naming: Publish:
|
Performance should not be affected for applications without OTel or when they are not listening to main:
this PR:
with OTel:
|
For looking at performance improvements, the biggest ones are
This is a good read on reducing allocations in Akka, definitely relevant beyond just actors though. https://petabridge.com/blog/phobos-2.4-opentelemetry-optimizations/ |
It looks like fair amount of performance drop is expected e.g. from ~6M down to ~2M - ~2.5M in Akka.Net's case. Numbers or ratios aren't directly comparable but I feel we aren't far off the expected drop in this case. I can't immediately see any low hanging fruit to improve the performance at this stage and if necessary we'd need to profile to see if the allocations can be reduced to start with in a follow up PR in the future. |
The idea with this PR is to introduce OTEL with a minimal set of changes covering only Core so that we can get feedback and improve in follow up PRs. We would mark this feature as experimental to start with.
Bulk of the work here is thanks to @Cooksauce's excellent work in #124 and feedback from the community.
resolves #53
Example Trace
See the instructions in the example to run it on your machine.