Graphite
Graphite安裝教程
Graphite是一個(gè)高度可擴(kuò)展的實(shí)時(shí)圖形系統(tǒng)。作為用戶,你編寫一個(gè)應(yīng)用程序,收集你感興趣的數(shù)字時(shí)間序列數(shù)據(jù),并將其發(fā)送到Graphite的處理后臺(tái)carbon,carbon將數(shù)據(jù)存儲(chǔ)在Graphite的專用數(shù)據(jù)庫(kù)中。然后可以通過graphite的Web界面將數(shù)據(jù)可視化。
常見問題
誰應(yīng)該使用Graphite?
任何想要長(zhǎng)期跟蹤任何數(shù)值的人。如果你有一個(gè)可能會(huì)隨時(shí)間變化的數(shù)字,并且你可能想把這個(gè)值隨時(shí)間變化的情況用圖表表示出來,那么Graphite可能可以滿足你的需求。
具體來說,Graphite被設(shè)計(jì)用來處理數(shù)字時(shí)間序列數(shù)據(jù)。例如,Graphite就很適合繪制股票價(jià)格圖,因?yàn)樗鼈兪请S時(shí)間變化的數(shù)字。無論是幾個(gè)數(shù)據(jù)點(diǎn),還是來自數(shù)千臺(tái)服務(wù)器的幾十個(gè)性能指標(biāo),那么Graphite都適合你。作為獎(jiǎng)勵(lì),你不一定要事先知道這些東西的名稱(誰想維護(hù)如此龐大的配置?);你只需發(fā)送一個(gè)度量名稱、一個(gè)時(shí)間戳和一個(gè)值,剩下的事情就由Graphite來處理了。
Graphite的可擴(kuò)展性如何?
從CPU的角度來看,Graphite在前端和后端都是水平擴(kuò)展的,這意味著你可以簡(jiǎn)單地添加更多的機(jī)器來獲得更多的吞吐量。它還具有容錯(cuò)性,即失去一臺(tái)后端機(jī)器會(huì)造成極小的數(shù)據(jù)損失(無論這臺(tái)機(jī)器在內(nèi)存中緩存了什么),如果你有足夠的剩余容量來處理負(fù)載,就不會(huì)破壞系統(tǒng)。
從I/O的角度來看,在負(fù)載下,Graphite會(huì)非常迅速地對(duì)很多不同的文件執(zhí)行很多微小的I/O操作。這是因?yàn)槊恳粋€(gè)發(fā)送到Graphite的不同度量都存儲(chǔ)在自己的數(shù)據(jù)庫(kù)文件中,類似于很多建立在RRD之上的工具(drraw、Cacti、Centreon等)的工作方式。事實(shí)上,Graphite最初確實(shí)使用RRD進(jìn)行存儲(chǔ),直到出現(xiàn)了基本的限制,需要新的存儲(chǔ)引擎。
高容量(每分鐘更新幾千個(gè)不同的指標(biāo))幾乎需要一個(gè)好的RAID陣列和/或SSD。如果磁盤無法跟上大量發(fā)生的小型寫操作(每個(gè)數(shù)據(jù)點(diǎn)只有幾個(gè)字節(jié),但大多數(shù)標(biāo)準(zhǔn)磁盤每秒的I/O操作不能超過幾千次,即使它們很?。珿raphite的后端會(huì)緩存?zhèn)魅氲臄?shù)據(jù)。當(dāng)這種情況發(fā)生時(shí),Graphite的數(shù)據(jù)庫(kù)引擎whisper允許碳一次寫入多個(gè)數(shù)據(jù)點(diǎn),從而提高整體吞吐量,只是代價(jià)是將多余的數(shù)據(jù)緩存在內(nèi)存中,直到可以寫入。
Graphite還支持替代的存儲(chǔ)后端,可以大大改變這些特性。
圖表的實(shí)時(shí)性如何?
非常實(shí)時(shí)。即使是在重負(fù)載的情況下,當(dāng)每個(gè)時(shí)間間隔傳入的指標(biāo)數(shù)量遠(yuǎn)遠(yuǎn)大于存儲(chǔ)系統(tǒng)執(zhí)行 I/O 操作的速度,并且大量的數(shù)據(jù)點(diǎn)被緩存在存儲(chǔ)管道中(見前面的問題解釋),Graphite 仍然可以繪制實(shí)時(shí)圖形。訣竅是,當(dāng) Graphite webapp 收到繪制圖形的請(qǐng)求時(shí),它同時(shí)從磁盤上以及預(yù)存儲(chǔ)緩存中檢索數(shù)據(jù)(如果你有多個(gè)后端服務(wù)器,緩存可能是分布式的),并將兩個(gè)數(shù)據(jù)源結(jié)合起來,創(chuàng)建一個(gè)實(shí)時(shí)圖形。
誰已經(jīng)在使用Graphite?
Graphite是由Orbitz內(nèi)部開發(fā)的,在這里,它被用來可視化各種關(guān)鍵運(yùn)營(yíng)數(shù)據(jù),包括應(yīng)用指標(biāo)、數(shù)據(jù)庫(kù)指標(biāo)、銷售等。在寫這篇文章的時(shí)候,Orbitz的生產(chǎn)系統(tǒng)可以每分鐘處理大約160,000個(gè)不同的指標(biāo),這些指標(biāo)運(yùn)行在高速SAN上的兩臺(tái)niagra-2 Sun服務(wù)器上。
Graphite是用什么寫的?
Graphite webapp建立在Django web框架上,使用ExtJS javascript GUI工具包。圖形渲染使用Cairo圖形庫(kù)完成。后臺(tái)和數(shù)據(jù)庫(kù)是用純Python編寫的。
誰來編寫和維護(hù)Graphite?
Graphite最初是由Orbitz的Chris Davis開發(fā)的。Orbitz長(zhǎng)期以來一直是開源社區(qū)的一部分,并發(fā)布了其他一些內(nèi)部開發(fā)的產(chǎn)品。
Graphite 目前由 Graphite-Project GitHub 組織下的志愿者團(tuán)隊(duì)開發(fā)。
下載地址
-
- 通用安全下載
-
- 移動(dòng)安全下載
-
- 聯(lián)通安全下載
-
- 電信安全下載
-
- 移動(dòng)網(wǎng)絡(luò)下載
-
- 聯(lián)通網(wǎng)絡(luò)下載
-
- 電信網(wǎng)絡(luò)下載
-
- 通用網(wǎng)絡(luò)下載