AppD Archive

How do you monitor Clojure JVM Apps?

CommunityUser
Splunk Employee
Splunk Employee

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?

0 Karma

Arun_Dasetty
Super Champion

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

Get Updates on the Splunk Community!

Index This | When is October more than just the tenth month?

October 2025 Edition  Hayyy Splunk Education Enthusiasts and the Eternally Curious!   We’re back with this ...

Observe and Secure All Apps with Splunk

  Join Us for Our Next Tech Talk: Observe and Secure All Apps with SplunkAs organizations continue to innovate ...

What’s New & Next in Splunk SOAR

 Security teams today are dealing with more alerts, more tools, and more pressure than ever.  Join us for an ...