2013-03-19 11 views
7

Ich versuche, einige alte Graphit-Test-Whisper-Metriken ohne Erfolg zu löschen. Ich kann die Metriken löschen, indem ich die Dateien entferne. (Siehe: How to cleanup the graphite whisper's data?) Aber innerhalb von ein paar Sekunden nach dem Wegblasen der Dateien, die sie neu generieren (sie sind leer von Metriken und bleiben so, da nichts neue Metriken in diesen Dateien erstellt). Ich habe versucht, Carbon (carbon-cache.py Stop) zu stoppen, bevor Sie die Dateien löschen, aber wenn ich Carbon neu starte (carbon-cache.py - debug Start &) kommen sie einfach zurück.Deleted/Empty Graphite Whisper-Dateien automatisch neugenerierend

Wie lösche ich diese Dateien/Metics dauerhaft, so dass sie nie wieder kommen?

Antwort

5

Sie laufen statsd oder etwas ähnliches?

Ich hatte das gleiche Problem und es war, weil statsd die Zähler löschte, die es im Gedächtnis hatte, nachdem ich die Flüsternakten gelöscht hatte. Ich habe statsd recycelt und die Dateien bleiben jetzt gelöscht.

this helps

+1

Ja, ich bin statsd. Wie kann ich statsd recyceln? – Jeff

6

Die neueste StatsD Version hat eine Option auf nicht mehr Nullen nach dem Flush zu senden, sondern nur das, was tatsächlich an ihn gesendet. Wenn Sie diese Option aktivieren, werden die Flüsterdateien nicht neu erstellt: https://github.com/etsy/statsd/blob/master/exampleConfig.js#L39

+2

Wenn dieses Flag gesetzt wird, haben die Graphen Nullwerte, die "nicht angefügte" Datenpunkte anzeigen. Daher müssen Sie in jedem Diagramm die Einstellung "Null als Null zeichnen" aktivieren, um dies zu beheben. Kennen Sie zufällig andere Lösungen? Ich stoße auf das gleiche Problem. – Adam

+2

deleteIdleStats: true –

+0

Es gibt mehrere Einstellungen: 'deleteIdleStats', die für alle Stats gilt, und einzeln überschreibbare' deleteGauges', 'deleteTimers',' deleteSets' und 'deleteCounters'. Diese Standardeinstellung ist false. Dies bedeutet, dass statsd immer 0 sendet (vorheriger Wert für Messgeräte), wenn für einen Zeitbereich keine Daten empfangen werden. – chrsalln

17

Standardmäßig sendet Statsd weiterhin 0 für Zähler, die in der vorherigen Flush-Periode nicht empfangen wurden. Dies führt dazu, dass Carbon die Datei neu erstellt.

Nehmen wir an, wir wollen einen Zähler namens 'bad_metrics.sent' aus Statsd löschen. Sie können die Statsd Admin-Interface auf Port 8126 standardmäßig ausgeführt verwenden:

$ telnet <server-ip> 8126 
Trying <server-ip>... 
Connected to <server-name>. 
Escape character is '^]'. 

Verwenden Sie ‚Hilfe‘ eine Liste der Befehle zu erhalten:

help 
Commands: stats, counters, timers, gauges, delcounters, deltimers, delgauges, quit 

Sie können ‚Zähler‘, um eine Liste zu sehen alle Zähler:

counters 
{ 'statsd.bad_lines_seen': 0, 
    'statsd.packets_received': 0, 
    'bad_metrics.sent': 0 } 
END 

Sein die 'delcounters', 'deltimers' und 'delgauges' Befehle, die Metriken aus statsd entfernen:

delcounters bad_metrics.sent 
deleted: bad_metrics.sent 
END 

Nachdem Sie die Metrik aus Statsd entfernt haben, können Sie die zugehörige Flüsterdatei entfernen. In diesem Beispielfall wäre, dass:

/opt/graphite/storage/whisper/bad_metrics/sent.wsp 

oder (in Ubuntu):

/var/lib/graphite/whisper/bad_metrics/sent.wsp 
+0

Gibt es eine andere Möglichkeit, die statsd Admin-Schnittstelle hochzuziehen? Sagen Sie von einer Root-Eingabeaufforderung auf dem Server? (Die Telnet-Schnittstelle funktioniert auf unserem Server aus irgendeinem Grund nicht) – Jeff

+0

Hinweis: Auf meinem Server funktioniert es, aber wenn ich telnet drin zeigt das Wort "ERROR". Aber es geht tatsächlich gut! – Jeff

+0

Hinweis: Für mich war das Löschen der Zähler nicht ausreichend. Ich habe statsd neu gestartet und das schien das Problem zu beheben. – Jeff

0

Wir nicht statsd laufen, aber wir laufen carbon-aggregator, die einen ähnlichen Zweck dient. Ein Neustart hat ein ähnliches Problem gelöst.