Statistics (DDSketch, Histogram)¶
Namespace: dftracer::utils::utilities::common::statistics
-
class DDSketch¶
Public Functions
-
explicit DDSketch(double relative_accuracy = 0.01)¶
-
void add(double value, double weight = 1.0)¶
-
double quantile(double q) const¶
-
void reset()¶
-
inline std::uint64_t count() const¶
-
inline bool empty() const¶
-
inline double min() const¶
-
inline double max() const¶
-
std::size_t memory_usage() const¶
-
std::vector<std::uint8_t> serialize() const¶
-
void serialize_into(std::vector<std::uint8_t> &buf) const¶
Public Static Attributes
-
static constexpr int MAX_BINS¶
-
explicit DDSketch(double relative_accuracy = 0.01)¶
-
struct FittedDistribution¶
-
struct FittedMixture¶
-
struct GmmComponent¶
-
class Log2Histogram¶
Log2-scale histogram with 65 fixed bins.
Bin 0: value == 0 Bin k (1 <= k <= 64): values in [2^(k-1), 2^k)
Covers the full uint64_t range (0 to 2^63). Suitable for both microsecond durations and byte sizes.
Public Functions
-
Log2Histogram() = default¶
-
void add(std::uint64_t value, std::uint64_t count = 1)¶
-
void merge(const Log2Histogram &other)¶
-
double approx_percentile(double p) const¶
-
std::string render_ascii(std::size_t max_width, const std::string &unit) const¶
-
std::string render_blocks(std::size_t max_width, const std::string &unit, const std::string &indent = " ") const¶
-
std::string to_json() const¶
-
std::string to_json_detailed() const¶
-
inline std::uint64_t total_count() const¶
Public Static Functions
-
static Log2Histogram from_json(const std::string &json)¶
-
static std::size_t bin_index(std::uint64_t value)¶
-
static std::uint64_t bin_lower(std::size_t bin)¶
-
static std::uint64_t bin_upper(std::size_t bin)¶
Public Static Attributes
-
static constexpr std::size_t NUM_BINS¶
-
Log2Histogram() = default¶
-
struct MixtureFitOptions¶
-
struct ModelSelection¶
-
class Statistic¶
-
class TimestampHistogram¶
Public Functions
-
TimestampHistogram() = default¶
-
void add(std::uint64_t timestamp_us)¶
-
void merge(const TimestampHistogram &other)¶
-
std::uint64_t count_in_range(std::uint64_t ts_start_us, std::uint64_t ts_end_us) const¶
-
double selectivity(std::uint64_t ts_start_us, std::uint64_t ts_end_us) const¶
-
std::vector<double> expansion_weights(std::uint64_t bucket_start_us, std::uint64_t bucket_end_us, std::size_t num_sub_buckets) const¶
-
std::vector<std::uint8_t> serialize() const¶
-
inline std::uint64_t total_count() const¶
-
inline bool empty() const¶
-
inline std::size_t num_bins() const¶
-
inline const std::vector<std::pair<std::uint64_t, std::uint64_t>> &bins() const¶
Public Static Functions
-
static TimestampHistogram deserialize(const std::uint8_t *data, std::size_t len)¶
-
static inline std::uint64_t bin_index(std::uint64_t timestamp_us)¶
-
static inline std::uint64_t bin_start_us(std::uint64_t bin_idx)¶
-
static inline std::uint64_t bin_end_us(std::uint64_t bin_idx)¶
Public Static Attributes
-
static constexpr std::uint64_t BIN_WIDTH_US¶
-
TimestampHistogram() = default¶
Free Functions¶
-
std::optional<FittedDistribution> dftracer::utils::utilities::common::statistics::best_fit_by_ks(const std::vector<FittedDistribution> &fits)¶
-
double dftracer::utils::utilities::common::statistics::cdf(const FittedDistribution &fit, double x)¶
-
double dftracer::utils::utilities::common::statistics::cdf(const FittedMixture &mix, double x)¶
-
double dftracer::utils::utilities::common::statistics::cdf(const BestModel &m, double x)¶
-
std::string_view dftracer::utils::utilities::common::statistics::distribution_name(DistributionKind k)¶
-
std::vector<FittedDistribution> dftracer::utils::utilities::common::statistics::fit_all_single_distributions(const std::vector<double> &data)¶
-
FittedMixture dftracer::utils::utilities::common::statistics::fit_gaussian_mixture(const std::vector<double> &data, int K, const MixtureFitOptions &options = {})¶
-
FittedDistribution dftracer::utils::utilities::common::statistics::fit_single_distribution(DistributionKind kind, const std::vector<double> &data)¶
-
int dftracer::utils::utilities::common::statistics::free_parameter_count(DistributionKind kind)¶
-
int dftracer::utils::utilities::common::statistics::free_parameter_count(const FittedMixture &mix)¶
-
Sampler dftracer::utils::utilities::common::statistics::make_sampler(const FittedDistribution &fit, std::optional<double> min_bound = std::nullopt, std::optional<double> max_bound = std::nullopt)¶
-
Sampler dftracer::utils::utilities::common::statistics::make_sampler(const FittedMixture &mix, std::optional<double> min_bound = std::nullopt, std::optional<double> max_bound = std::nullopt)¶
-
Sampler dftracer::utils::utilities::common::statistics::make_sampler(const BestModel &m, std::optional<double> min_bound = std::nullopt, std::optional<double> max_bound = std::nullopt)¶
-
double dftracer::utils::utilities::common::statistics::pdf(const FittedDistribution &fit, double x)¶
-
double dftracer::utils::utilities::common::statistics::pdf(const FittedMixture &mix, double x)¶
-
double dftracer::utils::utilities::common::statistics::pdf(const BestModel &m, double x)¶
-
double dftracer::utils::utilities::common::statistics::quantile(const FittedDistribution &fit, double p)¶
-
std::optional<ModelSelection> dftracer::utils::utilities::common::statistics::select_best_model(const std::vector<FittedDistribution> &single_fits, const std::vector<FittedMixture> &mixtures)¶