cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Not a customer? Start a free trial

Click the Start a free trial link to start a 15-day SaaS trial of our product and join our community as a trial user. If you are an existing customer do not start a free trial.

AppDynamics customers and established members should click the sign in button to authenticate.

Java (Java Agent, Installation, JVM, and Controller Installation)

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

mikhail.vaysman
Wanderer

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

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?

By replying you agree to the Terms and Conditions of the AppDynamics Community.
Netty4, Camel, Spring, standalone jar how to configure business transcation?
4 REPLIES 4
Peter.Holditch
Moderator

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>



Found something helpful? Click the Accept as Solution button to help others find answers faster.
Liked something? Click the Thumbs Up button.
Mallaiah.Soupati
Wanderer

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.

 

Peter.Holditch
Moderator

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



Found something helpful? Click the Accept as Solution button to help others find answers faster.
Liked something? Click the Thumbs Up button.
Robert.Desjarlais
New Poster

I need this instrumentation too.