I try to get the count of data points/number of responses with dynatarce API. The end goal is to get a number of dialogs that took more than 3 seconds to respond. It is Dialog Response Time(ext:tech.SAP.guiresponsetime) metric.
Dynatrace support team suggested this advanced query: ext:tech.SAP.guiresponsetime:splitBy():auto :partition("performance",value("poor",gt(3000))):fold(count)
But It returns inconsistent numbers. If I select 1 day it returns 3, and when I select 2 hours It returns 5 which is kinda weird.
I would really appreciate if somebody can help.
Solved! Go to Solution.
It depends on the resolution requested. Data points are stored in a one-minute resolution. If you request a larger interval, resolution is automatically modified, unless you requested a specific resolution.
Because the :partition transformation works on the retrieved datapoints, you can get different results in the same timeframe when you request different resolutions. Also, keep in mind you look at a metric. So if your metric is a response time, by using partition you don't get a precise count of the individual requests, but the count of the buckets where the metric value fits the partition criteria. So even with 1-minute resolution you will the metric selector above, you are counting how many minutes was the metric above the threshold. It's not the same as how many requests were above the threshold.
Your metric comes from SAP monitoring. Since this is just a metric provided by an extension, I'm afraid you won't have detailed data about each transaction in this metric. Your metric data already contains the aggregates, so the proposed solution is probably the best one you can do with just the metric data. Just be sure to set the 1-minute resolution.