You can create a new Rate Measure. Simply open your System Profile -> go to Measures -> Create Measure and search for Rate. A Rate measure will calcualte the rate between two measures. So - select the "Base" and "Value" measure that you want to calculate a rate for. Once you have that measure defined you can put a Chart on a Dashboard and select that new Measure you just created
Hi Andreas, thanks for the answer. I discovered this as well.
Can I get your advice on how to compute a rate of pages per second, or pages per minute?
So far I created two measures: web request count (pages only) and web request service time (pages only). I want to sum up each over the selected interval, then divide total request count by total service time. I guess this part I can do with the new rate measure, but two questions (1) how to perform the sum and (2) how to convert that time to seconds or minutes (appears the Time measure is in ms).
Thanks for any advice!
If you want to know "Pages per Minute" you dont really need a rate measure. If you have UEM (=User Experience Management) you can simply chart the "User Action Count" measure. If you dont have UEM you can chart the Web Request Count meausre. On the chart itself you can select the "Chart Resolution" (via the toolbar icons). You can select 1 minute as interval. Now the chart shows you how many Web Requests come in per Minute
No need for a Rate Measure. A Rate Measure is usefuly if you want to calculate the Rate between two measures, e.g: Total WEb Request Count and Web Request Count for a Certain URL.
Thanks Andreas that makes sense. I do not have UEM but I will chart Web Request Count and with URI pattern matching pages only, then adjust the resolution.
I would also like to generate additional values such as min, max, avg pages per minute. These are single values calculated over the course of the session (my load test session). What is the best way to obtain these?
Hi. The cool thing about measures in dynatrace is that you automatically get min, max, avg, sum and count for each measure. When you put a measure on a chart you can right click it and select the Aggregation. There you can select min, max, avg, .... -> Now the next cool thing is that you can put the same measure on a single chart multiple times with different aggregations. You can for instance chart Max and Avg. Choose the color RED for Max and Green for Avg - that gives you a great overview of response time and you also see the outliers. What you can also do is use a Dual Axis chart and put the same measure on the 2nd Y-Axis but for that choose "Count" as an aggregat which gives you the number of PurePaths that contribute to that measure. Which is essentially your load
You end up with a Chart that shows both Avg and Max Response Time compared to Load
As part of our Online Live Q&A Performance Clinics I talked about Basic Dashboarding where I explained how measures work internally and demo exactly that use case I explained above. You should check it out - its available on Youtube:
Thanks andreas, the video was extremely helpful.
One question on aggregation, how does charting aggregation relate to the aggregation you choose when creating your BT? When you create the BT you must also select an option under 'aggregate' column, either for filter or calculate results section. The online documentation describes it very much like how it works with charts, but what is the difference here?
The aggreate on the BT defines which value of the Measure for that particular PurePath, User Action or Visit to take.
So - if you have a PurePath-based Business Transaction and you use a measure like "Execution Time of a Method". If the method gets called multiple times on a PurePath this measure will actually return multiple values - and - these values are available as min, max, avg, sum, count, first, last. Thats what this is all about. Here you can specify which value to choose for your filter and result measure.
in most cases - these Measures will just return one value per PurePath - but - in some cases they may return more than one -thats why this is useful.
Especially when you think about Visit-based BTs this becomes really interesting, e.g: how much revenue did a single visitor generate? To answer this question you need a measure that gives you the revenue of each individual item purchased - but - overall you want to take the SUM. So - SUM of all Purchases that this particular visitor made.
Hope this makes sense
Thank-you, that does make sense.
I notice though that "last" doesn't exist for the chart. It may make sense when charting a resource instead of a PP to use last, wouldn't it? E.g. CPU resource usage. In this case, you just want the value of the last taken sample. Or another example may be monitoring a JMX attribute. Given that last doesn't exist, what should I select for these measures? I am thinking average may be the next best option...
Not all charts allow a last - because most chart types (line, bar chart, ...) show measure points along the defined timeframe. "Last" on a chart is only available for chart types that show a single value, e.g: Traffic Light - other than that I would do average - or - what I also like - I like to put the same measure once with Average and once with Max. With that you see the average time but also the outliers
Thanks Andi, I saw your video on dashboarding basics where you did that. I will look into doing that.
Finally, for rates, is it safe to say proper conversion is implicitly done between time (ms vs seconds) or size (KB vs MB)? E.g. I want to show JVM heap (the size of Eden) as a percentage. But I notice if I create a custom measure for the max eden size (which defines 100%), it is only in KB. The existing Eden "used" measure however, is MB. Hopefully when it calculates the rate it will normalize one of the measures?
If you want the memory utilization you can also use one of the out-of-the-box "Java Memory Utilization" or "Java Memory Pool Utilization" measures. Check them out when you are in the "Create Measure" dialog. search for "Utilization" and you find these measures. These measures are automatically returning a % value