In a few words,
For high node count installations, it’s quite costly to go through the existing commercial systems, as such, i took the same idea as lucee did a few years ago, and contributed a plugin to elastic’s apm agent. this allows to use an existing elastic cluster to gain app insights.
Out of necessity, i’ve battled with elastic-java-apm-agent to instrument the lucee server, the great news is that the latest version of the agent, can theoretically work on a “vanilla” version of lucee server (we’re currently running custom builds for other optimisation reasons). I can therefore link to the github.
This Implementation do instrument quite a lot, still a work in progress, but more test, more use always helps. Obviously, it requires to build the existing code, this is not that complex, and to simply start the server with the agent as java-agent.
Here is the link if anyone feels adventurous :
the branch you want is : feature/lucee-server-http-instrumentation
Currently implemented features:
- outpgoing http with trace transmission,
- Database and redis (via the existing plugins)
- ressource operations
- locks operations
- all the application.cfc hooks
- DbManager (connection retrieval and transactions operations)
- Compilation spans
- Java “CreateObject” layer
- Image tag
- _InternalRequest instrumentation as a sub transaction (i’m still struggling to separate the spancount limit).
I’m not certain a lot other operations are problematic, but, use case can help pinpoint to new propositions. Been running in production with a quite high traffic (largely over 1K transaction per minute) for ~1 year
Let me know if there is any interest.