Как очистить Sentry
Когда в разработке программного обеспечения возникают ошибки, система трекинга ошибок становится незаменимым инструментом для выявления, мониторинга и устранения проблем. Sentry — одна из таких платформ, предоставляющая мощные инструменты для отслеживания и анализа ошибок в реальном времени. Однако, с течением времени и развитием проекта, накапливается большой объем данных, что может замедлить производительность и усложнить обнаружение критических проблем. Она довольно быстро сжирает все свободное место на диске. В этой статье я расскажу о методах периодической и полной очистки Sentry.
Проблема
Итак, однажды когда мы пробуем зайти на веб-интерфейс Sentry, развернутую OnPremise у нас на сервере она почему-то перестает отвечать. Еслиственно, первым делом мы заходим по ssh на сервер и видим там такую картину – диск забит под ноль. Собственно в этом и есть суть проблемы. Вопрос в другом, как вернуть системе работоспособность? Ниже приведу два варианта, первый для периодической очистки, который вы можете запихать в crontab. А второй – для полной очистки, который удаляет вообще все issues из базы данных.
Периодическая очистка Sentry
Сам скрипрт для очистки. Очищает все события старше 30 дней.
sentry_cleanup.sh
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash ##################################### # Run this command from docker host # ##################################### echo "Clearing worker container data..." docker exec -it sentry-self-hosted-worker-1 sh -c "sentry cleanup --days 30" echo "Clearing postgresql container data..." docker exec -it sentry-self-hosted-postgres-1 sh -c "psql -U postgres -c \"DELETE FROM public.nodestore_node WHERE \"timestamp\" < NOW() - INTERVAL '30 day';\"" docker exec -it sentry-self-hosted-postgres-1 sh -c "psql -U postgres -c \"VACUUM FULL public.nodestore_node;\"" |
Содержимое crontab:
crontab
1 |
0 15 * * * /home/admin/sentry/sentry_cleanup.sh |
Полная очистка Sentry
Скрипт, очищающий вообще все события в Sentry.
sentry_full_cleanup.sh
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash ############################################# # Run this command from docker host # # Removing all data from Sentry (issues) etc # ############################################## echo "Clearing worker container data..." docker exec -it sentry-self-hosted-worker-1 sh -c "sentry cleanup --days 0" echo "Clearing postgresql container data..." docker exec -it sentry-self-hosted-postgres-1 sh -c "psql -U postgres -c \"DELETE FROM public.nodestore_node WHERE \"timestamp\" < NOW();\"" docker exec -it sentry-self-hosted-postgres-1 sh -c "psql -U postgres -c \"VACUUM FULL public.nodestore_node;\"" |
Удачи!
Материалы
- https://dev.to/nixon1333/clean-sentry-database-on-premise-28b#comment-1k2mp
- https://forum.sentry.io/t/postgres-is-growing-rapidly-manual-cleanup/13666/14