Подтвердить что ты не робот

Как очистить/поддерживать базу данных django-sentry?

Я использую django-sentry для отслеживания ошибок на веб-сайте. Моя проблема в том, что база данных стала слишком большой. Таблица "message" и "groupedmessage" связаны между собой

Есть ли способ очистить старые записи и конкретные сообщения или добавить табличные таблицы в admin django?

4b9b3361

Ответ 1

Используйте команду очистки. Доступны два параметра:

  • days (по умолчанию: 30) - указывает, сколько лет должен быть объект для очистки.
  • project - указывает, какой проект удалить, поскольку у вас может быть много настроенных на одном сервере часовых поясов (по умолчанию: все)

Используйте его как таковое:

sentry --config=sentry.conf.py cleanup --days 360

ИЛИ с необязательным параметром проекта, он должен быть целым числом:

sentry --config=sentry.conf.py cleanup --days 360 --project 1

Я также смог использовать django ORM для этого вручную, прежде чем открывать команду очистки:

#$source bin/activate
#$sentry --config=sentry.conf.py shell
from sentry.models import Event, Alert
Event.objects.all().count()
Alert.objects.all().count()

Отметьте часовые модели для запроса других объектов. Отсюда вы можете использовать команды ORM django, такие как .save(),.remove() и т.д. На объектах. Ознакомьтесь с имеющимися часовыми моделями здесь. Этот подход является более гибким, если вам нужна гранулярность, т.е. Изменение объектов. Одна вещь, отсутствующая в команде очистки, сообщает вам, сколько объектов было удалено, вместо этого удаляет удаленные объекты на экран.

Моя очистка script выглядит так, и я запускаю ее @monthly с помощью cron:

#!/bin/bash
date
cd /var/web/sentry
source bin/activate
exec sentry --config=sentry.conf.py cleanup --days 360 #--project 1

Ответ 3

Чтобы следить за полезными ответами radtek, если вы хотите удалить только определенные ошибки, самый простой способ, который я нашел, - вызвать delete в объекте Group:

from sentry.models import Group
Group.objects.filter(culprit__contains='[SEARCH TERM]').delete()

Где [SEARCH TERM] - это текст, который появляется в сообщениях об ошибках, которые вы хотите удалить.