Splunk AppDynamics

Netty4, Camel, Spring, standalone jar how to configure business transcation?

CommunityUser
Splunk Employee
Splunk Employee

Hi all,

I want to configure business transcation monitoring for a simple application.  The code for it is there - repository.

It has 2 applications - Front and Back. Both applications uses Spring Boot, Netty and Apache Camel.  Front application waitng for get request and passed it (using simple Camel route) to back application. Back application responses with hardcoded string.

While monitoring these applications using app dynamics agent, agent does not detect any business transactions.

How  to configure agent to monitor whole transaction?

Labels (1)
0 Karma

Peter_Holditch
Builder

If you do not see a transaction flow in AppDynamics with only the out of the box configuration, it is because your transactions are not hitting any entry point instrumentation.  In this case, that is because you are using the v4 netty http client and server, which are not covered by the out of the box instrumentation today.

If you add the following additional configuration to <agent-install-dir>/v4.x.y/conf/custom-activity-correlation.xml (within the <activities> element) you should see your transaction activity.

<producer>
  <instrumentation>
    <class-name>io.netty.handler.codec.http.HttpObjectEncoder</class-name>
    <method-name>encodeHeaders</method-name>
    <match-type>MATCHES_CLASS</match-type>
  </instrumentation>
  <identifiers>
    <identifier name="HOST">
    <data-gatherer-type>POSITION</data-gatherer-type>
    <position>0</position>
    <getter-chain>get(Host)</getter-chain>
    <transformer-type>GETTER_METHODS</transformer-type>
  </identifier>
  </identifiers>
  <correlation>
    <payload-pointer>
      <data-gatherer-type>POSITION</data-gatherer-type>
      <position>0</position>
      <getter-chain>this</getter-chain>
      <transformer-type>GETTER_METHODS</transformer-type>
    </payload-pointer>
  <payload-operation>
    <access-type>method</access-type>
    <access-method>add</access-method>
    <param-types>java.lang.String, java.lang.Object</param-types>
  </payload-operation>

</correlation>
</producer>

  <producer in-process="true" activity-type="NettyProcess">
  <instrumentation>
    <class-name>io.netty.channel.DefaultChannelPipeline</class-name>
    <method-name>writeAndFlush</method-name>
    <match-type>MATCHES_CLASS</match-type>
  </instrumentation>
  <correlation>
    <payload-pointer>
      <data-gatherer-type>POSITION</data-gatherer-type>
      <position>0</position>
      <getter-chain>this</getter-chain>
      <transformer-type>GETTER_METHODS</transformer-type>
    </payload-pointer>
</correlation>
</producer>

  <consumer in-process="true" identify-transaction="true">
    <instrumentation>
      <class-name>io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask</class-name>
      <method-name>write</method-name>
      <match-type>MATCHES_CLASS</match-type>
    </instrumentation>
<correlation>
  <payload-pointer>
    <data-gatherer-type>POSITION</data-gatherer-type>
    <position>1</position>
    <getter-chain>this</getter-chain>
    <transformer-type>GETTER_METHODS</transformer-type>
  </payload-pointer>
</correlation>
</consumer>

0 Karma

CommunityUser
Splunk Employee
Splunk Employee

I have the same requirement. And I tried your method, it didnt work. It would be great help if you could help me auto discover Netty framework based proxy application.

0 Karma

Peter_Holditch
Builder

Auto discovery for transactions originating in the netty 4 web server is a backlog item currently.

In the short term, you are best off working with support to identify a configuration that works for your environment.

Warm regards,
Peter

0 Karma

Robert_Desjarla
Engager

I need this instrumentation too.

0 Karma
Career Survey
First 500 qualified respondents will receive a $20 gift card! Tell us about your professional Splunk journey.

Can’t make it to .conf25? Join us online!

Get Updates on the Splunk Community!

Community Content Calendar, September edition

Welcome to another insightful post from our Community Content Calendar! We're thrilled to continue bringing ...

Splunkbase Unveils New App Listing Management Public Preview

Splunkbase Unveils New App Listing Management Public PreviewWe're thrilled to announce the public preview of ...

Leveraging Automated Threat Analysis Across the Splunk Ecosystem

Are you leveraging automation to its fullest potential in your threat detection strategy?Our upcoming Security ...