Ich möchte die Daten des Speicherflüsters des Graphits löschen, aber die Graphitdokumente enthalten nichts.
Eine Möglichkeit, die ich gemacht habe, ist das /opt/graphite...../whispers/stats...
manuelle Löschen der Dateien .
Aber das ist langweilig. Wie mache ich das?
Antworten:
Das Löschen der Dateien aus / opt / graphite / storage /whisper / ist derzeit der richtige Weg, um Flüsterdaten zu löschen.
Was die mühsame Seite des Prozesses betrifft, können Sie den Befehl find verwenden, wenn es ein bestimmtes Muster gibt, das Sie entfernen möchten.
Ähnliche Frage auf answers.launchpad.net/graphite
quelle
.wsp
Dateien entfernen ?Ich nehme an, dass dies in das Gebiet der Serverfehler geht, aber ich habe den folgenden Cron-Job hinzugefügt, um alte Metriken von uns zu löschen, in die seit über 30 Tagen nicht mehr geschrieben wurde (z. B. von Cloud-Instanzen, die entsorgt wurden):
Dadurch werden Verzeichnisse mit gültigen Daten gelöscht.
Zuerst:
Und dann leere Verzeichnisse löschen
Dieser letzte Schritt sollte wiederholt werden, da möglicherweise neue leere Verzeichnisse übrig bleiben.
quelle
find /opt/graphite/storage/whisper -type f -mtime +120 -name \*.wsp -delete; find /opt/graphite/storage/whisper -depth -type d -empty -delete
Wie die Leute bereits betont haben, ist das Entfernen der Dateien der richtige Weg. Ausgehend von früheren Antworten habe ich dieses Skript erstellt, mit dem alle Dateien entfernt werden, die ihr maximales Aufbewahrungsalter überschritten haben. Führen Sie es
cronjob
ziemlich regelmäßig aus.Ein paar Kleinigkeiten zu beachten - der
whisper-info
Anruf ist ziemlich schwer. Um die Anzahl der Aufrufe zu verringern, habe ich die MINRET-Konstante eingegeben, damit keine Datei zum Löschen berücksichtigt wird, bis sie 1 Tag alt ist (24 * 60 * 60 Sekunden) - passen Sie sie Ihren Anforderungen an. Es gibt wahrscheinlich andere Dinge, die getan werden können, um den Job zu zerstören oder seine Effizienz allgemein zu verbessern, aber ich musste es noch nicht tun.quelle
Must specify a directory to clean
ist eine Fehlermeldung. Als solches sollte es an der richtigen Stelle geschrieben werden :echo "Must ..." >&2
.