-
Notifications
You must be signed in to change notification settings - Fork 917
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
Adobe ColdFusion trace support #10690
Comments
Sorry, I am not familiar with the framework you mentioned above. Is it a commercial software? Can you provide relevant introduction materials? |
hi @steverao , ColdFusion is a server with a CFML / CFSCRIPT language built on top of Java / JSP ( I believe? ) ColdFusion is owned by Adobe https://www.adobe.com/au/products/coldfusion-family.html how ever there is also an opensource alternative https://www.lucee.org/ I made an attempt at implementing something in glowroot glowroot/glowroot#1056 but I have limited experience in this space, happy to continue this conversation and provide assistance if it might result in some level of support. |
Thank you for your response! This is relevant open source repo and document of Lucee: What's your comment about it? @laurit |
@steverao I believe the internal architecture of Lucee is likely to be a bit different to Adobe's ColdFusion product, but the principles are similar ( I believe ? ) and the languages are fairly compatible with each other. |
Any tips on getting started ? |
I'd start by figuring out how to attach the agent and verifying that the agent works at all. https://helpx.adobe.com/coldfusion/installing/installing-the-server-configuration.html indicates that it might be using tomcat, if that is so then perhaps our tomcat and servlet instrumentations will already work and produce a |
It does work, I just want better routes and some better tracing |
First you need to figure out what would be an appropriate route for the framework at hand and then how to get access to it. Route is update by calling |
Thanks, I've made a start based on research I had done for Glowroot instrumentation but its early days and I had issues compiling the project, something about Java 17 only libs. Documentation on internals of the Adobe CF engine are super sparse, here's a link to my branch and some additional resources for reference https://github.com/cfmleditor/opentelemetry-java-instrumentation/tree/cfml-instrumentation https://github.com/markmandel/JavaLoader/blob/develop/java/cfcdynamicproxy/src/com/compoundtheory/coldfusion/cfc/CFCDynamicProxy.java |
@laurit @steverao I've got something that I believe should be creating spans, but I'm missing something and I'm not sure how to fix it https://github.com/cfmleditor/opentelemetry-java-instrumentation/tree/cfml-instrumentation any advice would be appreciated. |
@garethedwards-tass I'd start by commenting out all the instrumentation code you have. Firstly start with an advice that prints a line or stack trace when the method is called that you wish to instrument. Try it out and verify that you can see that line/stacktrace. If you can get the simple advice working you can start doing more complicated thins like creating the span. Now try modifying you simple advice and add the logic that creates the span, but don't remove what you initially had in the advice. Try it out and verify that you still can see the line that the advice prints. If you see if, then check whether you also can see the span wherever you sent it. If you don't then turn on debug logging with opentelemetry-java-instrumentation/examples/extension/build.gradle Lines 117 to 120 in bc5e032
|
@laurit sorry, switching between home and work accounts, I think this is a little beyond me, I've been playing with Glowroot instrumentation via the configurations built into the tool and I get get it recognizing the class load in question, I just can't get it working in open telemetry, and I don't understand why. I could try share what I've got in Glowroot if its of any consequence? |
@laurit could we try organise a date / time to have a quick chat about this stuff ? |
@ghedwards are you able to join the weekly Java SIG meeting Thursdays at 9am Pacific Time? (I will be missing this week, so maybe the week after?) |
@trask I can certainly try, it will be 2am for me though. |
@ghedwards I doubt that we'll be able to help you much at the SIG meeting. An alternative approach you could consider is setting up something that would allow as easily run your extension and see why exactly it fails. There seems to be a docker images for coldfusion perhaps this could be used to build a reproducer? Or perhaps there is a freely downloadable version for which you could provide instructions on where to get it and how to test your extension with it. |
Command Box is probably the easiest way to setup a dev instance, for someone who hasn't touched ColdFusion before https://www.ortussolutions.com/products/commandbox#overview , but you do have to be a bit careful you're grabbing the appropriate CF distro and that you can setup the JVM settings appropriately. I can try help with this if its something you're interested in pursuing. I prefer the standalone versions from Adobe ( stand alone web server with the installer if you're willing ), requires a little bit of contact information, but the 30 day "trial" can be installed as a dev version that just restricts connections https://www.adobe.com/au/products/coldfusion/download-trial/try.html then its just a matter of finding and modifying the jvm.config and restarting the service. |
Feel free to provide instructions for whichever is easier. |
https://github.com/cfmleditor/awesome-cf-compose/tree/otel-agent/cf-2021-with-otel Once up and running you should be able to run http://localhost:8500/CFIDE/administrator/ to start logging traces |
Firstly in https://github.com/cfmleditor/awesome-cf-compose/blob/5c9445635f5374c23ed109420a0dbb6292546140/cf-2021-with-otel/agent/config.properties#L1 you are pointing to
This can be fixed by adding @Override
public boolean isHelperClass(String className) {
return className.startsWith("io.cfmleditor.javaagent");
} to
as currently you are passing a |
Is your feature request related to a problem? Please describe.
Adobe ColdFusion trace support
Describe the solution you'd like
Adobe ColdFusion trace support
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: