我们在度量标准名称中存储具有内部版本号的指标。以下是石墨中度量标准的格式。
latency.<host>.<request>.<buildNumber>.average
上述格式的问题是buildNumber一直在改变值,在我们的例子中,由于发布周期,它每周都在变化。这导致每周都有新的存储文件(.wsp),并且因为耳语会预先分配空间,所以我们从未充分利用空间,因为更改了内部版本号。
我知道磁盘空间是便宜的资源,但在某些时候我认为我们将拥有大量未使用的空间。
例如,如果每个度量标准文件大小为10MB,并且我们发送了5000个不同的延迟度量标准,那么对于特定的内部版本号,我们将使用50GB。现在,如果每周我们发送一个新的内部版本号,那么1TB的磁盘空间将在20周内完成,大概是5个月。(1TB = 1000GB)/(每周50GB)= 20周
如果我们可以在上个月的一个中汇总多个指标,就可以解决上述问题。是否有任何方法可以指定保留策略,其中使用某种聚合方法将多个度量标准合并在一起?
或者有没有办法解决石墨中的这类问题?
答案 0 :(得分:1)
如果您使用Graphite的Ceres存储引擎而不是使用Whisper,您将避免预先分配空间的问题。 https://github.com/graphite-project/ceres
我不相信您可以在下采样期间将多个指标与指定的聚合合并。但是,您可以通过aggregation-rules.conf在摄取时执行此操作。可以在此处找到文档:http://graphite.readthedocs.org/en/latest/config-carbon.html#aggregation-rules-conf