I have a bunch of web page response time data, and I'm recording dispersion stats--both variance and quartile--on an hourly basis.

Are there good ways to roll this up into larger time scales (e.g., daily, weekly), as opposed to having to reprocess the original dataset? I understand that in the initial hourly rollup I'm losing some information, so I may have to have estimated values for the daily, weekly etc rollups, and that's fine as long as the estimate is reasonably close.

One thought that I have is that in the hourly rollups I can model the distribution of data, and then aggregate the models themselves for the daily/weekly/etc rollups. I haven't actually done the work yet of determining appropriate models for that hourly data, but conceptually this seems like a plausible direction. (Just as an aside, are there distributions that are generally accepted as being reasonable models for web page response times?)

Another idea would be to have some pre-defined bins--e.g., [0, 0.5), [0.5, 1.0), [1.0, 2.0), etc., and store counts. Of course I could have more bins for better resolution.

Are there other approaches worth exploring?

I'm not necessarily looking for theoretically perfect solutions here. Basically I'm putting together an operational dashboard for a bunch of web applications, and I need a practical way to allow operational staff to view dispersion statistics at different timescales.

  • I added the binning/histogram idea after I asked the question and I think that will be a good solution to what I'm trying to do, but I'm still interested in hearing other ideas. – Willie Wheeler Jan 31 '13 at 22:55
  • What is your purpose in rolling it up into a larger time scale? Is it to try to estimate the single variance of the larger set of data; or to give a sense of the "average variance" in any one hour? This makes it quite different problems. If the mean changes over time the variance over the larger time scale can be materially more than in any individual smaller time unit. But for a dashboard this might be useful figure. – Peter Ellis Apr 2 '13 at 2:16
  • Want to be able to do both of those things. Idea is that we want to try to minimize variance since it can create a poor user experience. So we might track our progress from week to week, month to month, or even year to year. – Willie Wheeler Apr 2 '13 at 3:25
  • 1
    I found this article provides a good strategy for quantile aggregation: metamarkets.com/2013/histograms – Blake Mitchell Apr 2 '14 at 20:06
up vote 0 down vote accepted

Just as a followup to the idea I described in the question itself, it looks like it will work well.

Here's a table that shows how the binning works. I'm doing a log_10 scale on the response times, which are expressed in milliseconds and appear as headers in the table below. The rows correspond to 5 minute snapshots, and the cell values are counts.

Table demonstrating log scale response time binning

Here's a chart with the same data.

Chart demonstrating log scale response time binning

Again I'd be very glad to hear other possible approaches but I wanted to share this one since it works. Clearly I'll be able to aggregate these five minute snapshots into hourlies, dailies, etc.

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.