<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/library/cpp/monlib/dynamic_counters, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2026-03-19T11:58:08Z</updated>
<entry>
<title>add removing metrics from default set</title>
<updated>2026-03-19T11:58:08Z</updated>
<author>
<name>deruzh</name>
<email>deruzh@yandex-team.com</email>
</author>
<published>2026-03-19T10:51:58Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b329824e21fbce7109b988fa00781ece307d8983'/>
<id>urn:sha1:b329824e21fbce7109b988fa00781ece307d8983</id>
<content type='text'>
### Описание
В данном PR реализован механизм базовой фильтрации метрик в Unified Agent. Цель — по умолчанию исключать некоторые "тяжелые" или избыточные метрики для снижения нагрузки, оставляя при этом возможность запросить полный набор.

**Основные изменения:**
* **Новый пресет фильтрации:** В `ESetParameter` добавлен режим `basic`. В отличие от `minimal` и `advanced`, работающих по принципу "белого списка" (allowlist), режим `basic` работает как "черный список" (blocklist) и исключает только заданные метрики.
* **Черный список по умолчанию:** Реализована функция `GetDefaultBlockedMetricNames()`. На данный момент в этот список добавлена метрика `UnacknowledgedBytes`.
* **Логика фильтрации:** Обновлен класс `TCountersFilter`. Теперь методы `GetAllowedNames` и `GetBlockedNames` используют единый `switch-case` по значениям `ESetParameter`. Если параметр `@set` пуст или не распознан, по умолчанию применяется поведение пресета `basic`. Пресет `all` корректно отключает любую фильтрацию.
* **Изменение дефолтного поведения:** Для плагина `agent_metrics_input` значение по умолчанию в поле `Preset` изменено на `basic`. Теперь `TCountersFilter` инстанцируется и применяется всегда, гарантируя консистентную фильтрацию.

**Тестирование:**
* В конфигурацию `test_counters_set_parameter.yml` добавлен `fs` storage и пайплайн для отправки данных через него. Это было необходимо, чтобы агент начал генерировать метрику `UnacknowledgedBytes`, связанную с файловым хранилищем.
* В `generic_tests.cpp` значительно переработан `TestCountersSetParameter`. Чтобы избежать "мигания" (flakiness) тестов из-за меняющихся значений счетчиков или появления служебных логов (например, `RecordsReceived`), реализована кастомная функция `getSensorSchema`. Она извлекает и сравнивает только структуру метрик (`kind` и `labels`), игнорируя их числовые значения.
* Добавлены строгие ассерты: тест проверяет, что метрика `UnacknowledgedBytes` **отсутствует** при базовом запросе (или при `?@set=basic`), но **гарантированно присутствует** при явном запросе `?@set=all`.
commit_hash:78b757d4c55f496e0f041ddfba8f385784b46881
</content>
</entry>
<entry>
<title>avoid clashing of counters params</title>
<updated>2026-03-10T08:45:02Z</updated>
<author>
<name>xenoxeno</name>
<email>xenoxeno@yandex-team.com</email>
</author>
<published>2026-03-10T08:24:41Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=a52478e475ee43363a4610f2b15a98f4c7468872'/>
<id>urn:sha1:a52478e475ee43363a4610f2b15a98f4c7468872</id>
<content type='text'>
commit_hash:1d15aa793cf4d50dfdab33d413cdb8480b35080a
</content>
</entry>
<entry>
<title>Enhance library/cpp/monlib exception verbosity for debugging</title>
<updated>2026-02-27T08:46:39Z</updated>
<author>
<name>ydynnikov</name>
<email>ydynnikov@yandex-team.com</email>
</author>
<published>2026-02-27T08:19:31Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=dd6207e99ab45fa85073d60ca22fdd9c7527f8ff'/>
<id>urn:sha1:dd6207e99ab45fa85073d60ca22fdd9c7527f8ff</id>
<content type='text'>
Этот эксепшн ронял YDB RU PRESTABLE минимум дважды:
\- 2025-09-10 &lt;https://nda.ya.ru/t/VerKgHXk7VTLyV&gt;
\- 2026-02-19 &lt;https://nda.ya.ru/t/uhTY2yqK7UtBen&gt;

Патч призван упростить отладку падений и поиски руткоза
commit_hash:72d859bae3ab265a2807e566c763bfb70a92a61a
</content>
</entry>
<entry>
<title>Allow FindSubgroup in dynamic counters to find unknown values</title>
<updated>2025-11-26T08:47:12Z</updated>
<author>
<name>snaury</name>
<email>snaury@yandex-team.com</email>
</author>
<published>2025-11-26T07:25:09Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=11e71471c53a5a834d5386bcd803c0cc4950e8f6'/>
<id>urn:sha1:11e71471c53a5a834d5386bcd803c0cc4950e8f6</id>
<content type='text'>
YDB использует динамическое дерево счётчиков с множеством опциональных лейблов после идентификатора сервиса, которые могут появляться и меняться. Сервисы при регистрации пытаются найти в каком узле дерева регистрировать счётчики пропуская эти опциональные лейблы, если они уже существуют. Исторически такой пропуск работает через `EnumerateSubgroups`, однако обнаружилось, что если сразу после опциональных лейблов дерево очень сильно ветвится (например по номерам групп в dsproxy), то при регистрации большого кол-ва счётчиков по группам эта регистрация становится квадратичной от количества групп. Хочется добавить новый метод `FindSubgroup(TString)` чтобы искать пропускаемые лейблы за `O(log N)` вместо `O(N)`.
commit_hash:7ce074f58a3a90caf535d8fad24eef7ac6782d06
</content>
</entry>
<entry>
<title>Минимальные и расширенные наборы метрик в ручке /counters</title>
<updated>2025-09-06T20:39:37Z</updated>
<author>
<name>hobbit</name>
<email>hobbit@yandex-team.com</email>
</author>
<published>2025-09-06T20:24:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=f48a2de3862141328a4a55d9e62c929eea1c8db4'/>
<id>urn:sha1:f48a2de3862141328a4a55d9e62c929eea1c8db4</id>
<content type='text'>
commit_hash:7540b71c453d05401c539b0f22cd489831fdfa20
</content>
</entry>
<entry>
<title>Add missing Collect method to THistogramCounter</title>
<updated>2025-04-22T09:50:51Z</updated>
<author>
<name>eivanov89</name>
<email>eivanov89@yandex-team.com</email>
</author>
<published>2025-04-22T09:28:54Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3fbc0ac208bdd777ebadfe80a34bee4c1aa2be61'/>
<id>urn:sha1:3fbc0ac208bdd777ebadfe80a34bee4c1aa2be61</id>
<content type='text'>
by @va-kuznecov
commit_hash:26d8159e9bd33f1dd9471154655b861b203dbe10
</content>
</entry>
<entry>
<title>refactor counters page to better support ic-proxy</title>
<updated>2025-04-17T05:57:11Z</updated>
<author>
<name>xenoxeno</name>
<email>xenoxeno@yandex-team.com</email>
</author>
<published>2025-04-17T05:44:00Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=178e735a3bd3caf1caa42d4a64fa0935ce51ce4f'/>
<id>urn:sha1:178e735a3bd3caf1caa42d4a64fa0935ce51ce4f</id>
<content type='text'>
commit_hash:d6538967a151a3aba3c806d3d1ba3f4c7ef1ae47
</content>
</entry>
<entry>
<title>Virtual CreateEncoder in TDynamicCountersPage</title>
<updated>2024-10-08T10:34:18Z</updated>
<author>
<name>iddqd</name>
<email>iddqd@yandex-team.com</email>
</author>
<published>2024-10-08T10:17:57Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=6abf3dab1cfdf59a54401d9881bda44841003491'/>
<id>urn:sha1:6abf3dab1cfdf59a54401d9881bda44841003491</id>
<content type='text'>
Идея в том, чтобы фильтровать нулевые метрики на выводе при помощи вот такого класса: &lt;HIDDEN_URL&gt;
commit_hash:296137b0e9503a932eeb1bd5586772c9e4d6c1f8
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2024-07-19T14:41:55Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2024-07-19T14:30:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b48cb40b16a2a26d360ddcb809dcbf48a3843513'/>
<id>urn:sha1:b48cb40b16a2a26d360ddcb809dcbf48a3843513</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat contrib: aiogram 3</title>
<updated>2024-01-19T10:10:03Z</updated>
<author>
<name>armenqa</name>
<email>armenqa@yandex-team.com</email>
</author>
<published>2024-01-19T09:23:50Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=2de0149d0151c514b22bca0760b95b26c9b0b578'/>
<id>urn:sha1:2de0149d0151c514b22bca0760b95b26c9b0b578</id>
<content type='text'>
Relates: https://st.yandex-team.ru/, https://st.yandex-team.ru/
</content>
</entry>
</feed>
