Мы, кстати, внедрили генерацию отчётов статоскопа у себя в пайплайне — размеры действительно удивляют.
Статс-файл весит 230мб, а в отчёте для пул-реквестов их используется аж два (мастер и ветка), но при этом отчёт занимает всего 5мб!
Однако, чтобы строить такие отчёт, нужно где-то хранить статсы от мастера. Обычно артефакты пайплайнов складывают в какой-нибудь S3. А у S3 тарификация за мегабайты — не хотелось бы разориться на загрузке и скачивании.
Здесь на помощь приходит сжатие через brotli!
Вот так происходит компрессия перед загрузкой:
А вот так декомпрессия после скачивания:
Всего у бротли 11 уровней сжатия, но выше 9 уровня в данном случае поднимать нет смысла, т.к. разница в размере несущественная (0.1мб), а выходит сильно дольше — 2 секунды против 30 на 10 уровне и 90 на 11.
Как итог, сжатый статс-файл занимает всего 4мб, а не 230.
Статс-файл весит 230мб, а в отчёте для пул-реквестов их используется аж два (мастер и ветка), но при этом отчёт занимает всего 5мб!
Однако, чтобы строить такие отчёт, нужно где-то хранить статсы от мастера. Обычно артефакты пайплайнов складывают в какой-нибудь S3. А у S3 тарификация за мегабайты — не хотелось бы разориться на загрузке и скачивании.
Здесь на помощь приходит сжатие через brotli!
Вот так происходит компрессия перед загрузкой:
brotli --quality=9 dist/stats.json
А вот так декомпрессия после скачивания:
brotli --decompress dist/stats.json.br
Всего у бротли 11 уровней сжатия, но выше 9 уровня в данном случае поднимать нет смысла, т.к. разница в размере несущественная (0.1мб), а выходит сильно дольше — 2 секунды против 30 на 10 уровне и 90 на 11.
Как итог, сжатый статс-файл занимает всего 4мб, а не 230.