-
-
Notifications
You must be signed in to change notification settings - Fork 324
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
Timeout for auto-generated transactions #1173
Comments
We decided not to take care of this in the first iteration of automatic performance instrumentation. There is a risk that the SDK keeps multiple references of unfinished transactions, but a timeout might not be the only solution to solve this problem. Adding a timeout brings the risk of ending transactions too early. |
Related to getsentry/sentry-java#1811 |
I believe we should tie a transaction with its target. If the target get out of scope we finish the transaction. |
Look at idle transaction logic |
If this is implemented, update the spec that was written in this PR getsentry/develop#766 |
@philipphofmann the SentryTracer class already has a bunch of idle timeout logic ( The default value of I can add a bunch of duplicate timeout logic next to it for the children to finish, but that feels wrong. Can we not use the existing logic, or would that break things? |
The JS SDK has a flag called |
I like the idea of
I'm going to bring this to the TSC tomorrow and get back to you @kevinrenskers. |
@philipphofmann is there any news about this? A decision? |
When we start the transaction we start a timer of 30 seconds, for auto generated transactions. When the timer reaches 0 then we mark the transaction and the unfinished child spans as When you finish the transaction, cancel the timer. |
Fixed with #2535 |
Yes, it does. I have it on my list and will update it. |
SentryTracer.waitForChildren
waits for all child spans to finish. The downside of this is that when one of these spans never finishes, the SDK never finishes the transaction. We can solve this by, for example, by starting a timeout for the transaction, which is reset every time a new span is added. When this timeout exceeds, theSentryTracer
finishes the transaction.The text was updated successfully, but these errors were encountered: