Docs » Charts » Chart Resolution and Rollups

Chart Resolution and Rollups

In SignalFx, the term “resolution” can refer to intervals at which datapoints are displayed on a chart (chart resolution, discussed here) or data collection intervals (native resolution; for more information, see Native resolution).

About chart resolution

When rendering charts, SignalFx defaults to a resolution that is based on the time range of the chart. In general, the shorter the time range, the finer the resolution, and the greater the likelihood that the chart resolution will be the same as the native resolution.

Conversely, the longer the time range, the coarser the resolution, and the greater the likelihood that the chart resolution will differ from the native resolution. SignalFx ensures mathematical accuracy for such a chart through the use of rollups.

The chart resolution is displayed to the right of a chart’s title in the Chart Builder or on a dashboard. You can use the chart resolution selector at the top right of a dashboard or chart to increase or decrease the resolution. For more information, see Chart display resolution.

Plots involving different resolutions

Many charts contain more than one metric time series (MTS), and those MTS may have different resolutions. SignalFx chooses one resolution per chart, so in these cases we will choose the coarsest resolution. Doing so “lines up” the datapoints for plotting or computational purposes.

For example, metrics from AWS CloudWatch typically have a 1‑or 5‑minute resolution, while metrics reported using the SignalFx Smart Agent typically have a resolution of 10 seconds. If a single chart includes metrics with a 5‑minute resolution from CloudWatch and also includes metrics from the Smart Agent, the chart resolution will never be finer than 5 minutes.

User-selected minimum resolution

On the Chart Options tab, you have the option of selecting a minimum resolution for a chart: Auto, one second (1s), five seconds (5s), ten seconds (10s), thirty seconds (30s), one minute (1m) or one hour (1h). The value you select specifies the minimum interval for which SignalFx should roll up values to display a datapoint on the chart. For more information, see Minimum resolution.

Resolution and data retention

The chart resolution of a time series is also affected by its age and corresponding data retention policy. For more information, see Resolution and Data Retention.

About rollups

Rollup overview

A rollup is a function that takes all of the datapoints received per MTS over a period of time and produces a single output datapoint (again, per MTS) for that period. If a chart has to display a long time window and the MTS contains too many datapoints for that time window to draw efficiently in a web browser, SignalFx uses rollups at display time to summarize data. (SignalFx also uses rollups to summarize data for long-term storage; for more information, see Rollups, resolution, and data retention policies.)

Each rollup type is briefly described below.

  • Average, Sum, Min, Max, and Latest rollup types summarize many datapoints into a single datapoint for display at a chart resolution that is coarser than the datapoints’ native resolution (for example, 10s data in a chart with 1d resolution). If the data in a chart is shown at its native resolution, these rollups don’t have any effect.
  • Rate/sec rollup is useful for standardizing the rate of events or occurrences measured in counter-type metrics, for easier comparison between different time periods.
  • Delta rollup equates to the change in a value over the time interval.
  • Lag and Count rollup types show meta-information about an MTS: average delay in datapoint transmission (in milliseconds), and total number of datapoints received, respectively.

The meaning of each plot shown in a chart is the combination of the following elements:

  • the chart’s resolution (described above in About chart resolution),
  • the rollup setting that is in use per plot,
  • whether that rollup has been applied to the data being displayed in the plot, and
  • whether any analytics functions have been applied to the plot

To interpret a datapoint drawn on a chart, combine the original meaning of the datapoint with its rollup setting and its chart resolution, as shown in the Interpretation column in the tables below.

Metric Rollup Chart Resolution Interpretation
cpu.utilization Average 10s The average CPU utilization observed during a 10s interval for each MTS
if_octets.rx Rate/sec 1h The average rate of bits transmitted per second during a 1h interval
if_errors.tx Delta 2m The number of transmission errors during a 2m interval

Rollups and analytics

