-
Notifications
You must be signed in to change notification settings - Fork 439
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
internal/civisibility/integrations/gotesting: fixes for orchestrion autoinstrumentation #2844
Conversation
BenchmarksBenchmark execution time: 2024-09-12 09:11:31 Comparing candidate commit 50434cc in PR branch Found 2 performance improvements and 0 performance regressions! Performance is the same for 56 metrics, 1 unstable metrics. scenario:BenchmarkSetTagMetric-24
scenario:BenchmarkSetTagString-24
|
f2eb2d2
to
bf4fd9e
Compare
83c07e4
to
e32d8bb
Compare
…utoinstrumentation For orchestrion we are going to instrument testing.M.Run(), testing.T.Run() and testing.B.Run() methods, for that we need to make some fixes and add some checks to avoid multiple instrumentation over the same Func
…utoinstrumentation fixes
… for orchestrion autoinstrumentation
…es, modules and sessions.
…d store the civisibility test from `testing.T` and/or `testing.common` both structs implements `testing.TB` we want to get always the same test no matter the struct used.
… if a ddtest has been failed or skipped so we can avoid rewriting existing useful messages by a generic one. The case of Error()/Errorf() calling Fail()/Failf() internally
… and ddTestItem.skipped bool type to an atomic.Int32 to avoid any race condition.
c70e3af
to
d758e25
Compare
… were caching the instrumented function from an original one, caching also the closure data of the function, now we don't catch the instrumented function. Also, added some tests to handle this scenario.
d758e25
to
2246373
Compare
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, left a minor comment
What does this PR do?
For orchestrion we are going to instrument
testing.M.Run()
,testing.T.Run()
andtesting.B.Run()
methods, for that we need to make some fixes and add some checks to avoid multiple instrumentation over the same FuncThis PR also fixes an issue found with orchestrion about Test Suite Level Visibility (tslv) objects having
ParentId != 0
this breaks the backend json schema. Now we make sure that structs likeTest
,TestSuite
,TestModule
andTestSession
never set the ParentId value (Only normal spans are allowed to have it).Motivation
While working with the orchestrion autoinstrumentation I'm hitting this issues. This PR fixes those issues.
Reviewer's Checklist
Unsure? Have a question? Request a review!