|
proxygen
|
#include <BucketedTimeSeries.h>
Public Types | |
| using | ValueType = VT |
| using | Clock = CT |
| using | Duration = typename Clock::duration |
| using | TimePoint = typename Clock::time_point |
| using | Bucket = detail::Bucket< ValueType > |
Public Member Functions | |
| BucketedTimeSeries (size_t numBuckets, Duration duration) | |
| BucketedTimeSeries (TimePoint theFirstTime, TimePoint theLatestTime, Duration maxDuration, const std::vector< Bucket > &bucketsList) | |
| bool | addValue (TimePoint now, const ValueType &val) |
| bool | addValue (TimePoint now, const ValueType &val, uint64_t times) |
| bool | addValueAggregated (TimePoint now, const ValueType &total, uint64_t nsamples) |
| size_t | update (TimePoint now) |
| void | clear () |
| TimePoint | getLatestTime () const |
| TimePoint | getEarliestTime () const |
| size_t | numBuckets () const |
| Duration | duration () const |
| bool | isAllTime () const |
| bool | empty () const |
| TimePoint | firstTime () const |
| TimePoint | latestTime () const |
| const std::vector< Bucket > & | buckets () const |
| Duration | elapsed () const |
| Duration | elapsed (TimePoint start, TimePoint end) const |
| const ValueType & | sum () const |
| uint64_t | count () const |
| template<typename ReturnType = double> | |
| ReturnType | avg () const |
| template<typename ReturnType = double, typename Interval = Duration> | |
| ReturnType | rate () const |
| template<typename ReturnType = double, typename Interval = Duration> | |
| ReturnType | countRate () const |
| ValueType | sum (TimePoint start, TimePoint end) const |
| uint64_t | count (TimePoint start, TimePoint end) const |
| template<typename ReturnType = double> | |
| ReturnType | avg (TimePoint start, TimePoint end) const |
| template<typename ReturnType = double, typename Interval = Duration> | |
| ReturnType | rate (TimePoint start, TimePoint end) const |
| template<typename ReturnType = double, typename Interval = Duration> | |
| ReturnType | countRate (TimePoint start, TimePoint end) const |
| template<typename Function > | |
| void | forEachBucket (Function fn) const |
| size_t | getBucketIdx (TimePoint time) const |
| const Bucket & | getBucketByIndex (size_t idx) const |
| void | getBucketInfo (TimePoint time, size_t *bucketIdx, TimePoint *bucketStart, TimePoint *nextBucketStart) const |
| bool | addValue (Duration now, const ValueType &val) |
| bool | addValue (Duration now, const ValueType &val, uint64_t times) |
| bool | addValueAggregated (Duration now, const ValueType &total, uint64_t nsamples) |
| size_t | update (Duration now) |
Private Member Functions | |
| template<typename ReturnType = double, typename Interval = Duration> | |
| ReturnType | rateHelper (ReturnType numerator, Duration elapsedTime) const |
| TimePoint | getEarliestTimeNonEmpty () const |
| size_t | updateBuckets (TimePoint now) |
| ValueType | rangeAdjust (TimePoint bucketStart, TimePoint nextBucketStart, TimePoint start, TimePoint end, ValueType input) const |
| template<typename Function > | |
| void | forEachBucket (TimePoint start, TimePoint end, Function fn) const |
Private Attributes | |
| TimePoint | firstTime_ |
| TimePoint | latestTime_ |
| Duration | duration_ |
| Bucket | total_ |
| std::vector< Bucket > | buckets_ |
Definition at line 64 of file BucketedTimeSeries.h.
| using folly::BucketedTimeSeries< VT, CT >::Bucket = detail::Bucket<ValueType> |
Definition at line 70 of file BucketedTimeSeries.h.
| using folly::BucketedTimeSeries< VT, CT >::Clock = CT |
Definition at line 67 of file BucketedTimeSeries.h.
| using folly::BucketedTimeSeries< VT, CT >::Duration = typename Clock::duration |
Definition at line 68 of file BucketedTimeSeries.h.
| using folly::BucketedTimeSeries< VT, CT >::TimePoint = typename Clock::time_point |
Definition at line 69 of file BucketedTimeSeries.h.
| using folly::BucketedTimeSeries< VT, CT >::ValueType = VT |
Definition at line 66 of file BucketedTimeSeries.h.
| folly::BucketedTimeSeries< VT, CT >::BucketedTimeSeries | ( | size_t | numBuckets, |
| Duration | duration | ||
| ) |
Definition at line 28 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::buckets_, folly::BucketedTimeSeries< VT, CT >::duration_, and folly::BucketedTimeSeries< VT, CT >::isAllTime().
| folly::BucketedTimeSeries< VT, CT >::BucketedTimeSeries | ( | TimePoint | theFirstTime, |
| TimePoint | theLatestTime, | ||
| Duration | maxDuration, | ||
| const std::vector< Bucket > & | bucketsList | ||
| ) |
Definition at line 48 of file BucketedTimeSeries-defs.h.
References folly::detail::Bucket< T >::add(), folly::BucketedTimeSeries< VT, CT >::buckets_, folly::detail::Bucket< T >::count, folly::BucketedTimeSeries< VT, CT >::duration_, folly::BucketedTimeSeries< VT, CT >::firstTime_, folly::BucketedTimeSeries< VT, CT >::latestTime_, folly::detail::Bucket< T >::sum, and folly::BucketedTimeSeries< VT, CT >::total_.
| bool folly::BucketedTimeSeries< VT, CT >::addValue | ( | TimePoint | now, |
| const ValueType & | val | ||
| ) |
Definition at line 83 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::addValueAggregated().
Referenced by addValue(), TEST(), and testUpdate100x10().
| bool folly::BucketedTimeSeries< VT, CT >::addValue | ( | TimePoint | now, |
| const ValueType & | val, | ||
| uint64_t | times | ||
| ) |
Definition at line 88 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::addValueAggregated().
|
inline |
Definition at line 448 of file BucketedTimeSeries.h.
|
inline |
Definition at line 451 of file BucketedTimeSeries.h.
| bool folly::BucketedTimeSeries< VT, CT >::addValueAggregated | ( | TimePoint | now, |
| const ValueType & | total, | ||
| uint64_t | nsamples | ||
| ) |
Definition at line 96 of file BucketedTimeSeries-defs.h.
References folly::detail::Bucket< T >::add(), folly::BucketedTimeSeries< VT, CT >::buckets_, folly::BucketedTimeSeries< VT, CT >::empty(), folly::BucketedTimeSeries< VT, CT >::firstTime_, folly::BucketedTimeSeries< VT, CT >::getBucketIdx(), folly::BucketedTimeSeries< VT, CT >::getEarliestTimeNonEmpty(), folly::BucketedTimeSeries< VT, CT >::isAllTime(), folly::BucketedTimeSeries< VT, CT >::latestTime_, LIKELY, now(), folly::BucketedTimeSeries< VT, CT >::total_, UNLIKELY, and folly::BucketedTimeSeries< VT, CT >::updateBuckets().
Referenced by folly::BucketedTimeSeries< VT, CT >::addValue(), and TEST().
|
inline |
Definition at line 455 of file BucketedTimeSeries.h.
|
inline |
| ReturnType folly::BucketedTimeSeries< VT, CT >::avg | ( | TimePoint | start, |
| TimePoint | end | ||
| ) | const |
Definition at line 317 of file BucketedTimeSeries-defs.h.
References folly::detail::Bucket< T >::count, folly::BucketedTimeSeries< VT, CT >::forEachBucket(), folly::BucketedTimeSeries< VT, CT >::rangeAdjust(), folly::detail::Bucket< T >::sum, and uint64_t.
|
inline |
Definition at line 226 of file BucketedTimeSeries.h.
References folly::test::end(), and start.
Referenced by TEST().
| void folly::BucketedTimeSeries< VT, CT >::clear | ( | ) |
Definition at line 214 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::buckets_, folly::detail::Bucket< T >::clear(), folly::BucketedTimeSeries< VT, CT >::firstTime_, folly::BucketedTimeSeries< VT, CT >::latestTime_, and folly::BucketedTimeSeries< VT, CT >::total_.
Referenced by TEST(), and testUpdate100x10().
|
inline |
Definition at line 283 of file BucketedTimeSeries.h.
Referenced by folly::MultiLevelTimeSeries< VT, CT >::count(), folly::MultiLevelTimeSeries< VT, CT >::getLevel(), TEST(), and testUpdate100x10().
| uint64_t folly::BucketedTimeSeries< VT, CT >::count | ( | TimePoint | start, |
| TimePoint | end | ||
| ) | const |
Definition at line 298 of file BucketedTimeSeries-defs.h.
References folly::detail::Bucket< T >::count, folly::BucketedTimeSeries< VT, CT >::forEachBucket(), folly::BucketedTimeSeries< VT, CT >::rangeAdjust(), and uint64_t.
|
inline |
Definition at line 325 of file BucketedTimeSeries.h.
References count, sum(), and uint64_t.
Referenced by TEST().
|
inline |
Definition at line 385 of file BucketedTimeSeries.h.
References count, folly::detail::distributed_mutex::time(), and uint64_t.
|
inline |
| CT::duration folly::BucketedTimeSeries< VT, CT >::elapsed | ( | ) | const |
Definition at line 258 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::empty(), folly::BucketedTimeSeries< VT, CT >::getEarliestTime(), and folly::BucketedTimeSeries< VT, CT >::latestTime_.
Referenced by TEST().
| CT::duration folly::BucketedTimeSeries< VT, CT >::elapsed | ( | TimePoint | start, |
| TimePoint | end | ||
| ) | const |
Definition at line 268 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::empty(), folly::BucketedTimeSeries< VT, CT >::getEarliestTime(), folly::BucketedTimeSeries< VT, CT >::latestTime_, max, min, and start.
|
inline |
|
inline |
| void folly::BucketedTimeSeries< VT, CT >::forEachBucket | ( | Function | fn | ) | const |
Definition at line 407 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::buckets_, folly::BucketedTimeSeries< VT, CT >::duration_, folly::BucketedTimeSeries< VT, CT >::firstTime_, folly::BucketedTimeSeries< VT, CT >::isAllTime(), folly::BucketedTimeSeries< VT, CT >::latestTime_, and folly::BucketedTimeSeries< VT, CT >::total_.
Referenced by folly::BucketedTimeSeries< VT, CT >::avg(), folly::BucketedTimeSeries< VT, CT >::count(), folly::BucketedTimeSeries< VT, CT >::forEachBucket(), folly::BucketedTimeSeries< VT, CT >::sum(), and TEST().
|
private |
Definition at line 508 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::forEachBucket().
|
inline |
Definition at line 425 of file BucketedTimeSeries.h.
Referenced by TEST().
| size_t folly::BucketedTimeSeries< VT, CT >::getBucketIdx | ( | TimePoint | time | ) | const |
Definition at line 359 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::buckets_, folly::BucketedTimeSeries< VT, CT >::duration_, and folly::BucketedTimeSeries< VT, CT >::isAllTime().
Referenced by folly::BucketedTimeSeries< VT, CT >::addValueAggregated(), TEST(), folly::BucketedTimeSeries< VT, CT >::update(), and folly::BucketedTimeSeries< VT, CT >::updateBuckets().
| void folly::BucketedTimeSeries< VT, CT >::getBucketInfo | ( | TimePoint | time, |
| size_t * | bucketIdx, | ||
| TimePoint * | bucketStart, | ||
| TimePoint * | nextBucketStart | ||
| ) | const |
Definition at line 372 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::buckets_, folly::BucketedTimeSeries< VT, CT >::duration_, and folly::BucketedTimeSeries< VT, CT >::isAllTime().
Referenced by folly::BucketedTimeSeries< VT, CT >::getEarliestTimeNonEmpty(), TEST(), and folly::BucketedTimeSeries< VT, CT >::updateBuckets().
| CT::time_point folly::BucketedTimeSeries< VT, CT >::getEarliestTime | ( | ) | const |
Definition at line 226 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::empty(), folly::BucketedTimeSeries< VT, CT >::firstTime_, folly::BucketedTimeSeries< VT, CT >::getEarliestTimeNonEmpty(), folly::BucketedTimeSeries< VT, CT >::isAllTime(), and max.
Referenced by folly::BucketedTimeSeries< VT, CT >::elapsed(), and TEST().
|
private |
Definition at line 244 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::duration_, folly::BucketedTimeSeries< VT, CT >::getBucketInfo(), and folly::BucketedTimeSeries< VT, CT >::latestTime_.
Referenced by folly::BucketedTimeSeries< VT, CT >::addValueAggregated(), and folly::BucketedTimeSeries< VT, CT >::getEarliestTime().
|
inline |
|
inline |
Definition at line 190 of file BucketedTimeSeries.h.
Referenced by folly::BucketedTimeSeries< VT, CT >::addValueAggregated(), folly::BucketedTimeSeries< VT, CT >::BucketedTimeSeries(), folly::BucketedTimeSeries< VT, CT >::forEachBucket(), folly::BucketedTimeSeries< VT, CT >::getBucketIdx(), folly::BucketedTimeSeries< VT, CT >::getBucketInfo(), folly::BucketedTimeSeries< VT, CT >::getEarliestTime(), and folly::BucketedTimeSeries< VT, CT >::update().
|
inline |
|
inline |
Definition at line 174 of file BucketedTimeSeries.h.
|
private |
Definition at line 479 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::latestTime_, max, and min.
Referenced by folly::BucketedTimeSeries< VT, CT >::avg(), folly::BucketedTimeSeries< VT, CT >::count(), and folly::BucketedTimeSeries< VT, CT >::sum().
|
inline |
Definition at line 308 of file BucketedTimeSeries.h.
Referenced by TEST().
|
inline |
Definition at line 371 of file BucketedTimeSeries.h.
References sum().
|
inlineprivate |
Definition at line 464 of file BucketedTimeSeries.h.
References now().
|
inline |
Definition at line 272 of file BucketedTimeSeries.h.
Referenced by folly::MultiLevelTimeSeries< VT, CT >::sum(), TEST(), and testUpdate100x10().
| VT folly::BucketedTimeSeries< VT, CT >::sum | ( | TimePoint | start, |
| TimePoint | end | ||
| ) | const |
Definition at line 281 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::forEachBucket(), folly::BucketedTimeSeries< VT, CT >::rangeAdjust(), and folly::detail::Bucket< T >::sum.
| size_t folly::BucketedTimeSeries< VT, CT >::update | ( | TimePoint | now | ) |
Definition at line 140 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::empty(), folly::BucketedTimeSeries< VT, CT >::firstTime_, folly::BucketedTimeSeries< VT, CT >::getBucketIdx(), folly::BucketedTimeSeries< VT, CT >::isAllTime(), folly::BucketedTimeSeries< VT, CT >::latestTime_, max, now(), and folly::BucketedTimeSeries< VT, CT >::updateBuckets().
Referenced by TEST(), and testUpdate100x10().
|
inline |
Definition at line 458 of file BucketedTimeSeries.h.
|
private |
Definition at line 163 of file BucketedTimeSeries-defs.h.
References folly::BucketedTimeSeries< VT, CT >::buckets_, folly::detail::Bucket< T >::clear(), folly::BucketedTimeSeries< VT, CT >::duration_, folly::BucketedTimeSeries< VT, CT >::getBucketIdx(), folly::BucketedTimeSeries< VT, CT >::getBucketInfo(), folly::BucketedTimeSeries< VT, CT >::latestTime_, now(), and folly::BucketedTimeSeries< VT, CT >::total_.
Referenced by folly::BucketedTimeSeries< VT, CT >::addValueAggregated(), and folly::BucketedTimeSeries< VT, CT >::update().
|
private |
Definition at line 487 of file BucketedTimeSeries.h.
Referenced by folly::BucketedTimeSeries< VT, CT >::addValueAggregated(), folly::BucketedTimeSeries< VT, CT >::BucketedTimeSeries(), folly::BucketedTimeSeries< VT, CT >::clear(), folly::BucketedTimeSeries< VT, CT >::forEachBucket(), folly::BucketedTimeSeries< VT, CT >::getBucketIdx(), folly::BucketedTimeSeries< VT, CT >::getBucketInfo(), and folly::BucketedTimeSeries< VT, CT >::updateBuckets().
|
private |
Definition at line 484 of file BucketedTimeSeries.h.
Referenced by folly::BucketedTimeSeries< VT, CT >::BucketedTimeSeries(), folly::BucketedTimeSeries< VT, CT >::forEachBucket(), folly::BucketedTimeSeries< VT, CT >::getBucketIdx(), folly::BucketedTimeSeries< VT, CT >::getBucketInfo(), folly::BucketedTimeSeries< VT, CT >::getEarliestTimeNonEmpty(), and folly::BucketedTimeSeries< VT, CT >::updateBuckets().
|
private |
Definition at line 482 of file BucketedTimeSeries.h.
Referenced by folly::BucketedTimeSeries< VT, CT >::addValueAggregated(), folly::BucketedTimeSeries< VT, CT >::BucketedTimeSeries(), folly::BucketedTimeSeries< VT, CT >::clear(), folly::BucketedTimeSeries< VT, CT >::forEachBucket(), folly::BucketedTimeSeries< VT, CT >::getEarliestTime(), and folly::BucketedTimeSeries< VT, CT >::update().
|
private |
Definition at line 483 of file BucketedTimeSeries.h.
Referenced by folly::BucketedTimeSeries< VT, CT >::addValueAggregated(), folly::BucketedTimeSeries< VT, CT >::BucketedTimeSeries(), folly::BucketedTimeSeries< VT, CT >::clear(), folly::BucketedTimeSeries< VT, CT >::elapsed(), folly::BucketedTimeSeries< VT, CT >::forEachBucket(), folly::BucketedTimeSeries< VT, CT >::getEarliestTimeNonEmpty(), folly::BucketedTimeSeries< VT, CT >::rangeAdjust(), folly::BucketedTimeSeries< VT, CT >::update(), and folly::BucketedTimeSeries< VT, CT >::updateBuckets().
|
private |
Definition at line 486 of file BucketedTimeSeries.h.
Referenced by folly::BucketedTimeSeries< VT, CT >::addValueAggregated(), folly::BucketedTimeSeries< VT, CT >::BucketedTimeSeries(), folly::BucketedTimeSeries< VT, CT >::clear(), folly::BucketedTimeSeries< VT, CT >::forEachBucket(), and folly::BucketedTimeSeries< VT, CT >::updateBuckets().