• 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 Nicolas C. · Jan 07, 2013 at 10:08 AM ·

java Socket - legacy system time isolated in the transaction flow

Hi,

We are using Dynatrace on a Java backend server that calls some external system through a java.net.Socket connection (which is a legacy system that has no dynatrace agent).

When I consult the purepaths that are produced, the Transaction Flow indicates that 100% of the time is spent on my java machine is not correct since most of the time is spent in the legacy system.

Is there a way to configure in the system profile, the fact that a call to the class java.net.Socket produces time that is spent on another tier ?

Thanks,

Here is one screenshot that shows the elements of the purepath :

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 Christian S. · Jan 07, 2013 at 02:19 PM

basically that would be possible.

however, it would make no sense at all to show each single socket read/write as one external call. so we would have to collect multiple reads/writes and maybe aggregate based on destination IP or similar. and then we would have to make sure that we don't count times twice e.g. on socket and on web service. so there'd be a need for some kind of correlation and so forth ...

so it may be some future release feature, but no trivial for sure.
and maybe we also find another (e.g. network based) approach ...

best,
Christian

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 Nicolas C. · Jan 07, 2013 at 02:04 PM

Thanks for the answer, I thought that dynatrace could be able to identify that because a use of a Socket means by definition an external call and the time reading the stream from the socket is the time of the external system.

It could be perhaps an evolution for a next release of dynatrace.

Nicolas,

Comment

People who like this

0 Show 1 · 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 Reinhard W. · Jan 07, 2013 at 02:17 PM 0
Share

Nicolas,

actually reading from the socket doesn't necessarily mean time spent in the "other system". It could be a resource bottleneck in the calling system, in the called system or even in between. As Christian described the most accurate measurement you can get without having an agent in the called system and without ADK tagging is to define sensors on methods that are actually calling the external system and either use the API time or the execution time of that method as an indicator.

Maybe in your case placing a sensor on fr.msa.agora.s44accesgi.metier.gestionindividu.service.GestionIndividuImpl.* makes sense, as it looks like there is one or more services beeing called that you maybe want to distinguish.

Reinhard

avatar image

Answer by Christian S. · Jan 07, 2013 at 01:03 PM

hi Nicolas,

the feature 'external calls' only works for calls that we are able to detect (web services, HTTP calls, remoting, ...).

however, in your case it seems to be plain and proprietary java socket communication. in this case dynaTrace is not able to detect such calls.

so if you want to get to the time spent in this tier, i currently see 2 options:

  • easy: you find methods on the java side, which are executed during the time of these calls, place sensors for them and work with APIs to get to that time. in this case the transaction flow stays the same, but the time is reflected in the API.
  • not so easy: if possible, you inject an ADK agent into the legacy system (with source code instrumentation) and use the Java tagging ADK to tag the calls into the legacy system. in this case you would also get a complete transaction flow.

best,
Christian

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 Andreas G. · Jan 07, 2013 at 11:00 AM

Hi Nicolas

Which version of dynaTrace do you use? With dynaTrace 4.2 we introduced a feature that allows visualizing "External Calls" in the transaction flow.
Also - could you export one of these PurePaths so that we can have a closer look at it?

Thanks

Comment

People who like this

0 Show 1 · 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 Nicolas C. · Jan 07, 2013 at 11:20 AM 0
Share

I use dynatrace 4.2. Here is the attached : dynatrace_socket_legacy_time.dts

The feature you mention : an "External Calls" box in the transaction flow is exactly what I need. So perhaps there is an option to active or display it ?

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