Проблема:
Парсинг метрик сделан вручную: Scanner без увеличенного буфера и разбор labels через Split(","). Это хрупко для длинных строк и экранированных значений меток.
Конкретные места в коде:
agent_client.go (line 228)
agent_client.go (line 341)
agent_client.go (line 323)
Решение:
Использовать официальный parser формата Prometheus (expfmt) вместо ручного split.
Если оставить Scanner, увеличить buffer через scanner.Buffer(...).
Добавить тесты на сложные labels (запятые/escape/quotes) и длинные строки.
Критерии приемки:
Корректно читаются метрики со сложными label values.
Нет падений/потери данных на длинных строках.
Парсинг покрыт unit-тестами.
Проблема:
Парсинг метрик сделан вручную: Scanner без увеличенного буфера и разбор labels через Split(","). Это хрупко для длинных строк и экранированных значений меток.
Конкретные места в коде:
agent_client.go (line 228)
agent_client.go (line 341)
agent_client.go (line 323)
Решение:
Использовать официальный parser формата Prometheus (expfmt) вместо ручного split.
Если оставить Scanner, увеличить buffer через scanner.Buffer(...).
Добавить тесты на сложные labels (запятые/escape/quotes) и длинные строки.
Критерии приемки:
Корректно читаются метрики со сложными label values.
Нет падений/потери данных на длинных строках.
Парсинг покрыт unit-тестами.