We cannot seem to be able to get Clojure monitoring working for Clojure based JVM Apps. It is deployed as a Jar file and does wrap around Jetty for the Web Container. We can profile the app using YourKit and see stacktraces, etc....
Is this possible?
Hi ,
We see that Clojure JVM is "not" mentioned in supported list as per docs:
http://docs.appdynamics.com/display/PRO13S/Supported+Environments+and+Versions
However we have tried in local and could see the pojo rule configured discovered fine as BT on main method:
BCI.log:
==================
[Tue Jun 18 17:39:23 IST 2013] Matching class name clojure/main Matching class bytecode. : Class match found.
Applying method interceptor entry.pojo.Identifier at clojure/main.main (([Ljava/lang/String;)V) id:1
==================
From BT.log:
===================
[main] 18 Jun 2013 17:39:26,463 INFO - BT [1] Name [clojure-rule1] Type [POJO] Custom [true]
[main] 18 Jun 2013 17:39:26,466 INFO - Discovery Stack
Thread Name:main
ID:1
clojure.main.main(main.java)
=======================
we had configured -javaagent successfully as follows, however could see that exceptions logged on this clojure jvm are not detected under errors dashboard so we confirm you can go ahead and configure pojo rules and let us know if that helps:
shell> cd <clojure-install_dir>
shell> java -cp .;clojure-1.5.1.jar -javaagent:"<agent_dir>\javaagent.jar" clojure.main
Install Directory resolved to[D:\labn\3.6.6\appagent_4]
[INFO]: JavaAgent - Using Agent Version [Server Agent v3.6.6.0 GA #2013-05-01_20-48-42 ra846123979e042eabfa0c5cd07bedc597245382f 12]
[INFO]: JavaAgent - Running IBM Agent [No]
[INFO]: AgentInstallManager - AppDynamics Agent edition [standard]
[INFO]: AgentInstallManager - Full Agent Registration Info Resolver is running
[INFO]: AgentInstallManager - Full Agent Registration Info Resolver is forcing the agent registration configuration
[INFO]: AgentInstallManager - Full Agent Registration Info Resolver using application name [MyOldapp]
[INFO]: AgentInstallManager - Full Agent Registration Info Resolver using tier name [tier1]
[INFO]: AgentInstallManager - Full Agent Registration Info Resolver using node name [tier1node1]
[INFO]: AgentInstallManager - Full Agent Registration Info Resolver finished running
[INFO]: AgentInstallManager - Agent runtime directory set to [D:\labn\3.6.6\appagent_4]
[INFO]: AgentInstallManager - Agent node directory set to [tier1node1]
[INFO]: JavaAgent - Agent Directory [D:\labn\3.6.6\appagent_4]
Agent Logging Directory [D:\labn\3.6.6\appagent_4\logs\tier1node1]
Running obfuscated agent
Registered app server agent with Node ID[10] Component ID[11] Application ID [10]
Started AppDynamics Java Agent Successfully.
Clojure 1.5.1
user=> (+ 1 2 33334443 q7)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: q7 in this context, compiling:(NO_SOURCE_PATH:1:1)
user=> (+ 1 2 33334443 q7)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: q7 in this context, compiling:(NO_SOURCE_PATH:2:1)
user=> (+ 1 2 33333 7)
33343
user=> (+ 1 2 3)
6
===========================================
Though it is not listed supported you can go ahead and configure POJO custom rules to monitor Clojure based JVM apps. Please let us know if that answers your query.
Thanks,
Arun