derive(set[], options={})

Given an arbitrary number of series, performs the derivative on each series to return a set of equal length. This is generally useful when the specified series are absolute counters where each value is the previous value plus some delta and you want to examine the rate of change. The derivative operation results in a series where each value is the delta from the previous step in the original series. The options map may be included with the following key:

  • detect_reset - Boolean that toggles the method by which the delta from the previous sample is calculated. When set to false, the delta is calculated as the simple subtraction of current - previous. If set to true (the default) the counter is assumed to be always increasing and any time the current value is less than the previous value is considered a reset of the counter. When resets are encountered the delta is calculated as the current value, otherwise it’s current - previous as before.

Example:

The following expression returns the estimated AWS daily charges for the us-east-1 region by finding the derivative over 1 day (86400 seconds):

derive(
   series("AWS.Billing.EstimatedCharges.total",
      {"region": "*"},
      {function:"max",period: "86400"}),
      {detect_reset:"true"}
)

The chart displays the count of AWS.Billing.EstimatedCharges.total (total monthly charges) and the billing rate per day (created by the composite metric):

daily-estimated-charges