ОтелФабрикаВыровненныхРезервуаровГистограммы
Фабрика резервуаров exemplars, выровненных по бакетам гистограммы (AlignedHistogramBucketExemplarReservoir).
Описание
SDK использует эту фабрику по умолчанию для потоков с агрегацией явной гистограммы хотя бы с одной границей (больше одного бакета), с теми же границами, что у гистограммы потока. Резервуары других агрегаций перечислены в разделе Резервуар по умолчанию страницы ОтелФабрикаПростыхРезервуаров. Явно фабрику передают в параметр РезервуарЭкземпляровпредставления, например чтобы exemplars экспоненциальной гистограммы распределялись по заданным диапазонам значений.
SDK вызывает СоздатьРезервуар() для каждой серии потока (набора атрибутов точки данных): у каждой серии свой резервуар. Резервуар хранит exemplars одного интервала сбора: после сбора читателем серия получает новый резервуар.
Резервуар хранит не больше одного exemplar на бакет: слотов на один больше, чем границ, последний — для значений больше последней границы. Измерение попадает в бакет первой границы, которая не меньше значения: значение, равное границе, попадает в бакет этой границы, как в явной гистограмме. N-е измерение бакета заменяет сохранённый exemplar с вероятностью 1/N (равномерная выборка): у каждого измерения бакета за интервал равные шансы. Exemplar содержит то же, что у простого резервуара: значение, время, идентификаторы трассировки и спана и атрибуты измерения, которых нет в атрибутах серии (filteredAttributes).
Резервуару предлагаются только измерения, которые пропустил фильтр exemplars провайдера (ОтелФильтрЭкземпляров): по умолчанию — записанные в контексте сэмплированного спана. При фильтре ВсегдаВыключен() резервуары не создаются.
Границы должны идти по возрастанию: фабрика и резервуар их не сортируют. Чтобы exemplars совпадали с бакетами явной гистограммы, передайте те же границы, что у гистограммы потока.
Конструктор
Новый ОтелФабрикаВыровненныхРезервуаровГистограммы(Границы)| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
Границы | Массив из Число | — | Границы бакетов по возрастанию — в том же формате, что ГраницыГистограммы представления |
Методы
СоздатьРезервуар
Создаёт новый резервуар с границами Границы. SDK вызывает метод для каждой серии потока на каждый интервал сбора.
Возвращает: ОтелВыровненныйРезервуарГистограммы — новый резервуар
Границы
Возвращает границы бакетов, с которыми создаются резервуары.
Возвращает: Массив — массив, переданный в конструктор
Пример
// Экспоненциальная гистограмма задержки: exemplars по одному на диапазон значений
Границы = Новый Массив();
Границы.Добавить(0.1);
Границы.Добавить(0.5);
Границы.Добавить(1);
Представление = Новый ОтелПредставление(, , , ,
ОтелАгрегация.ГистограммаЭкспоненциальная(), // Агрегация
, // ИсключенныеКлючиАтрибутов
Новый ОтелФабрикаВыровненныхРезервуаровГистограммы(Границы)); // РезервуарЭкземпляров
Провайдер = Новый ОтелПостроительПровайдераМетрик()
.ЗарегистрироватьЧитатель(Читатель)
.ЗарегистрироватьПредставление(Новый ОтелСелекторИнструментов("http.server.duration"), Представление)
.Построить();