Rollups look similar to analytics functions, but they serve different purposes and affect plots differently. When analytics functions are applied to a plot, they change the meaning of the metric in the plot. However, rollup functions are always applied to the metric first, and take effect on the metric before analytics functions are computed.

Note

Both the “Average” rollup type and the “Mean” analytics function perform the same type of computation; they simply use different terminology.

To interpret a datapoint drawn on a chart that includes analytics functions, remember that rollup functions take effect before analytics functions do. Combine the meaning of the datapoint with its rollup and resolution, and then apply the analytics functions in use. Analytics aggregation functions, discussed in this document, apply across all MTS, while rollups are applied to each MTS. For example:

Metric Rollup Analytics function (aggregation) Chart Resolution Interpretation
cpu.utilization Average none 1m The average CPU utilization observed per minute for each host. If there are 50 hosts, there will be 50 MTS and therefore 50 plots displayed. Each datapoint in each plot will represent the average of the cpu.utilization values for that MTS for a the prior 1‑minute interval.
cpu.utilization Average Mean 1m The average CPU utilization observed per minute across all hosts. The Average rollup and the Mean analytics function combine as an average of averages. One plot will be displayed, and each datapoint will represent the average of all the MTS observed per minute.
cpu.utilization Average Max 1m The maximum of the average CPU utilization values observed per minute across all hosts. The Average rollup and the Max analytics function combine as a max of averages. Compare this with the combination shown below.
cpu.utilization Max Max 1m The maximum of all CPU utilization values observed per minute across all hosts. The Max rollup and the Max analytics function combine as a max of maxes.

(For information on the difference between aggregation and transformation functions, see Aggregations and transformations.)

Rollups in more detail

As discussed in Rollup overview above, rollups are functions that summarize many datapoints into a single datapoint for display at a chart resolution that is coarser than the native resolution of the MTSs. Rollups are applied to data after it is retrieved from storage but before analytics functions are applied.

For example, if the time range for a chart is 1w and the native resolution of the data is 30s, it would be impossible to display the data at its native resolution; there would be too many datapoints for a typical display. Instead, each datapoint displayed on the chart would represent a rolled-up value for the datapoints.

On the other hand, if the time range for the same chart was 15m, it would be possible to show all 30 datapoints on the chart. Therefore, the rollup would not be applied, and the chart resolution would be the same as the datapoints’ native resolution.

The available rollup functions are:

  • Sum: Compute the sum of all datapoints for the time interval.
  • Average (default for gauge metrics): Divide the result of Sum by the count of datapoints for the time interval.
  • Min: Select the minimum value seen in the time interval.
  • Count: Return the number of datapoints observed in the time interval.
  • Max: Select the maximum value seen in the time interval.
  • Latest: Return the value of the last datapoint received in the time interval.
  • Lag: Return the average time in milliseconds between each datapoint’s timestamp and the time of its receipt at SignalFx.
  • Rate/sec (default for counter and cumulative counter metrics): Divide the result of Sum (counter) or Delta (cumulative counter) by the number of seconds in the time interval.
  • Delta (cumulative counters only): Return the difference between the first and last value observed in the time interval. This difference is never negative. If the value of a cumulative counter datapoint is ever smaller than the previous value, the delta for that interval will be just the new value, not the negative difference between them.

For visualizing data in charts, SignalFx chooses a default rollup (displayed as “Auto”) that is appropriate to how you typically want to view the data; the default depends on the metric type, as shown in the following table.

Metric type Default rollup
Gauge Average
Counter Rate per second
Cumulative counter Rate per second

When you’re building a chart or detector, you can accept the default rollup type or choose different rollup types in order to control what the chart viewer will see when they look at coarser-resolution data over a longer time window. To change the rollup being used for a signal in a chart or detector, you can click the option displayed in the Rollup column to open the plot configuration panel.

Note, however, that a rollup might not always be applied to the data currently being displayed in the chart. That is, if you change the rollup setting, it might not have any apparent effect on the values you see. This can happen if you’re looking at a short time window. Most rollup functions only take effect when the data is shown at coarser than native resolution, over a longer time window.

