AppD Archive

Trying to customize business transaction identification

CommunityUser
Splunk Employee
Splunk Employee

My JVM runs Restlet framework. I am trying to make AppDynamics Lite identify the transactions. I tried Configure->Transcation detection and Trying adding my own rules to match a transaction.

Tried adding a Transaction Rule that said "Match Classes"  "that contains" "<base package of my restlet classes>". I enabled the rule. Tried restarting my JVM, however the business transcations list is always empty.

I have made sure the jvm is started with the right javaagent args.

Any help to solve this problem will be greatly appreciated. 

PS : Am a newbie to AppDynamics. And above is my first attempt to run it.

0 Karma

CommunityUser
Splunk Employee
Splunk Employee

I am also attaching the agent logs. I saw some thing like below

java.lang.IllegalStateException: This agent is not compatible with the controller version.
	at com.singularity.ee.agent.appagent.kernel.config.xml.o.a(o.java:739)
	at com.singularity.ee.agent.appagent.kernel.config.xml.q.a(q.java:470)
	at com.singularity.ee.agent.appagent.kernel.config.xml.s.a(s.java:454)
	at com.singularity.ee.agent.appagent.kernel.config.xml.l.a(l.java:283)
	at com.singularity.ee.agent.appagent.kernel.config.xml.ab.run(ab.java:443)
	at com.singularity.ee.agent.appagent.kernel.config.xml.e.a(e.java:184)
	at com.singularity.ee.agent.appagent.kernel.b.h(b.java:112)
	at com.singularity.ee.agent.appagent.kernel.JavaAgent.initialize(JavaAgent.java:116)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.singularity.ee.agent.appagent.AgentEntryPoint.premain(AgentEntryPoint.java:153)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:323)
	at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338)

Though errors suggests - my Controller (which I assume is LiteViewer server ?)  is incompatible with the agent. I downloaded one archive that contained the agent and the liteviewer, so I am not able to understand how they could be incompatible. 

Also I am assuming POJO level business transaction should be more than enough for now for me, but just cant seem to get it working.  

Is there also a more detailed user guide than the one here - http://litedocs.appdynamics.com/display/ADLite that will let me understand how to build my own extensions etc.

0 Karma

Arun_Dasetty
Super Champion

Hi Sathya Kumar,

Thanks for writing in and trying out our Lite product. We confirm that you can ignore the illegalstateexception realted to agent incompatability error in lite agent logs. We have known issue on the incompatability error and this error should not affect lite agent and liteviewer functionality and we confirm you did the setup correct.

Regarding the pojo rule , Can you please provide the following details:

- we understood that you have defined pojo rule in liteviewer transaction config screen, Can you please provide the following:

  1) screenshot of pojo rule in edit mode and also configuration.xml from <LiteViewer_Install_dir>/ path

  2) complete zipped version of agent logs directory under <AppServerAgentLite_install_dir>/logs

we requested above information to see whether rule is valid and the class on which rule is defined is instrumented in BCT.log in lite agent logs

We could see that you have defined on the action package and could classes got retransformed but we suspect whether rule is enabled/disabled and validaty of method name opton config in rule and we see that liteviewer is started later after lite agent is started, we request you to check validity of method name option in rule defined and generate load and check if that helps:

==========================================================

[AD Thread Pool-Global0] 17 Oct 2013 17:20:28,273 ERROR ConfigurationChannel - Fatal transport error: Connection refused: connect

[AD Thread Pool-Global0] 17 Oct 2013 17:20:33,343  INFO ConfigurationChannel - Auto agent registration attempted: Application Name [Server App] Component Name [Server Tier] Node Name [Server Node]
[AD Thread Pool-Global0] 17 Oct 2013 17:20:33,343  INFO ConfigurationChannel - Auto agent registration SUCCEEDED!
[AD Thread Pool-Global0] 17 Oct 2013 17:20:33,344  INFO ConfigurationChannel - Registration information received Node ID[1] Component ID[1] Application ID [1]

[AD Thread Pool-Global0] 17 Oct 2013 17:36:59,496  INFO POJORuleApplier - Transformation Rules identified for retransform [Runtime [ className=StringMatch{matchType=CONTAINS, matchPattern='com.xcc.action', inverse=false, inList=null, alwaysMatch=false, regexPattern=null, extendedMatchType='CONTAINS', extendedMatchPattern='com.xcc.action', regexGroups=null, intMatchPattern=null}],  Method [ method=StringMatch{matchType=CONTAINS, matchPattern='*', inverse=false, inList=null, alwaysMatch=false, regexPattern=null, extendedMatchType='CONTAINS', extendedMatchPattern='*', regexGroups=null, intMatchPattern=null}] ]
..
[AD Thread Pool-Global0] 17 Oct 2013 17:37:11,371  INFO Java16AgentService - Retransformed class [[class com.xcc.action.member.settings.SetLoginAccountSettingsAction, class com.xcc.action.vo.member.SetMemberVOValueAction, class com.xcc.action.ACLFetchAction, class com.xcc.action.agistore.AgSetOrganizationDeviceCountAction, class com.xcc.action.ntr.NtrUtil, class ..com.xcc.action.member.builder.AdminMemberBuilder]]

=================================================================

regarding query on extensions are you looking for http://appsphere.appdynamics.com/t5/eXchange/idb-p/extensions , as we see lite does not support extensions, can you please clarify what you mean by extension here if the above doc link is not the one you are looking for?

Keep us posted the requested information to assist you faster.

Thanks,

Arun

0 Karma

CommunityUser
Splunk Employee
Splunk Employee

Thanks for Replying.

I modified the methodname rule to be "method name" "matches regex" "*", Have attached the screenshot. This did not work either.Also attaching the logs archive. 

And a question I have is - I am now creating my own Transcation Detection rule, but I am windering what POJO in-built rule does and why is it not working by default.

0 Karma

Arun_Dasetty
Super Champion

Hi Sathya Kumar,

Can you please try the following and let us know how it goes:

- update the methodname rule to be "method name" "matches regex" ".*" (note added dot operator before * symbol in regex option and generate load and see if that helps helps to detect custom pojo rule

- and if you still see the issue, please disable other entry points (Servlet , struts etc) as referred in attached  apart from pojo rule and generate load on the business transaction that invokes the api on which pojo rule defined and check whether custom rule discovers fine, we suggested above change as we see the following error in agent logs:

====================================

[main] 18 Oct 2013 12:28:39,073  WARN EntryPointConfigParser - Error parsing rule
java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
*
^
    at java.util.regex.Pattern.error(Pattern.java:1713)
======================================

Let us know if that information helps.

Thanks,

Arun

0 Karma
Get Updates on the Splunk Community!

See just what you’ve been missing | Observability tracks at Splunk University

Looking to sharpen your observability skills so you can better understand how to collect and analyze data from ...

Weezer at .conf25? Say it ain’t so!

Hello Splunkers, The countdown to .conf25 is on-and we've just turned up the volume! We're thrilled to ...

How SC4S Makes Suricata Logs Ingestion Simple

Network security monitoring has become increasingly critical for organizations of all sizes. Splunk has ...