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().