How rollups and resolution affects chart values

The meaning of the values shown in a chart depends on the chart’s resolution, whether the data has been rolled up, and if so, which rollup function was used.

For example, consider a chart showing a counter metric for number of errors, sent every 30 seconds, with a rollup type of Sum. If you are looking at a chart for a short time period like 15 minutes, chart resolution will be 30s, the same as native resolution, and the Sum rollup will not need to be applied. Each datapoint on the chart will reflect the actual metric value sent to SignalFx.

However, if the time period of the chart is longer, the resolution of this chart might have to change from 30s to 30m, and the rollup will have to be applied. As a result, the values displayed will be significantly higher than the 30s values on the original chart; each datapoint now represents the total number of errors received in each 30‑minute period instead of the errors received in each 30‑second period.

Therefore, when interpreting chart data, it is important to know what the chart resolution is and which rollup has been applied (if any).

The following table contains a few examples of the results obtained when using certain combinations of rollups and resolutions (and the rollup is applied). Rollup and resolution together tell you how to interpret a chart.

Metric Type Rollup Resolution Each datapoint represents…
cpu.utilization Gauge Average 10s The average percent CPU used over 10 seconds
if_octets.tx Cumulative counter Rate/sec 1m The average rate of transmitted bits per second over 1 minute
if_errors.tx Cumulative counter Delta 2m The total number of transmission errors that occurred over 2 minutes
logins.successful Count Average 1h The average number of successful logins measured over 1 hour
logins.successful Count Sum 1h The total number of successful logins measured over 1 hour

Comparing rollups and analytics functions

Rollups and analytics functions can look similar, because they are both ways to perform arithmetic on streaming data, but they serve different purposes and affect plots differently. Also, some rollups and function names are the same, such as Sum or Max. The following table describes these differences.

  Rollups Analytics functions
What is it used for? Rollups are for combining multiple datapoints from the same MTS into a single point for display or storage. Analytics functions can be used to perform any kind of computation on streaming metrics: arithmetic, transformation, combination, selection or aggregation.
How many are there? There are fewer than 10 types of rollup. There are more than 20 analytics functions.
Optional or required? The chart author can decide only which rollup function to use, not whether or not a rollup will be applied. SignalFx applies the rollup as needed. The chart author can decide whether or not to add any analytics functions.
What’s the order of operations? If a rollup is required, the rollup will always be applied to the plot first, before any analytics functions are applied. Analytics functions are applied to a plot in the order that the chart author decides.
When is it applied? A rollup will be automatically applied as needed, depending on the resolution required of the chart. Analytics functions are always applied to a plot, regardless of the resolution of the chart or detector.
When can you see its effects? In most cases, the effects of a rollup aren’t visible until the chart’s time range changes; a longer time range can cause the rollup to be applied, while changing to a shorter time range can cause the rollup not to be applied, because data can be displayed at its native resolution. When the chart author applies an analytics function, it takes effect immediately in the Chart Builder.

How rollups, resolution, and analytics functions affect chart data

The following table contains a few examples of the results obtained when using certain combinations of rollups, resolutions, and analytics aggregation functions. Understanding these interactions can help you build charts that provide the precise information you require.

Note

Both the “Average” rollup type and the “Mean” analytics function perform the same type of computation; they simply use different terminology.

Metric Type Rollup Analytics (aggregation) Resolution Each datapoint represents…
cpu.utilization Gauge Average Mean 1h The average CPU utilization per hour
cpu.utilization Gauge Average Max 1h The highest average CPU utilization per hour
cpu.utilization Gauge Max Max 1h The maximum CPU utilization observed per hour
requests Counter Rate/sec Mean 1h The mean rate of requests per second over 1h
requests Counter Rate/sec Max 1h The highest average rate of requests per second over an hour
requests Counter Sum Sum 1h The total number of requests per hour
requests Counter Sum Max 1h The highest total number of requests per hour