Data Views

Hosted Graphite automatically generates different statistical views on the data you send, providing fast views on your metrics at the most appropriate resolution for viewing on your dashboard.

Contents

The different views we keep by default for all our graphite metrics are:

  • :avg (default view) Average of datapoints received during the timeframe of the current graph resolution.

  • :sum Sum of datapoints received during the timeframe of the current graph resolution. This changes depending on the zoom level. Using ":sum" on a graph with datapoints drawn every 30 seconds will show the sum of all datapoints received in each 30-second period.

  • :sumrate The sum is divided by the number of seconds between datapoints, giving you a per-second rate.:sum and :sumrate are the most common views to use with Counter metrics.

  • :sum30 :sum60 :sumN Provides the sum received over a given number of seconds, calculated from the :sumrate. E.g. ":sum30" provides the sum over 30 seconds. This is useful when you want a sum of a metric that is consistent regardless of what data resolution you are viewing. When drawing a graph at a wider timescale there are more datapoints than available space to draw them. Using the ":sumN" syntax lets you see an accurately scaled sum over a given number of seconds.

  • :min Minimum value

  • :max Maximum value

  • :obvs The number of 'observations' or data-points sent to a metric namespace during the timeframe of the current graph resolution (like 30s).

  • :obvsrate The observations are divided by the number of seconds in the collection period, giving you a per-second rate.

  • :90pct :95pct :99pct etc... Want arbitrary percentile data? Just add the number after the colon followed by ‘pct’. It accepts values from 01 to 99. If you want the 100th percentile you can use ":max".

Append a view to the end of your metric to visualize your data in different ways. A simple example of this would be data-view-metric:sum or test.testing:obvs

The Hosted Graphite views aren’t perfectly analogous to StatsD, but for general use, it accomplishes similar results. Using our Data Views feature over StatsD can greatly reduce the number of metrics stored in your HG account since 1 counter produces 2 (count/rate) metrics, and 1 timer will produce 11 unique metrics.

  • counters -> ‘:sum’ or ‘:obvs’

  • gauges -> ‘:sumrate’ or ‘:obvsrate’

  • timers -> any

All percentile views are calculated per resolution (5s, 30s, 300s, 3600s) using reservoir (or random) sampling. We keep 10 samples at the 5s resolution, 40 at 30s & 300s resolution, and 100 at 3600s resolution. This is not as accurate as storing a full histogram, but it requires less storage on our end.

As long as we keep the sampling in mind, we find it’s a reasonable trade-off for simple metrics.

Graphite Functions act on one or more data series, transforming them into a new data series. When using a graphite function it is important to note that:

  • The data view specified in the query is not changed depending on the function. If you use the sumSeries() function, you will be summing the average values of each series unless you also use :sum in your query as well.

  • The graph’s resolution can be changed by functions, but the resolution of the data series cannot. For example, summarize() allows you to group all the datapoints in a specified timeframe into one. Changing the zoom level of the graph won’t change the interval output by the summarize() function, but it may change the number of data points available to be summarized.

Last updated