Graphite

在石墨中聚合每個時間戳數據點

  • December 7, 2017

我的第一篇文章所以請溫柔!所以我在 Ubuntu 16.04 伺服器上安裝並執行了石墨。(版本 0.10)

我正在發送指標,一切正常,但我一次發送多個時間戳。正如我每分鐘發送一次數據,每 10 秒時間戳。每分鐘都有新數據進來。可能會在一分鐘後重新發送具有相應時間戳(與以前相同)的密鑰。因此,由於石墨的工作方式,新值被保存而最後一個失去。所以我在 carbon-cache 前面放了一個 carbon-aggregator,認為它會聚合每個時間戳的值。它不是。它聚合在一個時間間隔內接收到的所有值,忽略時間戳。

我發現 statsd 具有相同的功能。我想要的是聚合器聚合每個時間戳的值。就像將數據保留 1 分鐘一樣,看看是否收到了相同鍵和時間戳的數據點。如果是這樣總結它們。如果沒有這樣的數據,將原始數據轉發到 carbon-cache。

有沒有辦法用石墨或statsd做到這一點,或者我必須在碳記憶體(而不是碳聚合器)前面寫我自己的小緩衝區,這樣做嗎?它可能是 C 中自製結構的連結列表,導致大約 150 行程式碼,但會花費寶貴的時間。

肯定有人遇到過同樣的問題,但是有人找到解決方案了嗎?

Bump:真的沒有人遇到過這個問題嗎?

提前致謝!

Logstash可能是一種解決方案。

它可以接收/理解碳指標(https://www.elastic.co/guide/en/logstash/current/plugins-inputs-graphite.html ),並且可以生成指標,這似乎可以做除了總結你提到的(https://www.elastic.co/guide/en/logstash/current/plugins-filters-metrics.html>)。它還可以以石墨可以理解的格式重新發出指標(<https://www.elastic.co/guide/en/logstash/current/plugins-outputs-graphite.html)。

您還可以使用聚合外掛 ( https://www.elastic.co/guide/en/logstash/current/plugins-filters-aggregate.html ) 做一些聰明的事情。

不過,聽起來確實,如果您能夠首先對生成統計資訊/指標的方式做點什麼,這可能是解決問題的更簡單方法。

引用自:https://serverfault.com/questions/836513