Icon

Comments have been closed on this page. Please use AppMon & UEM Open Q & A forum for questions about this plugin.

Overview

The dynaTrace FastPack for Clojure provides out of the box support for the dynamic language Clojure. The FastPack comes with a template System Profile and 3 Sensor Packs.

Fast Pack Details

Author

Rasmus Toelhoej from MCG Systems (rtoelhoej@mcg-systems.dk)

dynaTrace Versions

Initially created with dynaTrace 3.5

Also tested with dynaTrace 4+, 5+, 6+

License

dynaTrace BSD

Support

Not Supported

Known Problems

 

Release History

2011-04-20 Initial Release

FastPack Contents

1 System Profile
3 FastPacks

Download

Clojure FastPack
Sample dynaTrace Session
Sample Hello World Clojure App

Information about Clojure

Clojure + Ring + Compojure

Clojure: http://clojure.org/
Clojure is a dynamic programming language that targets the Java Virtual Machine (and the CLR ). It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.

What to watch out for
Instrumentation:
Everything in Clojure is called with a call to invoke, so you can get a very high instrumentation.
It is recommended to globalexclude the invoke and only include the invokes you want to monitor.
For example calls to your own code looks like this: Invoke {customerfile}$methods.

Java reflection:
If you haven’t created type hints and type interfaces then there can be a huge amount of calls to clojure.lang.Reflector. invokeNoArgInstanceMember.
We have seen applications where 40% of the time was spend here and it did 30.000+ calls for each PurePath to this method.

HTTP Tagging:
We are starting at a higher level to catch all Tomcat requests, so that can break the HTTP tagging, if you are using standard webservices or http services then unplace the Clojure EntryPoints package

Content

The following components are part of this FastPack:

Clojure Template System Profile

The reference System Profile contains a pre-configured Agent Group mapping to an Agent with the name "Clojure". It places the Sensor Packs Clojure Entry Point and Clojure Prod. If you want deeper instrumentation then place Clojure Debug.

Sensor Packs

The FastPack comes with 3 SensorPacks:

  • Clojure Entry Point: this defines Clojure specific entry points. Make sure to configure this with "active and start PurePath"
  • Clojure Prod: Light-Weight Production Instrumentation
  • Clojure Debug: For deeper debugging like Instrumentation

Screenshot

This shows a sample PurePath captured with the SensorPacks that are part of this FastPack.
Download a sample session that includes this PurePath: Clojure_SampleData.dts

Installation

Step 1: Import the Clojure FastPack into your dynaTrace Server. For details on how to do this please refer to the Online Documentation on Plugin Management.

Step 2: Edit the imported System Profile. Make sure the Clojure FastPacks are correctly placed in the Agent Group. Make any additional modifications to the System Profile to fit your needs.

  • No labels