# Counter Rates & Increases

Learn how Prometheus handles counter resets with rate, irate, and increase functions.

## Counter Resets

Counter metrics can reset to zero when a scraped process restarts (e.g., the server is restarted). Counter functions automatically handle counter resets by assuming that any decrease in a counter value was a reset. Internally, these functions compensate for the reset by adding the last sample value before the reset to all sample values after the reset.

## Counter Functions

### Rate

`rate()`

- **"rate of increase"** - calculates a per-second increase of a counter as averaged over a specified window.

### iRate

`irate()`

- **"instantaneous rate of increase"** - calculates a per-second increase over the time window, only considering the last 2 points.

`irate()`

is much more responsive than `rate()`

. It is good for high-resolution metrics. It should not be used for alerting conditions.

### Increase

`increase()`

- **"absolute increase"** - calculates the absolute increase over a given time value, including extrapolation.

Logically, only the `increase()`

function includes extrapolation because it measures an absolute increase. `rate()`

and `irate()`

functions calculate a slope (derivative), which will not change even if extrapolation is included.

Last updated