# Changelog

## 0.13.3

- Bug fix: Prevent ProcessCollector underflow with CPU time counter (#465)

- Internal change: Update dependencies

## 0.13.2

- Bug fix: Fix compilation on 32-bit targets (#446)

## 0.13.1

- Improvement: ProcessCollector use IntGauge to provide better performance (#430)

- Bug fix: Fix re-export of TEXT_FORMAT to not require protobuf (#416)

- Bug fix: Fix doc for encode (#433)

- Bug fix: Fix broken doc links (#426)

- Bug fix: Fix crates.io badge (#436)

- Internal change: Derive default instead of obvious manual impl (#437)

- Internal change: Remove needless borrow (#427)

- Internal change: Update dependencies

## 0.13.0

- Bug fix: Avoid panics from `Instant::elapsed` (#406)

- Improvement: Allow trailing comma on macros (#390)

- Improvement: Add macros for custom registry (#396)

- Improvement: Export thread count from `process_collector` (#401)

- Improvement: Add convenience TextEncoder functions to encode directly to string (#402)

- Internal change: Clean up the use of macro_use and extern crate (#398)

- Internal change: Update dependencies

## 0.12.0

 - Improvement: Fix format string in panic!() calls (#391)

 - Improvement: Replace regex with memchr (#385)

 - Improvement: Update reqwest requirement from ^0.10 to ^0.11 (#379)

## 0.11.0

- Improvement: Switch to more efficient `fd_count()` for `process_open_fds` (#357).

- API change: Change Integer Counter type from AtomicI64 to AtomicU64 (#365).

- Internal change: Update dependencies.

## 0.10.0

- Improvement: Use different generic parameters for name and help at metric construction (#324).

- Bug fix: Error instead of panic when constructing histogram with unequal label key and label value length (#326).

- Bug fix: Return `Error::AlreadyReg` on duplicate collector registration (#333).

- Bug fix: Make Histogram::observe atomic across collects (#314).

- Internal change: Replace spin with parking_lot (#318).

- Internal change: Optimize metric formatting (#327).

- Internal change: Update parking_lot and procfs dependencies (#337).

## 0.9.0

- Add: Implement `encode` function for summary type metrics. 

## 0.8.0

- Add: Reset Counters (#261)

- Add: Discard Histogram timers (#257)

- Add: `observe_closure_duration` for better observing closure duration for local histogram (#296)

- Fix a bug that global labels are not handled correctly (#269)

- Improve linear bucket accuracy by avoiding accumulating error (#276)

- Internal change: Use [thiserror](https://docs.rs/thiserror) to generate the error structure (#285)

- Internal change: Switch from procinfo to [procfs](https://docs.rs/procfs) (#290)

- Internal change: Update to newer dependencies

## 0.7.0

- Provide immutable interface for local counters.

## 0.6.1

- Fix compile error when ProtoBuf feature is not enabled (#240).

## 0.6.0

- Add: Expose the default registry (#231).

- Add: Support common namespace prefix and common labels (#233).

## 0.5.0

- Change: Added TLS and BasicAuthentication support to `push` client.

## 0.4.2

- Change: Update to use protobuf 2.0.

## 0.4.1

- Change: `(Local)(Int)Counter.inc_by` only panics in debug build if the given value is < 0 (#168).

## 0.4.0

- Add: Provides `IntCounter`, `IntCounterVec`, `IntGauge`, `IntGaugeVec`, `LocalIntCounter`, `LocalIntCounterVec` for better performance when metric values are all integers (#158).

- Change: When the given value is < 0, `(Local)Counter.inc_by` no longer return errors, instead it will panic (#156).

- Improve performance (#161).
