为啥 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 操作系统以保留浏览器配置