cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

This product reached the end of support date on March 31, 2021.

What's the overhead involved in interrogating method arguments as a means of splitting results?

marklawford
Participant

We receive a high number of calls to an exposed web service on a new platfform and we need to monitor that traffic. The request XML includes a "source" tag, which we are splitting the results on - so we can see the total number of requests and the breakdown by our external partners sending those requests.

We're doing that by using a Reg Exp to find that source element within the XML method argument. And it's working just fine - we're getting the count split by partner.

The challenge made is that there must be some cost/overhead involved with interrogating that XML payload with each request (of which there is a high volume) and that there is a risk of the overhead multiplied by volume having an impact on performance.

So what can we do to identify that overhead and track/chart it over time so we can monitor it and factor it into discussions around how the new platform is performing?

2 REPLIES 2

dennis_mispelba
Inactive

Hi Mark,

I am not sure if I can completely follow your question, so sorry if the answer is not maybe directly answering your question.

What is the overhead you are refering to?

If you mean the overhead for the dynatrace server, there will be definitely one. As you say you are capturing the "source" tag from all the requests and addition splitting on this using a RegEx, this will raise the CPU usage (as RegEx is computing heavy) as well as the used storage (as the source tag is captured for every request). If this is harmful to your dynatrace environment, you could judge by looking at the "Dynatrace Server Health" dashboard within "Deployment Health" in the cockpit (> AppMon 6.3) or in the Start center "green play button on the top left".

If you are refering to overhead to your application, it can be said, that the sensors are responsible for capturing the data. So the more you capture, the greater your overhead tends to be. However, when you say "source tag", I would think that the servlet sensor is there anyway out of the box and that you just added a capturing property for the source tag. Thus, the overhead for your application should not be really big. Good news is, you can measure the overhead of your application by using "CPU sampling" within "Diagnose Events" of your cockpit. It will give you an overview about the used CPU time by an agent and in addition also the amount of time, which has been used due to Dynatrace instrumentation.

I hope this helps.

Best regards
Dennis

marklawford
Participant

Thanks Dennis. Yes, I think that CPU sampling is just what I was after.