rate(set[], options = {})

Given an arbitrary number of series, returns a set of equal length where each value has been converted to a rate over the defined duration. The duration of the period can be set with the following parameter:

  • duration - This converts every value to a rate, where the period of the rate is defined by the given duration. For every value x, the effective transform run is: (x/p) * duration. Where p is the automatic period of the data determined by the current rollup resolution, the saved metric period attribute, or the downsample period specified in a call to series(). For example, to get “rate per minute”, you would set duration to “60” ( x/p * 60 ). Whereas, to get “rate per second”, you would set duration to “1” ( x/p * 1). The duration defaults to “1” if not specified, implying all rates are converted to per-second.
rate(s("http.requests.count", {"host": "prod.web*"}, {period: "300"}),{duration:"60"})

How rate() detects the period

  • If a metric does not have a period set, then period is defaulted to resolution of the data.
  • If the series() was given a ‘period’ parameter, it will be used in place of the metric period.
  • When you switch to a higher viewing window, the data switches to a rollup resolution. Therefore, the period is calculated as the Max of (period, rollup resolution).