| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2,6 +2,7 @@ | |||
| 2 | 2 | 'variables': { | |
| 3 | 3 | 'histogram_sources': [ | |
| 4 | 4 | 'src/hdr_histogram.c', | |
| 5 | + 'include/hdr/hdr_histogram.h', | ||
| 5 | 6 | ] | |
| 6 | 7 | }, | |
| 7 | 8 | 'targets': [ | |
@@ -12,9 +13,9 @@ | |||
| 12 | 13 | 'xcode_settings': { | |
| 13 | 14 | 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden | |
| 14 | 15 | }, | |
| 15 | - 'include_dirs': ['src'], | ||
| 16 | + 'include_dirs': ['src', 'include'], | ||
| 16 | 17 | 'direct_dependent_settings': { | |
| 17 | - 'include_dirs': [ 'src' ] | ||
| 18 | + 'include_dirs': [ 'src', 'include' ] | ||
| 18 | 19 | }, | |
| 19 | 20 | 'sources': [ | |
| 20 | 21 | '<@(histogram_sources)', | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -16,7 +16,7 @@ | |||
| 16 | 16 | ||
| 17 | 17 | struct hdr_histogram | |
| 18 | 18 | { | |
| 19 | - int64_t lowest_trackable_value; | ||
| 19 | + int64_t lowest_discernible_value; | ||
| 20 | 20 | int64_t highest_trackable_value; | |
| 21 | 21 | int32_t unit_magnitude; | |
| 22 | 22 | int32_t significant_figures; | |
@@ -45,21 +45,21 @@ extern "C" { | |||
| 45 | 45 | * involved math on the input parameters this function it is tricky to stack allocate. | |
| 46 | 46 | * The histogram should be released with hdr_close | |
| 47 | 47 | * | |
| 48 | - * @param lowest_trackable_value The smallest possible value to be put into the | ||
| 49 | - * histogram. | ||
| 48 | + * @param lowest_discernible_value The smallest possible value that is distinguishable from 0. | ||
| 49 | + * Must be a positive integer that is >= 1. May be internally rounded down to nearest power of 2. | ||
| 50 | 50 | * @param highest_trackable_value The largest possible value to be put into the | |
| 51 | 51 | * histogram. | |
| 52 | 52 | * @param significant_figures The level of precision for this histogram, i.e. the number | |
| 53 | 53 | * of figures in a decimal number that will be maintained. E.g. a value of 3 will mean | |
| 54 | 54 | * the results from the histogram will be accurate up to the first three digits. Must | |
| 55 | 55 | * be a value between 1 and 5 (inclusive). | |
| 56 | 56 | * @param result Output parameter to capture allocated histogram. | |
| 57 | - * @return 0 on success, EINVAL if lowest_trackable_value is < 1 or the | ||
| 57 | + * @return 0 on success, EINVAL if lowest_discernible_value is < 1 or the | ||
| 58 | 58 | * significant_figure value is outside of the allowed range, ENOMEM if malloc | |
| 59 | 59 | * failed. | |
| 60 | 60 | */ | |
| 61 | 61 | int hdr_init( | |
| 62 | - int64_t lowest_trackable_value, | ||
| 62 | + int64_t lowest_discernible_value, | ||
| 63 | 63 | int64_t highest_trackable_value, | |
| 64 | 64 | int significant_figures, | |
| 65 | 65 | struct hdr_histogram** result); | |
@@ -159,27 +159,27 @@ bool hdr_record_values_atomic(struct hdr_histogram* h, int64_t value, int64_t co | |||
| 159 | 159 | * Record a value in the histogram and backfill based on an expected interval. | |
| 160 | 160 | * | |
| 161 | 161 | * Records a value in the histogram, will round this value of to a precision at or better | |
| 162 | - * than the significant_figure specified at contruction time. This is specifically used | ||
| 162 | + * than the significant_figure specified at construction time. This is specifically used | ||
| 163 | 163 | * for recording latency. If the value is larger than the expected_interval then the | |
| 164 | 164 | * latency recording system has experienced co-ordinated omission. This method fills in the | |
| 165 | - * values that would have occured had the client providing the load not been blocked. | ||
| 165 | + * values that would have occurred had the client providing the load not been blocked. | ||
| 166 | 166 | ||
| 167 | 167 | * @param h "This" pointer | |
| 168 | 168 | * @param value Value to add to the histogram | |
| 169 | 169 | * @param expected_interval The delay between recording values. | |
| 170 | 170 | * @return false if the value is larger than the highest_trackable_value and can't be recorded, | |
| 171 | 171 | * true otherwise. | |
| 172 | 172 | */ | |
| 173 | - bool hdr_record_corrected_value(struct hdr_histogram* h, int64_t value, int64_t expexcted_interval); | ||
| 173 | + bool hdr_record_corrected_value(struct hdr_histogram* h, int64_t value, int64_t expected_interval); | ||
| 174 | 174 | ||
| 175 | 175 | /** | |
| 176 | 176 | * Record a value in the histogram and backfill based on an expected interval. | |
| 177 | 177 | * | |
| 178 | 178 | * Records a value in the histogram, will round this value of to a precision at or better | |
| 179 | - * than the significant_figure specified at contruction time. This is specifically used | ||
| 179 | + * than the significant_figure specified at construction time. This is specifically used | ||
| 180 | 180 | * for recording latency. If the value is larger than the expected_interval then the | |
| 181 | 181 | * latency recording system has experienced co-ordinated omission. This method fills in the | |
| 182 | - * values that would have occured had the client providing the load not been blocked. | ||
| 182 | + * values that would have occurred had the client providing the load not been blocked. | ||
| 183 | 183 | * | |
| 184 | 184 | * Will record this value atomically, however the whole structure may appear inconsistent | |
| 185 | 185 | * when read concurrently with this update. Do NOT mix calls to this method with calls | |
@@ -191,7 +191,7 @@ bool hdr_record_corrected_value(struct hdr_histogram* h, int64_t value, int64_t | |||
| 191 | 191 | * @return false if the value is larger than the highest_trackable_value and can't be recorded, | |
| 192 | 192 | * true otherwise. | |
| 193 | 193 | */ | |
| 194 | - bool hdr_record_corrected_value_atomic(struct hdr_histogram* h, int64_t value, int64_t expexcted_interval); | ||
| 194 | + bool hdr_record_corrected_value_atomic(struct hdr_histogram* h, int64_t value, int64_t expected_interval); | ||
| 195 | 195 | ||
| 196 | 196 | /** | |
| 197 | 197 | * Record a value in the histogram 'count' times. Applies the same correcting logic | |
@@ -226,7 +226,7 @@ bool hdr_record_corrected_values_atomic(struct hdr_histogram* h, int64_t value, | |||
| 226 | 226 | /** | |
| 227 | 227 | * Adds all of the values from 'from' to 'this' histogram. Will return the | |
| 228 | 228 | * number of values that are dropped when copying. Values will be dropped | |
| 229 | - * if they around outside of h.lowest_trackable_value and | ||
| 229 | + * if they around outside of h.lowest_discernible_value and | ||
| 230 | 230 | * h.highest_trackable_value. | |
| 231 | 231 | * | |
| 232 | 232 | * @param h "This" pointer | |
@@ -238,7 +238,7 @@ int64_t hdr_add(struct hdr_histogram* h, const struct hdr_histogram* from); | |||
| 238 | 238 | /** | |
| 239 | 239 | * Adds all of the values from 'from' to 'this' histogram. Will return the | |
| 240 | 240 | * number of values that are dropped when copying. Values will be dropped | |
| 241 | - * if they around outside of h.lowest_trackable_value and | ||
| 241 | + * if they around outside of h.lowest_discernible_value and | ||
| 242 | 242 | * h.highest_trackable_value. | |
| 243 | 243 | * | |
| 244 | 244 | * @param h "This" pointer | |
@@ -272,6 +272,18 @@ int64_t hdr_max(const struct hdr_histogram* h); | |||
| 272 | 272 | */ | |
| 273 | 273 | int64_t hdr_value_at_percentile(const struct hdr_histogram* h, double percentile); | |
| 274 | 274 | ||
| 275 | + /** | ||
| 276 | + * Get the values at the given percentiles. | ||
| 277 | + * | ||
| 278 | + * @param h "This" pointer. | ||
| 279 | + * @param percentiles The ordered percentiles array to get the values for. | ||
| 280 | + * @param length Number of elements in the arrays. | ||
| 281 | + * @param values Destination array containing the values at the given percentiles. | ||
| 282 | + * The values array should be allocated by the caller. | ||
| 283 | + * @return 0 on success, ENOMEM if the provided destination array is null. | ||
| 284 | + */ | ||
| 285 | + int hdr_value_at_percentiles(const struct hdr_histogram *h, const double *percentiles, int64_t *values, size_t length); | ||
| 286 | + | ||
| 275 | 287 | /** | |
| 276 | 288 | * Gets the standard deviation for the values in the histogram. | |
| 277 | 289 | * | |
@@ -465,7 +477,7 @@ int hdr_percentiles_print( | |||
| 465 | 477 | */ | |
| 466 | 478 | struct hdr_histogram_bucket_config | |
| 467 | 479 | { | |
| 468 | - int64_t lowest_trackable_value; | ||
| 480 | + int64_t lowest_discernible_value; | ||
| 469 | 481 | int64_t highest_trackable_value; | |
| 470 | 482 | int64_t unit_magnitude; | |
| 471 | 483 | int64_t significant_figures; | |
@@ -478,7 +490,7 @@ struct hdr_histogram_bucket_config | |||
| 478 | 490 | }; | |
| 479 | 491 | ||
| 480 | 492 | int hdr_calculate_bucket_config( | |
| 481 | - int64_t lowest_trackable_value, | ||
| 493 | + int64_t lowest_discernible_value, | ||
| 482 | 494 | int64_t highest_trackable_value, | |
| 483 | 495 | int significant_figures, | |
| 484 | 496 | struct hdr_histogram_bucket_config* cfg); | |
@@ -492,7 +504,7 @@ int64_t hdr_next_non_equivalent_value(const struct hdr_histogram* h, int64_t val | |||
| 492 | 504 | int64_t hdr_median_equivalent_value(const struct hdr_histogram* h, int64_t value); | |
| 493 | 505 | ||
| 494 | 506 | /** | |
| 495 | - * Used to reset counters after importing data manuallying into the histogram, used by the logging code | ||
| 507 | + * Used to reset counters after importing data manually into the histogram, used by the logging code | ||
| 496 | 508 | * and other custom serialisation tools. | |
| 497 | 509 | */ | |
| 498 | 510 | void hdr_reset_internal_counters(struct hdr_histogram* h); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,11 @@ | |||
| 1 | + /** | ||
| 2 | + * @file hdr_histogram_version.h | ||
| 3 | + * @brief Definitions for HdrHistogram's version number. | ||
| 4 | + */ | ||
| 5 | + | ||
| 6 | + #ifndef HDR_HISTOGRAM_VERSION_H | ||
| 7 | + #define HDR_HISTOGRAM_VERSION_H | ||
| 8 | + | ||
| 9 | + #define HDR_HISTOGRAM_VERSION "0.11.7" | ||
| 10 | + | ||
| 11 | + #endif // HDR_HISTOGRAM_VERSION_H | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments