“How is my site performing?”
What begins as a simple-seeming question can turn out to be quite complex; the answer depends, of course, on how you choose to measure performance. Are you looking for server-side performance, or end-user? Would an average latency be a good answer, or would the 98th percentile latency be better? And if I came up with a number, would we all be able to agree on what it means for our users?
To make answering that question a lot easier, we’ve introduced Apdex scoring and fine-grained Transaction Groups in TraceView.
Apdex: Application Performance Index
Apdex is a methodology for rating the end-user experience of web applications. Apdex looks at how many users had quick pageload times, how many experienced moderate latency, and how many were frustrated by the experience, and boils that down to a single number.
How do I Apdex?
Get started with Apdex under the new Transaction Groups tab in the dashboard (more on groups below!):
Apdex scoring is based on two configurable cutoffs for request performance: the satisfaction threshold, and the tolerability threshold. Each request can be classified using these thresholds as a satisfactory one (eg. faster than the first threshold), a tolerable one, or a frustrating one.
The score is calculated using this simple formula (plain english explanation follows):
Apdex = (# of satisfied requests + (# of tolerating requests / 2)) / (# total requests) * 100
In other words, your score gets full credit for each satisfied request, half credit for the tolerable ones, and no credit at all for super-slow requests!
In the standard version of Apdex, scores are ranked on a range of 0-1. For our version of Apdex, we’ve multiplied the scoring by 100 to make it a bit easier to read:
More information in our Apdex documentation.
But what if some pages have to be faster than others?
Web apps have a lot of different endpoints and workloads; some have different expected or tolerable behavior than others. That’s why we’ve also released support for Transaction Groups, which let you focus on subsets of transactions that might have different performance demands.
Transaction Groups allow customers to specify groupings of endpoints, corresponding to a particular business or performance use case, and monitor on the performance of each separately.
For instance, you might want to segment API endpoints into their own transaction group to provide API-specific Apdex SLAs. Or pull out your admin pages into their own transaction group to limit their impact on overall Apdex with high thresholds:
Read more at our full Transaction Group documentation.
Let us know what you think!
Apdex and Transaction Groups are enabled for all accounts–log in to get started today!
Finally, a glimpse inside the Trace factory via one of many verse-based commit messages from our resident poet-hacker, Geoff Gerrietts: