| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
commit_hash:c4281bc281cdaef6bf0188500e82848c582cc5ad
|
| |
|
|
| |
commit_hash:b8e5120d089fefb3429f136699614ed9ea813c21
|
| |
|
|
| |
commit_hash:aabae6689eefb68ae794cbbd0f3696e2a1477c46
|
| |
|
|
| |
commit_hash:7204f6d279e6660168d497e5fc43a8fd6a21acaa
|
| |
|
|
| |
commit_hash:01073d5debabb2b7da51639f6d5137155132d193
|
| |
|
|
| |
commit_hash:2dc93ed29e97d41720a18d0ecfa09b01271269a9
|
| |
|
|
| |
commit_hash:e71661ee774f94e598456363e42562c658cce049
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
---
> If this change is not needed to be mentioned in release notes then just remove changelog entry.
> If this change is needed to be mentioned in release notes then please add changelog entry at the end of pull request description, using this format:
>
> * Changelog entry
> Type: ? # fix/feature (Select one value, example: `Type: fix`)
> Component: ? # master/proxy/scheduler/dynamic-tables/controller-agent/queue-agent/query-tracker
> # map-reduce/misc-server/odin/spyt/chyt/strawberry/python-sdk/python-yson/python-rpc-bindings/java-sdk
> # cpp-sdk/go-sdk/cms/excel/cron/microservices (Select one value, example: `Component: scheduler`)
> Description of this change which will be added in release notes.
* Changelog entry
Type: fix
Component: logging
`clang` gets confused with the extra slash and keeps failing
```
In file included from /workspace/third_party/ytsaurus-cpp-sdk/library/cpp/yt/logging/plain_text_formatter/formatter.h:5:
/workspace/third_party/ytsaurus-cpp-sdk/library/cpp/yt/logging//logger.h:81:1: error: redefinition of 'GetEnumTraitsImpl'
...
/workspace/third_party/ytsaurus-cpp-sdk/library/cpp/yt/logging/logger.h:81:1: note: previous definition is here
81 | DEFINE_ENUM(ELogMessageKind,
```
---
Pull Request resolved: https://github.com/ytsaurus/ytsaurus/pull/1535
Co-authored-by: Mikhail Galanin <[email protected]>
commit_hash:f14a084dba2c641ddcf218c76b8f5a9725579268
|
| |
|
|
| |
commit_hash:ea34eba995ae4c386785fe89df58c439a2e3ea63
|
| |
|
|
| |
commit_hash:87d58b607116761d64ac6490f3a8f848b1693421
|
| |
|
|
| |
commit_hash:23f13c42c9704ad363c563c7f56de53d3f1dfeee
|
| |
|
|
| |
commit_hash:f4cebea4a1e97ab52be1c0d3c91ec4a1a0de6a39
|
| |
|
|
| |
commit_hash:9c39c2ba0ff9c555e6f5da0bbe3d8be5a04d6654
|
| |
|
|
| |
commit_hash:7e3ec2bd0192e54b53bf7eec2a3c819e0a95c7c4
|
| |
|
|
|
| |
allows to write `TCgiParameters{}.InsertUnsecaped("a", "b").InsertUnsecaped("c", "d").Print()`
commit_hash:21878d01bd3599eb493d8f48a57c0ec8ae4a0e17
|
| |
|
|
| |
commit_hash:785d73458fcb036340236b123b33a6f3b0b1c1ce
|
| |
|
|
| |
commit_hash:dd2be4d0024c7e7a11241e359cf22c5cf7b68022
|
| |
|
|
| |
commit_hash:157f66ff537cdeacc7bb533b1e6c4e2f848d20c2
|
| |
|
|
| |
commit_hash:7aa64b77859b5f8f830901df680f57049ccd30ac
|
| |
|
|
| |
commit_hash:9c7440543104a49acca845c08d85e49c4f8eb854
|
| |
|
|
|
|
| |
keys in TAsyncExpiringCache
commit_hash:94c7b2f6b585daa4f3ff011c701500987b972356
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
## Summary
Eliminated all dangerous c_str() patterns from unified_agent by migrating to modern YLOG_*_F formatting.
## Changes
- Remove .c_str() on temporaries in YLOG_*_F macros (1 fix)
- Migrate YLOG_*(Sprintf(...)) to modern YLOG_*_F(...) (23 fixes)
## Benefits
- Modern C++20 type-safe formatting with std::format
- Cleaner, more maintainable code (40% less in some cases)
- Better performance (no Sprintf overhead)
commit_hash:ee3f665ccc823d9e2165a90c036e5bd887cd179e
|
| |
|
|
| |
commit_hash:b24f13dff6888e5a6e57cda3ad80e5273dd7661e
|
| |
|
|
|
|
|
|
|
| |
Хочется извлечь spanId из орбиты - для этого удобнее всего пройтись по всем шаттлам орбиты и собрать их spanId.
Уже реализована функция `void ForEachShuttle(ui64 traceIdx, TFunc&& func)`, но она требует `traceIdx`, который не всегда можно легко достать. Поэтому добавляю отдельную функцию для итерации по всем шаттлам орбиты.
ПР в котором используется новая функциональность: https://github.com/ydb-platform/nbs/pull/4730
commit_hash:ec94a22da98b998f53f7456d5bcf116a7b5b88e6
|
| |
|
|
|
|
|
| |
See full description in separate comment.
The open source part is to add implementation for formatter specialization for TString.
commit_hash:9501df4a7287050b72162b80823d5cbbd1d7464f
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
eventlog scope
- fix StdThreadLocalImpl -- make static state refcounted, there is no guarantee that static fields will outlive threads or TThreadLocalValues;
- replace thread local values to generic local storage value in some places;
- call runtime Init and replace local values factory;
- don't disable NCurrentThreadEventlog for ytxx runtime, it should now work;
- ensure generic local storage values are allocated after runtime init;
- use function-scope static variables to prevent issues with order of construction and destruction;
- basesearch now almost works with coroutines (with NProfile disabled).
commit_hash:7fde81591b0dbc3a53b8d1cb11bb96930a2e9a80
|
| |
|
|
| |
commit_hash:10106fd04f0a11a13521c191b1b9f6fd3a5b2422
|
| |
|
|
|
| |
YDB динамически регистрирует страницы запускающихся акторов в некоторых сервисах, при этом страницы в индексе хочется иметь сортированными. При одновременной регистрации большого кол-ва акторов множественные вызовы SortPages приводят к тому, что их регистрация растёт квадратично. Мне кажется лучше откладывать сортировку страниц до следующего рендера.
commit_hash:22e547b6c8d2ce0c1fabebe985793520ec932f30
|
| |
|
|
|
| |
YDB использует динамическое дерево счётчиков с множеством опциональных лейблов после идентификатора сервиса, которые могут появляться и меняться. Сервисы при регистрации пытаются найти в каком узле дерева регистрировать счётчики пропуская эти опциональные лейблы, если они уже существуют. Исторически такой пропуск работает через `EnumerateSubgroups`, однако обнаружилось, что если сразу после опциональных лейблов дерево очень сильно ветвится (например по номерам групп в dsproxy), то при регистрации большого кол-ва счётчиков по группам эта регистрация становится квадратичной от количества групп. Хочется добавить новый метод `FindSubgroup(TString)` чтобы искать пропускаемые лейблы за `O(log N)` вместо `O(N)`.
commit_hash:7ce074f58a3a90caf535d8fad24eef7ac6782d06
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#### Проблема
Из TOptsParseResult сейчас невозможно понять, какую команду вызвали.
Существует метод [GetProgrammName](https://nda.ya.ru/t/SdJXhPQC7NczPm, который частично решает эту задачу, однако:
1. Его поведение зависит от флага [PrintShortCommandInUsage](https://nda.ya.ru/t/3sh6_wPV7NczPt Выставление флага меняет вывод `help`
2. Даже с флагом метод отдает одну строку вместе с запускаемым бинарем. Если хочется отделить только submod'ы, то эту строку приходится сплитить.
#### Решение
Добавил всюду где нужно InvocationParts, которые заполняются по ходу парсинга входных аргументов. В конечном итоге эти parts передаются в TOptsParseResult, откуда могут быть получены вызывающей стороной.
commit_hash:4cf72141552793b19a725b3d394b81215508b85f
|
| |
|
|
|
|
|
| |
В продолжение <https://nda.ya.ru/t/Zv2eRt4A7Ncwc7>
Поддерживаем контракт в env.cpp (используется в BinaryPath), т.к. он тоже строит из `env.json.txt` окружение и при обнаружении Null падает
commit_hash:6d01c031662f29c665a54fe4f4036a3bf7dea99a
|
| |
|
|
| |
commit_hash:85eaf10c25d47cdfa012339dfc2c7d054754d12a
|
| |
|
|
|
| |
After this, it becomes possible to zerodiff replace thread\_local variables with generic local values. Replace default TThreadLocal with generic will lead to it's destruction on thread exit, but it seems to be more correct behavior (e.g., avoid leaks on thread pool restart).
commit_hash:6e5a0908ca239c1bac3ce6ba47de9e53290d6211
|
| |
|
|
| |
commit_hash:11905e9c07bac938a838c340f99a05579e2f5b5c
|
| |
|
|
| |
commit_hash:44faaa78b7fe05dab4c716202becad3c8beed79a
|
| |
|
|
| |
commit_hash:87bdc41e776a8f4e0bfdf3b47804055a1e62c9ee
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
**Summary**
Реализован новый входной плагин `agent_logs` для отправки логов самого агента в пайплайн unified\_agent. Это решает проблему доступа к логам агента в production окружении, где требовались права System developer для доступа к файлам на дисках.
## **What's Changed** {#whats-changed}
### **New Plugin: `agent_logs_input`** {#new-plugin-agent_logs_input}
Добавлен новый входной плагин, который:
* Перехватывает логи агента через кастомный `TLogBackend`
* Отправляет логи в пайплайн стриммингово (не пулингом)
* Поддерживает фильтрацию по уровню логов (настройка **level**, по умолчанию `NOTICE`)
### **Implementation Details** {#implementation-details}
**Основные компоненты:**
1. **TAgentLogsBackend** - кастомный log backend:
* Наследуется от `TLogBackend`
* Перехватывает все логи агента через метод `WriteData()`
* Фильтрует логи по приоритету
* Отправляет отфильтрованные логи в `IMessageConsumer`
* Поддерживает graceful stop
2. **TPlugin** - основной класс плагина:
* Управляет lifecycle плагина
* Создает сессию с ID `agent_logs`
* Передает конфигурацию в session handler
3. **TSessionHandler** - обработчик сессии:
* Создает и регистрирует `TAgentLogsBackend`
* Добавляет backend в глобальный logger через `AddLog()`
* Управляет остановкой backend'а
**Пример конфигурации:**
```
routes:
- input:
plugin: agent_logs
config:
level: INFO
channel:
pipe:
- filter:
plugin: format_otel_logs
output:
# https://nda.ya.ru/t/YexxO8Qf7NZMzy
plugin: otel_logs
config:
url: "collector.logs.yandex-team.ru:443"
project: hobbit_test_project
service: logs
# https://nda.ya.ru/t/o4MQT5rI7NZMzz
oauth:
secret:
env: TEST_LOGS_OAUTH
agent_log:
priority: INFO
rate_limit_bytes: 100000
```
commit_hash:c6f115ab98c30a47845ce9f9f8a58ef89973d422
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Current TThreadLocal implementation doesn't destroy objects on thread exit (so we can't replace thread\_local tls value with it, and with TGenericLocalValue too), standard thread\_local values can't be class members. So try to reimplement TThreadLocalValue:
- instead of adressing by thread id, address objects by uniq object id in thread\_local deque of all objects of current type;
- use hashmap of all existing perthread deques to destroy objects with their TThreadLocal;
- try to make object ids flat;
- no complex lookup inside and no contention between tls.Get calls;
- ShortLivedThreads ut now works;
- some fixes in Trace ut, make threads outlive tls value;
- benchmark results <https://nda.ya.ru/t/agWa9PW67NYAAK>, looks better than all others;
- probably should switch to this implementation by default and remove old.
commit_hash:262ce4d363751f577373a452a0c2c84d1fe5b79c
|
| |
|
|
| |
commit_hash:d1d3470945b75209c60933934938e65e6d2e5c6f
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Проблема:
Сегментация через ~42 секунды после запуска UA в ServiceConfigParser::GetParserIndex("retry").
Причина:
Static Initialization Order Fiasco + Lazy Initialization в gRPC CoreConfiguration.
RetryFilter пытается получить парсер до того, как CoreConfiguration зарегистрировала его.
Решение:
1. Устанавливаем лимиты потоков ДО grpc_init() (статические параметры)
2. Явно вызываем grpc_init() для гарантии выполнения всех статических инициализаторов
3. Принудительно инициализируем CoreConfiguration через CoreConfiguration::Get()
Это гарантирует порядок:
- Настройка лимитов потоков
- Инициализация библиотеки gRPC
- Построение CoreConfiguration с регистрацией всех парсеров
- Только после этого фильтры могут безопасно использовать retry парсер
Изменения:
- library/cpp/unified_agent_client/grpc_io.cpp: Исправлена EnsureGrpcConfigured()
- tests/ut/grpc_init_ut.cpp: Добавлены unit тесты
- tests/grpc_init_check/: Standalone тестовая программа
- tests/ut/ya.make: Интеграция тестов в систему сборки
Все тесты прошли: 640/640 OK
commit_hash:ed4601dfe21f6dfac653dec6e9c3e535e5a0a09c
|
| |
|
|
| |
commit_hash:856a8b4b61af064aec80aa907e2784f9d4ffce61
|
| |
|
|
| |
commit_hash:841cd252299527798d4943b3e845ac997c059ac8
|
| |
|
|
| |
commit_hash:cc357d273b7ce5c911d194dd51fae5668877693c
|
| |
|
|
| |
commit_hash:75d52d415f51a89383bdbe69eb4bacf9285ebd8f
|
| |
|
|
| |
commit_hash:35721aabcf5384a781bf026ad6dc365e2aa64426
|
| |
|
|
| |
commit_hash:83dda252d4be350031caade9e138ba8e91930836
|
| |
|
|
| |
commit_hash:7178f5732d2f485b1dc0b510f71e3db6c038dd23
|
| |
|
|
| |
commit_hash:0321f6681dac1a0ba38394a66471582be1909c29
|
| |
|
|
| |
commit_hash:9c12a10680e9747d55895676d6a299dd0ddfd8a8
|
| |
|
|
| |
commit_hash:5146c201b1a586d9cee2ed1495545fe4708a9fd1
|