Skip to content

ОтелФабрикаПростыхРезервуаров ​

Фабрика простых резервуаров exemplars фиксированного размера (SimpleFixedSizeExemplarReservoir).

Описание ​

Фабрику передают в параметр РезервуарЭкземпляров представления, чтобы задать, сколько exemplars хранит точка данных потока. SDK вызывает СоздатьРезервуар() для каждой серии потока (набора атрибутов точки данных): у каждой серии свой резервуар. Резервуар хранит exemplars одного интервала сбора: после сбора читателем серия получает новый резервуар, поэтому exemplars точки взяты из измерений, записанных после предыдущего сбора.

Резервуар хранит не больше Размер exemplars. Первые Размер предложенных резервуару измерений сохраняются подряд, далее N-е измерение заменяет случайно выбранный exemplar с вероятностью Размер/N (равномерная выборка, Algorithm R): у каждого измерения интервала равные шансы попасть в exemplars.

Exemplar содержит значение измерения, время записи в резервуар, идентификаторы трассировки и спана, если измерение записано в контексте спана, и атрибуты измерения, которых нет в атрибутах серии (filteredAttributes), — например, отброшенные представлением через РазрешенныеКлючиАтрибутов или ИсключенныеКлючиАтрибутов. Наблюдения асинхронных инструментов предлагаются резервуару при сборе и идентификаторов трассировки и спана не содержат.

Резервуару предлагаются только измерения, которые пропустил фильтр exemplars провайдера (ОтелФильтрЭкземпляров): по умолчанию — записанные в контексте сэмплированного спана. При фильтре ВсегдаВыключен() резервуары не создаются.

Резервуар по умолчанию ​

Если View не задал РезервуарЭкземпляров, фабрику выбирает SDK по агрегации потока (спецификация Metrics SDK, раздел Exemplar defaults):

Агрегация потокаФабрика резервуаров
Явная гистограмма хотя бы с одной границейОтелФабрикаВыровненныхРезервуаровГистограммы с границами гистограммы
Экспоненциальная гистограммаОтелФабрикаПростыхРезервуаров размера min(20, МаксБакетов)
Отбросить (drop)нет: у потока нет ни точек данных, ни exemplars
Сумма, последнее значение, явная гистограмма с пустым массивом границОтелФабрикаПростыхРезервуаров размера 1

Конструктор ​

bsl
Новый ОтелФабрикаПростыхРезервуаров(Размер)
ПараметрТипПо умолчаниюОписание
РазмерЧисло1Максимальное число exemplars в резервуаре серии

Методы ​

СоздатьРезервуар ​

Создаёт новый резервуар размера Размер. SDK вызывает метод для каждой серии потока на каждый интервал сбора.

Возвращает: ОтелРезервуарЭкземпляров — новый резервуар


Размер ​

Возвращает размер создаваемых резервуаров.

Возвращает: Число — максимальное число exemplars в резервуаре

Пример ​

bsl
// До пяти exemplars на точку данных счётчика запросов
Представление = Новый ОтелПредставление(, , , , , ,
    Новый ОтелФабрикаПростыхРезервуаров(5)); // РезервуарЭкземпляров

Провайдер = Новый ОтелПостроительПровайдераМетрик()
    .ЗарегистрироватьЧитатель(Читатель)
    .ЗарегистрироватьПредставление(Новый ОтелСелекторИнструментов("http.server.requests"), Представление)
    .Построить();

См. также ​