Структура LogHistogram Builder
pub struct LogHistogramBuilder { /* private fields */ }
tokio_unstable и функции крейта rt.Конфигурация для LogHistogram
Гистограмма с логарифмической шкалой реализует гистограмму H2, в которой первая корзина охватывает диапазон от 0 до LogHistogramBuilder::min_value, а последняя корзина охватывает значения от LogHistogramBuilder::max_value до бесконечности. Точность ограничена заданным значением LogHistogramBuilder::max_error. В частности, точность равна наименьшему следующему значению 2^-p, которое меньше запрошенной максимальной погрешности. Можно также напрямую задать p с помощью LogHistogramBuilder::precision_exact.
В зависимости от выбранных параметров необходимое количество корзин меняется. Чтобы убедиться, что размер гистограммы допустим, вызывающий код может вызвать LogHistogramBuilder::max_buckets. Если для полученной гистограммы потребуется больше корзин, метод вернёт ошибку.
Значения по умолчанию
Конфигурация по умолчанию задаёт следующие параметры:
-
min_value: 100 нс -
max_value: 68 секунд. Последняя корзина охватывает все значения >68 секунд -
precision: максимальная погрешность 25%
Для этого используются 237 64-разрядных корзин.
Реализации
impl LogHistogramBuilder
pub fn max_error(self, max_error: f64) -> Self
Задаёт точность этой гистограммы
Эта функция определяет наименьшее значение p, удовлетворяющее запрошенной точности, при котором 2^-p меньше precision. Чтобы напрямую задать p, используйте LogHistogramBuilder::precision_exact.
Точность определяет размер «групп корзин» (последовательных корзин с одинаковыми диапазонами). Если p равно 0, каждая корзина будет вдвое больше предыдущей. Чтобы повторить поведение устаревшей реализации логарифмической гистограммы, используйте builder.precision_exact(0).
Значение по умолчанию — 25% (2^-2)
Максимальная поддерживаемая точность — 0.0977% (2^-10). Меньшие переданные значения будут усечены.
Паника
-
max_error<= 0 -
max_error>= 1
pub fn precision_exact(self, p: u32) -> Self
Напрямую задаёт точность этой гистограммы.
Точность (то есть отношение n/bucket_range(n) для заданного n) будет равна 2^-p.
Точность определяет количество последовательных корзин с диапазонами одинакового размера. Если p равно 0, каждая корзина будет вдвое больше предыдущей (группы корзин будут состоять всего из одной корзины).
Чтобы повторить поведение устаревшей реализации (HistogramScale::Log), используйте builder.precision_exact(0).
Паника
-
p> 10
pub fn min_value(self, duration: Duration) -> Self
Задаёт минимальную длительность, которую эта гистограмма может хранить с высокой точностью.
Это задаёт разрешение. Размер первой корзины не будет превышать указанную длительность. Задание этого значения уменьшит необходимое количество корзин, иногда весьма существенно.
pub fn max_value(self, duration: Duration) -> Self
Задаёт максимальное значение, которое может быть представлено этой гистограммой без усечения
Значения, превышающие его, попадают в последнюю корзину, простирающуюся до u64::MAX.
Паника
Указанное значение равно 0
pub fn max_buckets( &mut self, max_buckets: usize, ) -> Result<LogHistogram, InvalidHistogramConfiguration>
Создаёт логарифмическую гистограмму, соблюдая ограничение на максимальное количество корзин
pub fn build(&self) -> LogHistogram
Создаёт логарифмическую гистограмму
Реализации трейтов
impl Clone for LogHistogramBuilder
fn clone(&self) -> LogHistogramBuilder
fn clone_from(&mut self, source: &Self)
source. Подробнее
impl Copy for LogHistogramBuilder
impl Debug for LogHistogramBuilder
impl Default for LogHistogramBuilder
fn default() -> LogHistogramBuilder
impl From<LogHistogramBuilder> for LogHistogram
fn from(value: LogHistogramBuilder) -> Self
Автоматические реализации трейтов
impl Freeze for LogHistogramBuilder
impl RefUnwindSafe for LogHistogramBuilder
impl Send for LogHistogramBuilder
impl Sync for LogHistogramBuilder
impl Unpin for LogHistogramBuilder
impl UnsafeUnpin for LogHistogramBuilder
impl UnwindSafe for LogHistogramBuilder
Обобщённые реализации
impl<T> BorrowMut<T> for Twhere T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Twhere T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)
impl<T> Instrument for T
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
impl<T> ToOwned for Twhere T: Clone,
type Owned = T
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)
impl<T> WithSubscriber for T
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Subscriber к этому типу и возвращает обёртку WithDispatch. Подробнее
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/runtime/struct.LogHistogramBuilder.html