| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
**Было:** Prometheus decoder ограничивает длину значений меток метрик максимум 256 символами. Попытка передать метрику с более длинным значением метки приводит к исключению `TPrometheusDecodeException`.
**Стало:** Максимальная длина значения метки расширена до 1024 символов. Системы, которые генерируют метрики с более длинными значениями (например, с ID источников данных, URL, или сложных идентификаторов), теперь могут успешно передавать такие метрики в Unified Agent без ошибок.
**Практический эффект:** Улучшение совместимости с внешними системами мониторинга и приложениями, которые требуют передачи длинных меток. Существующие системы с метками < 256 символов продолжают работать без изменений.
---
## С точки зрения разработчика
### Структурные изменения
Расширение требовало изменения способа хранения длины строки в пуле коротких строк:
1. **Prometheus decoder** (library/cpp/monlib):
- `MAX_LABEL_VALUE_LEN`: 256 → 1024
2. **Short string pool** (logbroker/unified_agent/common):
- `MaxLabelSize`: 255 → 1024
- **Ключевое изменение:** Размер строки теперь хранится как `ui16` (2 байта) вместо `unsigned char` (1 байт)
- Было: `*slot->Payload() = static_cast<unsigned char>(s.size())`
- Стало: `memcpy(slot->Payload(), &size, sizeof(ui16))`
- Это позволяет хранить строки до 65535 символов (но логически ограничено на уровне валидации)
### Изменённые файлы
| Файл | Основные изменения |
|------|------------------|
| `prometheus_decoder.cpp` | `MAX_LABEL_VALUE_LEN: 256 → 1024` |
| `prometheus_decoder_ut.cpp` | +2 юнит-теста для новых граничных значений |
| `short_string_pool.h` | `MaxLabelSize: 255 → 1024`, operator[] использует ui16 для чтения размера |
| `short_string_pool.cpp` | Allocation и copy логика адаптирована для ui16 |
### Тестирование
Добавлены два новых юнит-теста:
- **LabelValueAtNewLimitIsAccepted:** Метрика с меткой ровно 1023 символа успешно парсится
```
"m{l=\"" + string(1023, 'a') + "\"} 1\n"
```
- **LabelValueOverNewLimitStillThrows:** Метрика с меткой ≥1024 символов выбрасывает исключение
```
"m{l=\"" + string(1024, 'a') + "\"} 1\n"
// → TPrometheusDecodeException: "trying to parse too long label value, size >= 1024"
```
### Безопасность и совместимость
- ✅ Обратно совместимо: строки < 256 символов работают так же
- ✅ Валидация: лимит 1024 проверяется на уровне Ref() в пуле
- ✅ Граничные случаи: добавлены тесты для 1023 и 1024 символов
- ✅ Выделение памяти: правильно рассчитано с учётом новых 2 байт для размера
- ✅ Я не нашел ситуации когда закодированная строка (длина + строка) улетала куда-то из пула и потом пыталась раскодироваться. Так что считаю, что миграции никакой не надо и все обратно совместимо. НАДЕЮСЬ Я НЕ ОШИБАЮСЬ
commit_hash:b30852954951bd8e65d69777a59ffeb58da76b47
|
| |
|
|
| |
commit_hash:91ce0e2023d29ef78fadeaded314ea236f316b8e
|
| |
|
|
| |
commit_hash:ef6584bf0941f50d0833dacd3b5d14cfc1cd30a8
|
| |
|
|
|
|
|
|
|
| |
Этот эксепшн ронял YDB RU PRESTABLE минимум дважды:
\- 2025-09-10 <https://nda.ya.ru/t/VerKgHXk7VTLyV>
\- 2026-02-19 <https://nda.ya.ru/t/uhTY2yqK7UtBen>
Патч призван упростить отладку падений и поиски руткоза
commit_hash:72d859bae3ab265a2807e566c763bfb70a92a61a
|
| |
|
|
| |
commit_hash:ea34eba995ae4c386785fe89df58c439a2e3ea63
|
| |
|
|
|
| |
[fetcher] use lz4 encoding
commit_hash:e29504c1f68be2a5d138dbba0ed461b2f2568b97
|
| |
|
|
|
|
|
| |
json encoder memonly
attempt
commit_hash:0cef79f66356a94c398c76dc9baf2fe3ea9a6948
|
| |
|
|
| |
commit_hash:cffc55ecd6d0ea22c3c2ce52f21e6aba6da16a15
|
| |
|
|
| |
commit_hash:c284e5d683d750f2d89e1bcccb3f4d334b47d60c
|
| |
|
|
| |
commit_hash:93f812fd528231c67adb63e20e083855d68bfe8d
|
| |
|
|
| |
commit_hash:cdae472f061820ed9998426cf0624c300468cdc8
|
| |
|
|
| |
commit_hash:7ec5bc6f7e85e5412ff6759b0d1bd52d1172a9c1
|
| |
|
|
| |
commit_hash:ef5ad4cfa9e68bbfc586492e8c376c732d0a48af
|
| |
|
|
| |
a543f08a6f2957757c54b3f9e5a095389a51dbeb
|
| |
|
|
| |
c7b986ea7dbf4feee593ab829a2ad361d46c77b0
|
| |
|
|
| |
96265cd0cc64e1b9bb31fe97b915ed2a09caf1cb
|
| | |
|
| |
|
|
| |
Relates: https://st.yandex-team.ru/, https://st.yandex-team.ru/
|
| |
|
|
| |
Update tools: yexport, os-yexport
|
| | |
|
| | |
|
| |
|
|
| |
https://clubs.at.yandex-team.ru/arcadia/29404
|
| |
|
|
| |
https://clubs.at.yandex-team.ru/arcadia/29404
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
| |
Update tools: yexport
|
| | |
|
| |
|
| |
Update tools: yexport
|
| | |
|
| | |
|
| | |
|
| |
|
| |
Update tools: yexport
|
| | |
|
| | |
|
| |
|
| |
Update tools: yexport
|
| |
|
| |
Update tools: yexport
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
* [cmake] Hierarchical add_subdirectroy structure
* [cmake] Support for same file compilation multiple times with different flags
|
| | |
|
| |
|
|
| |
ref:8868513666cce733c1c659c7f2d683ffab1150dd
|
| |
|
|
| |
ref:64f38ab703c48a08c49a2ede68481651c4d51f13
|
| |
|
|
| |
ref:ac6385bada68d413b4f372ca0afea6a30a85f7d3
|
| |
|
|
| |
ref:84de00009e51ecf595c13dfc2c9846069069605d
|