我從一個新的應用程序開始,該應用程序旨在以更「雲」的方式運行,遵循無服務器基礎架構的思想,不再需要「機器」的概念,但只是一個應用程序在某處運行。使用Graphite進行統計 - 來自無服務器基礎架構
由於Graphite只知道「絕對」值,因此服務器的主機名通常會在度量路徑中編碼以處理併發性。 (例如applicationname.webserver_1.requestCount
)。使用Graphite函數,可以在構建圖形時輕鬆合併數據。
但是當我運行在服務器較少的環境中時,主機名不再以經典的意義存在 - 每次應用程序重新啓動或部署時,都會爲其生成一個新的隨機主機名。我現在想知道的是 - 如何最好地處理這個問題。我不能使用主機名,因爲這樣我會很快得到數百個不同的主機名,並且完全無法使用石墨後端。這個用例的最佳實踐是什麼?
作爲一個旁註 - 這不僅是衡量計數器,而且還衡量響應時間(p99函數將應用)。
我想使用dropwizard-metrics(正式名稱爲codahale指標)將消息發送給grahite,但這應該只是一個實現細節。
非常感謝您的幫助。
IIRC in dropwizard中,您可以從度量標準名稱中排除主機名。 – deniszh
@deniszh問題是石墨需要它們。計數器將作爲絕對值發送給石墨,而不是相對值。如果兩個應用程序實例並行發送計數器到相同的度量標準名稱,那麼石墨將會像獲取平均值一樣瘋狂。或者我在這種情況下是錯的? –
是的,如果你使用計數器 - 那是真的。在這種情況下(許多短命的指標)Graphite並不適合IMO。 您可以在石墨服務器上運行一些清潔腳本,但它看起來並不是一個好的解決方案。 – deniszh