Apakah ada yang punya rumus, atau mungkin beberapa sampel data dari lingkungan mereka yang dapat membantu saya memperkirakan berapa banyak ruang disk yang akan digunakan oleh grafit per titik data?
monitoring
graphite
Kyle Brandt
sumber
sumber
Jawaban:
whisper-info.py
memberi Anda banyak wawasan tentang apa dan bagaimana setiap file digabungkan, termasuk ukuran file.Namun itu hanya berguna untuk file bisikan yang ada.
Ketika Anda ingin melihat ukuran prediksi suatu skema sebelum menerapkannya, coba Kalkulator Bisikan, seperti yang tersedia di https://gist.github.com/jjmaestro/5774063
EDIT:
Saat ditanya contoh ...
storage_schema:
Melihat file saya
applied-in-last-hour.wsp
,ls -l
hasildan
whisper-info.py ./applied-in-last-hour.wsp
hasilJadi, pada dasarnya Anda menggabungkan host Anda per pertandingan-retensi per segmen-retensi-periode per stat, kalikan dengan faktor sistem yang ingin Anda terapkan juga, faktor dalam jumlah statistik baru yang akan Anda lacak. Kemudian Anda mengambil jumlah penyimpanan berapa pun dan setidaknya menggandakannya (karena kami membeli penyimpanan, dan kami tahu kami akan menggunakannya ...)
sumber
ls -l
hasilnya, saya menganggapnya sebagai byte. Ketika saya menjumlahkan ukuran arsip dalam file .wsp (seperti yang dilaporkan olehwhisper-info.py
), mereka mendekati ukuran file .wsp keseluruhan (sisanya saya anggap sebagai metadata dan semacamnya. Ini harus menjadi ukuran file untuk semua waktu, saat data jatuh ke resolusi data yang lebih rendah, dan titik data lama dibuangServerCount * MetricCount * 4.5MBytes
Dalam dokumentasi untuk statsd mereka memberikan contoh untuk kebijakan penyimpanan data.
Retensi adalah
10s:6h,1min:7d,10min:5y
yang 2160 + 10080 + 262800 = 275040 poin data dan mereka memberikan ukuran arsip 3,2 MiB .Dengan asumsi hubungan linier, ini akan menjadi sekitar 12,2 Bytes per titik data .
sumber
Tidak ada pengalaman langsung dengan Graphite, tapi saya membayangkan logika yang sama seperti yang kami gunakan untuk Cacti atau apa pun RRD atau time-rollover driven akan berlaku (Graphite tidak menggunakan RRD secara internal lagi tetapi logika penyimpanan tampaknya sebanding.)
Jawaban singkatnya adalah, "Mungkin tidak banyak ruang yang Anda pikir Anda perlukan."
Jawaban panjangnya melibatkan beberapa matematika khusus situs. Untuk sistem pemantauan kami (InterMapper) saya mencari tahu periode retensi, resolusi, dan ukuran titik data, melakukan beberapa perkalian, dan menambahkan overhead.
Sebagai contoh, saya akan menggunakan ruang disk - kami menyimpan angka dengan presisi 5 menit selama 30 hari, presisi 15 menit selama 60 hari, dan kemudian presisi per jam selama 300 hari berikutnya, dan kami menggunakan 64 integer-bit (8 byte) untuk menyimpannya:
Pada 8 byte per sampel yang sekitar 173KB, ditambah overhead yang sehat untuk pengindeksan penyimpanan dan sejenisnya membawanya ke sekitar 200KB untuk data penggunaan disk satu partisi (setiap kesalahan cenderung berlebihan).
Dari metrik dasar saya dapat menghitung ukuran rata-rata "per mesin" (10 partisi disk, ruang swap, RAM, rata-rata beban, transfer jaringan, dan beberapa hal lainnya) - berhasil sekitar 5MB per mesin.
Saya juga menambahkan 10% sehat di atas angka akhir dan mengumpulkan, jadi saya ukuran barang di 6MB per mesin.
Lalu saya melihat ruang 1TB yang telah saya tempatkan untuk menyimpan data metrik untuk pembuatan bagan dan berkata, "Ya, saya mungkin tidak kehabisan penyimpanan dalam hidup saya kecuali kita tumbuh banyak!" :-)
sumber
Saya memiliki 70 node yang menghasilkan banyak data. Menggunakan Carbon / Whisper, satu node membuat 91k file saja (node menghasilkan beberapa skema masing-masing memiliki beberapa penghitung dan bidang variabel yang perlu dipilih. Misalnya: (nodename). (Skema). (Skema). (Penghitung). (Subkounter). (Dll )....dan seterusnya).
Ini memberikan rincian yang saya butuhkan untuk merencanakan grafik apa pun yang saya inginkan. Setelah menjalankan skrip untuk mengisi 69 node yang tersisa, saya memiliki 1,3Tb data pada disk. Dan itu hanya bernilai 6 jam data / node. Apa yang membuat saya adalah file csv flat sebenarnya untuk data 6hrs adalah sekitar 230Mb / node. 70 node adalah ~ 16Gb data. Skema penyimpanan saya adalah 120-an: 365d.
Saya relatif baru di database, jadi saya mungkin melakukan sesuatu yang salah, tapi saya kira itu semua overhead untuk setiap sampel.
Jadi itu adalah eksperimen yang menyenangkan, tapi saya pikir tidak masuk akal untuk menggunakan bisikan untuk jenis data yang saya simpan. MongoDB sepertinya solusi yang lebih baik, tapi saya perlu mencari cara menggunakannya sebagai backend ke Grafana.
sumber