Я хочу удалить данные о графике хранения графита, но в графитовых документах ничего нет.
Один из способов - удалить файлы в /opt/graphite...../whispers/stats...
вручную.
Но это утомительно, так как мне это сделать?
Я хочу удалить данные о графике хранения графита, но в графитовых документах ничего нет.
Один из способов - удалить файлы в /opt/graphite...../whispers/stats...
вручную.
Но это утомительно, так как мне это сделать?
в настоящее время удаляет файлы из /opt/graphite/storage/whisper/ - это правильный способ удаления данных шепота.
Что касается утомительной стороны процесса, вы можете использовать команду find, если есть определенный шаблон, который пытается удалить.
find/opt/graphite/storage/whisper -name loadavg.wsp -delete
Я предполагаю, что это происходит на территории Server Fault, но я добавил следующее задание cron для удаления старых показателей, которые не были записанных более 30 дней (например, облачных экземпляров, которые были расположенные):
find /mnt/graphite/storage -mtime +30 | grep -E \ "/mnt/graphite/storage/whisper/collectd/app_name/[^/]*" -o \ | uniq | xargs rm -rf
Это приведет к удалению каталогов, имеющих достоверные данные.
Во-первых:
find whisperDir -mtime +30 -type f | xargs rm
И затем удалите пустые dirs
find . -type d -empty | xargs rmdir
Этот последний шаг должен быть повторен, поскольку могут быть оставлены новые пустые каталоги.
Как отмечают люди, удаление файлов - это путь. Расширяясь в предыдущих ответах, я сделал этот script, который удаляет любой файл, который превысил его максимальный возраст хранения. Регулярно выполняйте его как cronjob
.
#!/bin/bash
d=$1
now=$(date +%s)
MINRET=86400
if [ -z "$d" ]; then
echo "Must specify a directory to clean"
exit 1
fi
find $d -name '*.wsp' | while read w; do
age=$((now - $(stat -c '%Y' "$w")))
if [ $age -gt $MINRET ]; then
retention=$(whisper-info.py $w maxRetention)
if [ $age -gt $retention ]; then
echo "Removing $w ($age > $retention)"
rm $w
fi
fi
done
find $d -empty -type d -delete
Несколько бит, о которых нужно знать - вызов whisper-info
довольно тяжелый. Чтобы уменьшить количество обращений к нему, я поставил константу MINRET, так что ни один файл не будет рассматриваться для удаления до тех пор, пока он не станет 1-дневным (24 * 60 * 60 секунд) - настройте его в соответствии с вашими потребностями. Возможно, есть и другие вещи, которые можно сделать для того, чтобы ошпарить работу или вообще повысить ее эффективность, но мне еще не нужно было этого делать.