为啥 Carbon 不根据更新的存储模式保留写入 Whisper 数据点?

Posted

技术标签:

【中文标题】为啥 Carbon 不根据更新的存储模式保留写入 Whisper 数据点?【英文标题】:Why isn't Carbon writing Whisper data points as per updated storage-schema retention?为什么 Carbon 不根据更新的存储模式保留写入 Whisper 数据点? 【发布时间】:2019-11-22 14:09:49 【问题描述】:

我最初的碳存储模式配置设置为 10s:1w、60s:1y,并且可以正常工作数月。我最近将其更新为 1s:7d、10s:30d、60s、1y。我使用以下 bash 调整了所有耳语文件的大小以反映新的保留模式:

collectd_dir="/opt/graphite/storage/whisper/collectd/"
retention="1s:7d 1m:30d 15m:1y"

find $collectd_dir -type f -name '*.wsp' | parallel whisper-resize.py \
--nobackup  $retention \;

我已确认它们已使用 Whisper-info.py 进行了更新,并具有正确的保留期和数据点。我还使用存储模式验证脚本确认了存储模式是有效的。

carbon-cache1..8、carbon-relay、carbon-aggregator 和 collectd 服务在耳语调整大小之前已停止,然后在调整大小完成后启动。

但是,在 Grafana 仪表板上签入时,我在 collectd 插件图表上看到具有正确数据点(每秒,但没有数据)的空图表;但是对于提供数据的图表,它每 10 秒(旧保留)显示一次数据和数据点,而不是 1 秒。

/var/log/carbon/console.log 看起来不错,collectd 的 Whisper 文件都有 carbon 用户访问权限,所以写入时没有权限被拒绝的问题。

在石墨主机的端口 2003 上运行 ngrep 时,我看到了与中继的连接,以及正在发送的指标。然后,这些指标会被中继到一个包含 8 个缓存的池中,然后再发送到它们的 pickle 端口。

有没有其他人遇到过类似的问题,或者可以帮助我进一步诊断问题?我错过了什么吗?

【问题讨论】:

【参考方案1】:

所以我花了一点时间才弄清楚这一点。它与一些旧响应一样与 local_settings.py 文件无关,但它与 collectd.conf 中的 Interval 函数有关。

许多较早的回复提到您需要在每个插件容器中包含“间隔 1”。我认为由于对每个指标的控制,这会很棒。但是,这会在我的日志中创建配置错误,并破坏指标。在配置的顶层设置“间隔 1”解决了我的问题。

【讨论】:

那么在Collectd的plugin_graphite中定义Interval 1?

以上是关于为啥 Carbon 不根据更新的存储模式保留写入 Whisper 数据点?的主要内容,如果未能解决你的问题,请参考以下文章

反应JS |为啥在输入更改时更新此状态挂钩会清除输入以防止写入任何内容?

从 JavaScript 将文件写入 Windows 操作系统以保留浏览器配置

UIImageView 在不同设备上保留情节提要“预览屏幕边界” - 框架不根据屏幕尺寸更新

Unity与23种设计模式备忘录模式(Memento)

VueX:为啥 vuex 存储数据不更新组件数据属性?

为啥 AJAX 里写入的 cookie 无法显示出来