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

Incomplete metrics on Service Endpoints ?

Joe .Ammann
Builder

Hi

we're using AppD 4.3.5.7 and I'm trying to configure Service Endpoints correctly. Until now, I only optimized detection rules for BTs, which in our case are exclusively WebService from the Java agent.

Lately I learned that to get the FULL metrics for my WebService, I should also configure Service Endpoint detection. Because if my WebService is called in the scope of some other BT, this service invocation will not show up in the BT statistics https://docs.appdynamics.com/display/PRO43/Service+Endpoints. Ok, makes sense

So I configure Service Endpoint detection, and it discovers my webservices automatically. This works nicely.

 

What I don't understand though are the metrics that are shown for the BTs and the Service Endpoints. I was expecting that if I have a webserice like "UserDirectory.findUser", that this would now appear in both dashboards. And that the number of calls in the Service Endpoint dashboard would always be at least the same (or higher) than the number of calls in the BT dashboard - because every invocation of my webservice would count as a service endpoinrt call, but only some as BT calls (those that are not in the context of a "broader" BT).

But this is not the case. Some webservices show (for the same time range, of course) MORE calls under BTs than under service endpoints. And some don't show up in the Service endpoint dashboard alltogehter, although they appear as BTs.

 

Did I understand something totally wrong? Or is there a logical explanation for what I'm seeing?

 

CU, Joe

6 REPLIES 6

gurmitsa
Architect

Hi Joe,

 

From my knowledge about service end points, AppDynamics automatically detects the service end points and we can also write some cusotm match rules to detect a service that is not automatically detect but i dont think that this will be independent of the BTs.

Service endpoints only gives additoinal metrics at the service level and not add more monitoring.

everything that is monitored under service endpoint is always under the context of the business transaction(s) that are being monitored.

 

Hope this helps.

 

Thanks,

Gurmit.

Hi Gurmit

 

Thanks for you insights! I perfectly agree with you as long as your are looking at it from the viewpoint of 1 single AppDynamics application.

 

I was not clear enough on that, but in my case we have ~12 different AppD applications, each with its own BT detection and dashboard.

 

Let's assume I have application A7 with service S7. When that service is called directly (not in a call chain where some other AppD BT has been detected), then yes, I would see that invocation as BT on the dashboard of A7 and as well as a invocation on the Service Endpoint dashboard of A7.

 

But when service S7 is called from a BT of application A3, then (as far as I understand AppD), this invocation will not be shown on the BT dashboard of A7. It will not add to the metrics of S7. But - according to the documentation as I understand it - this invocation SHOULD BE reflected in the metrics of the service endpoint for S7.

 

And this is what I'm asking about. I would like to get complete metrics of ALL invocations of S7. I thought the service endpoint dashboard is the right thing for this. But if my understandint would be correct, it would be impossible to see more calls for the same service on the BT dashboard than on the service endpoint dashbaord. This is what confuses me - somehow I must be missing something

 

CU, Joe

So, in a nutshell, application A3 makes a call to tier within A7 that hosts the service S7, so this will be a request (incoming BT) to A7 and should show up under the BT as well as the Servie end point.

 

Service End point is configured for the service within the context of a tier that is monitored on AppDynamics.

 

https://play.vidyard.com/v3hCbsHka2p3T5qasYCkGB

 

Thanks

Gurmit.

Not exactly. The full chain could be something like

 

A1   ->   S3 in A3   ->  S7 in A7

 

So the call chain starts in A1. Service S3 (hosted on a tier within A3) is called. Here the BT starts, and S3 is nicely shown on the BT dashboard (and service endpoint dashboard) of A3. Service S3 then in turn calls S7 - which is on a tier within A7.

 

As far as I understand this specific invocation of S7 is not shown on the BT dashboard of A7 and is not reflected in the metrics (# of calls, duration, etc.). Because it "belongs" to this invocation of S3 (it is shown in the call graph of S3, of course). But as I understand the video link you posted, the metrics of S7 Service Endpoint dashboard of A7 should indeed contain this invocation.

 

This is what I'm looking for: a full metric set of a specific service, regardless of wether that service was the starting point of a BT or already called from within an existing BT. I got the impression that Service Endpoints would give me exactly this.

 

But apparently not: because if this was true, the number of calls to S7 in the Service Endpoint dashboard should always be equal or higher than the number of calls on the BT dashboard. But this is what I'm seeing in my applications: more BT calls than Service Endpoints for the same service in the same time range, I'm still trying to make sense of this...

 

CU, Joe

Hi Joe,

 

May be Information Points is the way to go for your problem statement?

Have you looked into that?

https://docs.appdynamics.com/display/PRO44/Information+Points

 

Information points are similar to data collectors. However, while data collectors show application data in the context of a business transaction, information points reflect data state across all invocations of a method, independently of business transactions. They also let you apply computations to the values, for example, representing the sum or average for a method return value or input parameter.

 

Thanks

Gurmit.

Joe .Ammann
Builder

Sorry for the late response, I was away for a few days.

Turns out that all my problems (supposedly missing metrics) was actually just impatience on my side.

 

For me in my installation it became apparent that after changing discovery rules, I really needed to wait for an extended period of time (definitely more than 1 hour) AND restart all instrumented JVMs (although all are running on Oracle/Sun 8 JDK) to get reliable results.

 

After I did that (change rule, stop JVMs, delete all old BTs/ServiceEndpoints, restart JVMs) I now get repeatable and correct metrics. Well, sometimes they are a few tenths of 1 percent off in counting calls, but that's more than good enough for metrics!

 

So sorry if I did spread some FUD here, but for me it now looks that ServiceEndpoints now provide exactly the metrics I was expecting from them. They show basic KPI for all invocations of my service, even if it happened in the context of an already existing BT. Perfect!

 

CU, Joe