You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Provide the PHP classes reflecting the APM event specs for users to manually instrument their codebase, leveraging the c-ext as a sender. These events are passed to the c-ext with a method e.g. elasticapm_send_event(string $event) and the c-ext takes care of the sending to the APM server.
The text was updated successfully, but these errors were encountered:
There is a technical challenge when combined with automatic instrumentation using PHP extension. A lot of PHP code (tracer logic, etc.) is going to be shared between PHP part of the extension and PHP library for manual instrumentation. The problem arises when versions of this code are compatible. The extension runs first so it might load some classes of version A and then application might try to use those classes for manual instrumentation causing fatal error such as missing method or property, wrong argument count/types, etc.
We might consider using
Composer's custom autoloading feature to check if the extension is present and if its version is compatible with API used by the application for manual instrumentation.
Or we can try to detect from the extension if there's our manual instrumentation library in vendor directory and if its version compatible
A possible improvement on the approach above is to use code from vendor even by the extension if the version in vendor is "better" (contains more fixes, etc.)
Provide the PHP classes reflecting the APM event specs for users to manually instrument their codebase, leveraging the c-ext as a sender. These events are passed to the c-ext with a method e.g.
elasticapm_send_event(string $event)
and the c-ext takes care of the sending to the APM server.The text was updated successfully, but these errors were encountered: