已删除/空的 Graphite Whisper 文件自动重新生成
Posted
技术标签:
【中文标题】已删除/空的 Graphite Whisper 文件自动重新生成【英文标题】:Deleted/Empty Graphite Whisper Files Automatically Re-Generating 【发布时间】:2013-03-08 06:09:21 【问题描述】:我正在尝试删除一些旧的石墨测试耳语指标,但没有任何成功。我可以通过删除文件来删除指标。 (请参阅:How to cleanup the graphite whisper's data?)但是,在吹走它们重新生成的文件的几秒钟内(它们没有指标并保持这种状态,因为没有在这些文件中创建新指标)。我尝试在删除文件之前停止 carbon (carbon-cache.py stop),但是当我重新启动 carbon (carbon-cache.py --debug start &) 时它们又回来了。
如何永久删除这些文件/metics,以免它们再次出现?
【问题讨论】:
【参考方案1】:我们没有运行statsd
,但我们运行carbon-aggregator
,其目的类似。重新启动它解决了类似的问题。
【讨论】:
【参考方案2】:默认情况下,Statsd 将继续为在上一个刷新周期内未收到的计数器发送 0。这会导致 carbon 重新创建文件。
假设我们要从 Statsd 中删除一个名为“bad_metrics.sent”的计数器。您可以使用默认运行在 8126 端口上的 Statsd 管理界面:
$ telnet <server-ip> 8126
Trying <server-ip>...
Connected to <server-name>.
Escape character is '^]'.
使用“帮助”获取命令列表:
help
Commands: stats, counters, timers, gauges, delcounters, deltimers, delgauges, quit
您可以使用“计数器”查看所有计数器的列表:
counters
'statsd.bad_lines_seen': 0,
'statsd.packets_received': 0,
'bad_metrics.sent': 0
END
“delcounters”、“deltimers”和“delgauges”命令从 statsd 中删除指标:
delcounters bad_metrics.sent
deleted: bad_metrics.sent
END
从 Statsd 中删除指标后,您可以删除与其关联的耳语文件。在本例中,这将是:
/opt/graphite/storage/whisper/bad_metrics/sent.wsp
或(在 Ubuntu 中):
/var/lib/graphite/whisper/bad_metrics/sent.wsp
【讨论】:
还有其他方法可以调出statsd管理界面吗?从服务器上的根命令提示符说? (由于某种原因,telnet 接口无法在我们的服务器上运行) 注意:在我的服务器上它正在工作,但是当我在其中远程登录时,它会显示单词“ERROR”。但它实际上做得很好! 注意:对我来说,删除计数器是不够的。我重新启动了 statsd,这似乎解决了问题。 哇!这让我们摸不着头脑……但果然statsd
正在为几个月不存在的“幻影”EC2 实例缓存和发送旧的度量路径到 Graphite!重新启动 statsd
让我们能够清理 carbon-cache
节点上的耳语文件,而这一次它们没有了。
聚会有点晚了,但刚刚找到了一种与管理界面交互的非常优雅的方式:echo 'counters' | nc localhost 8126 | grep api_server
也可以与删除命令一起使用以删除特定的数据点。【参考方案3】:
最新的 StatsD 版本可以选择在刷新后不再发送零,而只发送实际发送给它的内容。如果您打开它,则不应重新创建耳语文件:https://github.com/etsy/statsd/blob/master/exampleConfig.js#L39
【讨论】:
设置此标志会导致图表具有空值,显示“未附加”数据点。因此,在每个图表上,您必须启用“将 Null 绘制为零”设置来解决此问题。您碰巧知道其他解决方案吗?我遇到了同样的问题。 deleteIdleStats: true 有几个适用的设置:deleteIdleStats
,适用于所有统计数据,并且可以单独覆盖deleteGauges
、deleteTimers
、deleteSets
和 deleteCounters
。这些默认为 false,这意味着当某个时间段未收到数据时,statsd 将始终发送 0(仪表的先前值)。【参考方案4】:
您是否正在运行 statsd 或类似的东西?
我遇到了同样的问题,这是因为在我删除耳语文件后 statsd 正在刷新它在内存中的计数器。我回收了 statsd 并且文件现在仍然被删除。
希望对你有帮助
【讨论】:
是的,我正在运行 statsd。如何回收 statsd?以上是关于已删除/空的 Graphite Whisper 文件自动重新生成的主要内容,如果未能解决你的问题,请参考以下文章