-
Notifications
You must be signed in to change notification settings - Fork 149
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
Add a TYPO3 CMS integration #1538
base: master
Are you sure you want to change the base?
Conversation
One thing I'd like to ask about: is there a way to locally build a debian package, without going through CircleCI? I'd like to test the built extension against the copy of this integration we have internally, but I couldn't manage to build that package. |
* remove tracing for apc and wincache caching backends, which are deprecated * remove tracing for null/transient memory cache backends, which are very fast and negligible for tracing purposes
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.
Thank you @LiquidPL for the work on this PR, I left some comments specific to the lines, plus I have to questions here.
Can we add some tests like we do for other frameworks? You can use Laravel's test suite as a reference https://github.com/DataDog/dd-trace-php/blob/master/tests/Integrations/Laravel/V8_x/CommonScenariosTest.php), no need to replicate all tests, only the ones in the file I linked to.
Can you remove tracing of methods that are expected to have a very high cardinality, if any. Just to give you an example, a method that is expected to be called hundreds of times, like a DTO hydrator or similar) should not be traced because of the added overhead.
\DDTrace\trace_method(\TYPO3\CMS\Extbase\Mvc\Dispatcher::class, 'dispatch', $setCommonValues); | ||
|
||
\DDTrace\trace_method(\TYPO3\CMS\Extbase\Persistence\Generic\Query::class, 'execute', $setCommonValues); | ||
\DDTrace\trace_method(\TYPO3\CMS\Extbase\Property\PropertyMapper::class, 'convert', $setCommonValues); |
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.
What is the expected cardinality of PropertyMapper::convert
, I am not familiar with typo3 but it looks like this method might be potentially called hundreds of times? Int his case we should not trace it and trace maybe one layer above.
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.
This one is called when processing properties passed in the request, shouldn't be called a lot, depending on the amount of properties passed.
|
||
\DDTrace\trace_method( | ||
\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::class, | ||
'acquireLock', |
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.
What is the expected cardinality of TypoScriptFrontendController:: acquireLock
, I am not familiar with typo3 but it looks like this method might be potentially called hundreds of times? Int his case we should not trace it and trace maybe one layer above.
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.
This is mainly used for caching, and should generally only be used whenever a new page is saved into the cache, and is not called when a page is pulled from the cache. Optimistically it should only be called at most once per request (potentially more if a request fails and subsequently retries to render a page).
Hello @LiquidPL , I was just curious to know if you had a chance to review my feedback. |
Yeah, I'm working my way through it. I should have fixes ready in 1-2 days. |
Hey @LiquidPL Has there been any progress on this? :-) Given that it's still a draft? |
I've cleaned up most of the C-side code as expected, currently I'm working on writing TYPO3 tests for the tracing, however it's going slower than I expected, since this I need to get the framework configured to run properly in the tests. |
Hey @LiquidPL, May I ask you for another update on this? :-) |
Hello, Apologies for the long delays, I have provided tests for both TYPO3 v10, and the recently released TYPO3 v11. There's two things to consider:
|
Hello, can we take another look at this PR? |
Description
Resolves #1074.
This PR adds an integration for the TYPO3 CMS and its headless extension. It covers tracing for most common core framework methods, including cache, database, and templating.
Readiness checklist
Reviewer checklist