Skip to content
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

Why does distributed tracing enforce profiling? #7409

Closed
oliversalzburg opened this issue Jul 11, 2023 · 7 comments
Closed

Why does distributed tracing enforce profiling? #7409

oliversalzburg opened this issue Jul 11, 2023 · 7 comments

Comments

@oliversalzburg
Copy link

Core or SDK?

Platform/SDK

Which part? Which one?

AWS Lambda

Description

The documentation states that I require performance monitoring to be enabled to make use of distributed tracing at all. Why?

To me as a consumer the connection between these two aspects are entirely unclear. Also, trying to integrate profiling into AWS Lambda was an absolute mess. So requiring this to be able to connect frontend and backend traces seems counter-intuitive.

Or maybe I'm misunderstanding?

Suggested Solution

I have none.

@getsantry
Copy link
Contributor

getsantry bot commented Jul 11, 2023

Assigning to @getsentry/support for routing ⏲️

@AbhiPrasad
Copy link
Member

AbhiPrasad commented Jul 11, 2023

Hey @oliversalzburg, thanks for writing in.

Performance monitoring generates spans, which is what distributed tracing uses to establish parent child relationships between different services (span on X service -> span on Y service). Detailed docs on this can be seen here.

We recognize that this is not always ideal though. In the next release of the Node SDK (so serverless as well), we'll be releasing support for tracing without performance, which allows you to do distributed tracing without turning on performance monitoring. Please follow along progress on that here: getsentry/sentry-javascript#8352

@AbhiPrasad
Copy link
Member

Also, trying to integrate profiling into AWS Lambda was an absolute mess

Could you elaborate on why this was difficult for you? Was there something in https://docs.sentry.io/platforms/node/guides/aws-lambda/performance/instrumentation/automatic-instrumentation that did not work?

@getsantry
Copy link
Contributor

getsantry bot commented Jul 11, 2023

Routing to @getsentry/product-owners-performance for triage ⏲️

@mjq-sentry
Copy link

Hi @oliversalzburg! I just wanted to clarify a couple of things.

First, this might just be a terminology thing, but distributed tracing doesn't require Profilling, but it does require performance monitoring since that's what actually creates the traces being distributed.

Or at least, it used to! But there's been some work recently to have existing traces propagate properly even if intermediate steps don't have performance monitoring enabled. See for example the release notes for v7.58.0 of our Javascript SDK. I believe it is also available in Python and Java.

@AbhiPrasad, since I saw you worked on that feature - would it be appropriate to update the Distributed Tracing docs to mention that performance monitoring is no longer required for some SDKs?

@AbhiPrasad
Copy link
Member

@AbhiPrasad, since I saw you worked on that feature - would it be appropriate to update the Distributed Tracing docs to mention that performance monitoring is no longer required for some SDKs?

Docs updates are on the way!

In Python and PHP (SDKs that support tracing without performance), we've already updated the docs.

@oliversalzburg
Copy link
Author

Of course, you guys are right. Sorry for my confusion, and thanks for all the explanation. Funny enough that I read the release notes earlier today and was like "You got to be kidding me!" 😂

Now back to finding out why the frontend and backend traces are actually not connected in the Sentry UI...

@github-actions github-actions bot locked and limited conversation to collaborators Jul 29, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Archived in project
Development

No branches or pull requests

4 participants