• Forums
    • Public Forums
      • Community Connect
      • Dynatrace
        • Dynatrace Open Q&A
      • Application Monitoring & UEM
        • AppMon & UEM Open Q&A
      • Network Application Monitoring
        • NAM Open Q&A
  • Home /
  • Public Forums /
  • Application Monitoring & UEM /
  • AppMon & UEM Open Q&A /
avatar image
Question by Sudhaker R. · Nov 15, 2013 at 07:13 PM ·

Instrumenting Apache Synapse

 

Is Synapse (http://synapse.apache.org/) supported on dynaTrace?

This is the reference to their HTTP transport - not included in any Sensor pack which explains why instrumentation is missing.

http://synapse.apache.org/userguide/transports.html#Non-blocking_HTTP_transport

Thanks in advance.

Cheers,

Sudhaker

 

Comment

People who like this

0 Show 0
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

4 Replies

  • Sort: 
  • Most voted
  • Newest
  • Oldest
avatar image

Answer by Matthias M. · Nov 19, 2013 at 05:36 AM

Hi Raj,

 you can easily add support to most protocols and applications.

 Instrumenting a solution is very easy by going into the system profile of your application and adding classes you would like to be instrumented.
 Make sure you select the correct entrypoints and allow those to " Start a PurePath". Once you are happy with the instrumentation, you can export
 the sensor rules into a Sensor Pack and share it internally or with the community .

 In order to get complete PurePaths for applications/protocols which aren't yet out-of-the-box supported, you can use the Application Development Kit (ADK) to tag what you need to trace. The ADK can be found in your download section.

 We have posted here an article on how to instrument and use the ADK to trace through Storm, which is a highly distributed real-time event processing system.

 

Hope this helps !

 

Comment

People who like this

0 Show 6 · Share
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

avatar image Sudhaker R. · Nov 19, 2013 at 01:48 PM 0
Share

Matt - thanks for the post. ADK & tagging look very promising - will explore it further.

The flow is like following :- [Browser] => [Liferay/Tomcat] => [Synapse] => [Actual back-end (Tomcat/IIS)] with agent installed at all tiers. Adding a custom entry-point and starting pure-path at Synapse layer is not helping as it creates another dt-transaction. We managed to patch Synapse and duplicate x-dynatrace header in outgoing request but [Synapse] layer still invisible/disconnected from main transaction.

Will keep you all posted.

Thanks - Sudhaker

avatar image Christian S. Sudhaker R. · Nov 19, 2013 at 06:17 PM 0
Share

hi Sudhaker,

if you copy the dynatrace header from the incoming to the outgoing request, then basically the synapse tier will be skipped in the PurePath and you will see what happened before and afterwards.

to get visibility into synapse, you'd have to use the Tagging ADK at two points inside synapse:

  • receiving of incoming HTTP request: read the x-dynatrace header, set it (setTagFromString()) and start/end a subpath (startServerPurePath()/endServerPurePath())
  • sending of outgoing HTTP request: create a new dynatrace tag (getTagAsString()), insert a link (linkClientPurePath()) and set the tag to x-dynatrace header

this should basically be enough.

hope this helps,

Christian

avatar image Sudhaker R. Christian S. · Nov 21, 2013 at 02:39 AM 0
Share

This is exactly what I was looking for.

Thanks

avatar image Christian S. · Nov 19, 2013 at 06:09 PM 0
Share

hi Matt,

great blog posts on your site! (smile) I especially like the code snippets.

however, there's also a small comment from my side about the code: why are you already creating the new tag after starting the subpath and passing it via constructor instead of just creating it before inserting the link? benefits of this would be:

  • this would also work if there are multiple emit() calls (if this is possible) because each link needs its own tag.
  • this would also allow instrumentation of method calls between createCollector() and addTraceId(), which could cause problems otherwise.

just my 2 cents.

Christian

avatar image Matthias M. Christian S. · Nov 20, 2013 at 01:00 AM 0
Share

Hi Christian,

 Thank you for the helpful comments.

 My colleague David Miller is the author of the article and will respond to your questions and improve the code examples.

 

Best,

 

Matthias

 

avatar image David M. Christian S. · Nov 20, 2013 at 01:01 AM 0
Share

Hi Christian

I wrote the article on the Kweo blog.

You're right. It would be better like that especially for the multiple emit case (which is possible).

I'll test out that change.

Thanks for the feedback !

 

David

 

 

avatar image

Answer by Christian S. · Nov 18, 2013 at 04:37 PM

hi Raj,

with the upcoming dynaTrace release, Synapse will be partially supported, especially in the context of the WSO2 ESB. however, to my knowledge this does not include the synapse HTTP implementation, so I assume this won't help you that much.

Netty is a similar case. with the next release we will support the Ning Async HTTP client, which can use Netty underneath. again however, I'm pretty sure this will not help anything when using Netty without Ning.

so the guys at Kweo have to be using the Java Tagging ADK to really tag these Netty calls.

so if you see those as important features you should create RFEs for them: Product Feedback and Enhancement Requests

best,

Christian

Comment

People who like this

0 Show 4 · Share
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

avatar image David M. · Nov 20, 2013 at 02:18 AM 0
Share

Yes, we're using the ADK to tag the netty requests.

provided you can modify the code its fairly simple and just involves adding another handler to your netty pipeline...or modifying your existing handler.

Heres some sample code which would get the tag from the headers

https://gist.github.com/davemiller/7555802

I've left out imports, etc for brevity, but hopefully you get the idea

 

Dave

 

avatar image Asad A. · Aug 12, 2014 at 06:06 AM 0
Share

Christian,

Is the support for Apache Synapse available in 5.6 or 6.0? I had a call with a customer who is using dt 5.6 and is instrumenting the Apache Synapse.

avatar image Christian S. Asad A. · Aug 12, 2014 at 06:54 PM 0
Share

support for WSO2 Enterprise Service Bus 4.6 (which I was talking about above) was added in 5.6.

avatar image Asad A. Christian S. · Aug 12, 2014 at 11:22 PM 0
Share

Christian,

Are there any specific sensor packs added for Apache Synapse? The customer that is using dT with Synapse had to add custom entry points to see PPs. 

avatar image

Answer by Andreas G. · Nov 18, 2013 at 10:13 AM

Hi Raj. I've forwarded this forum post to the folks from Kweo - I hope they find the time to respond to your question

Comment

People who like this

0 Show 0 · Share
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

avatar image

Answer by Sudhaker R. · Nov 15, 2013 at 07:14 PM

 

Also folks @ Kweo has published this wonderful blog - http://kweo.com/application-performance-management-distributed-real-time-data-processing ;; how did they instrument Netty? Same issue - couldn't find Netty's connector inside any sensor packs.

Comment

People who like this

0 Show 0 · Share
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

How to get started

First steps in the forum
Read Community User Guide
Best practices of using forum

NAM 2019 SP5 is available


Check the RHEL support added in the latest NAM service pack.

Learn more

LIVE WEBINAR

"Performance Clinic - Monitoring as a Self Service with Dynatrace"


JANUARY 15, 3:00 PM GMT / 10:00 AM ET

Register here

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Forum Tags

dotnet mobile monitoring load iis 6.5 kubernetes mainframe rest api dashboard framework 7.0 appmon 7 health monitoring adk log monitoring services auto-detection uem webserver test automation license web performance monitoring ios nam probe collector migration mq web services knowledge sharing reports window java hybris javascript appmon sensors good to know extensions search 6.3+ server documentation easytravel web dashboard kibana system profile purelytics docker splunk 6.1 process groups account 7.2 rest dynatrace saas spa guardian appmon administration production user actions postgresql upgrade oneagent measures security Dynatrace Managed transactionflow technologies diagnostics user session monitoring unique users continuous delivery sharing configuration alerting NGINX splitting business transaction client 6.3 installation database scheduler apache mobileapp RUM php dashlet azure purepath agent 7.1 appmonsaas messagebroker nodejs 6.2 android sensor performance warehouse
  • Forums
  • Public Forums
    • Community Connect
    • Dynatrace
      • Dynatrace Open Q&A
    • Application Monitoring & UEM
      • AppMon & UEM Open Q&A
    • Network Application Monitoring
      • NAM Open Q&A