Di mana saya dapat menemukan spesifikasi file RRD?

1

Saya mencoba untuk menulis program Python untuk secara langsung menarik informasi dari file kinerja RRD yang disimpan di server kami di tempat kerja, tetapi file tersebut tidak disimpan dalam format plaintext, dan saya tidak dapat menemukan spesifikasi yang memecah format aktual tentang cara RRDtool menyimpan informasi dalam file RRD (yaitu, N bit pertama menggambarkan X, N bit berikutnya menggambarkan Y, dll).

Saya tahu saya bisa menggunakan utilitas "mengambil" dan "membuang" RRDtool untuk menarik satu catatan, atau membuang seluruh file ke XML raksasa, tetapi saya ingin mencoba menulis sesuatu dari awal yang akan memberi saya lebih banyak kontrol atas bagaimana file dibaca, dan berapa banyak ruang yang digunakan (kesedihan XML masing-masing sekitar 1GB).

Contoh dari salah satu situasi yang ingin saya atasi: menemukan waktu terakhir server mencatat nilai tertentu (yaitu, terakhir kali terdaftar lebih besar dari sejumlah paket yang dijatuhkan).

Saya melihat secara online, tetapi semua yang saya temukan hanya menunjukkan kembali menggunakan utilitas RRDtool, daripada deskripsi bagaimana file RRD itu sendiri diformat.

Saya minta maaf jika ini adalah Exchange yang salah untuk mengajukan pertanyaan ini; sepertinya paling cocok karena pertanyaan saya tidak benar-benar spesifik untuk pemrograman. Saya juga tidak yakin saya menggunakan tag terbaik untuk pertanyaan ini, jadi saya pasti terbuka untuk saran.

Liesmith
sumber

Jawaban:

1

Pernahkah Anda berpikir tentang menggunakan fungsionalitas ekspor JSON RRDTool?

Pertama-tama Anda dapat mengekspor konten file RRD ke JSON, yang jauh lebih ringan daripada XML, dan kemudian menguraikannya dan memanipulasinya sesuai keinginan Anda.

http://oss.oetiker.ch/rrdtool/doc/rrdxport.en.html

Juga layak disebutkan adalah beberapa paket PERL dan R yang mungkin membantu Anda mencapai tujuan Anda.

Editor RRD untuk PERL: http://search.cpan.org/~dougleith/RRD-Editor/lib/RRD/Editor.pm Untuk R: https://github.com/pldimitrov/Rrd

anantary
sumber
Terima kasih untuk rekomendasinya; Saya akan melihat ke dalam JSON (saya tidak tahu tentang Perl atau R). Juga, kedua tautan itu adalah 404 ketika saya mencobanya.
Liesmith
@Liesmith, saya sudah memperbaiki tautannya. Dalam kasus Anda, saya akan pergi dengan ekspor JSON dan kemudian pasca-pemrosesan dengan Python.
anantary
1

Saya pikir solusi terbaik untuk memahami format biner dari file RRD adalah mengunduh kode sumber RDDTool dari https://oss.oetiker.ch/rrdtool/download.en.html dan merekayasa ulang spesifikasi file dari file sumber rrd_fetch .c.

Jika Anda menginginkan gambaran umum struktur RRD XML, silakan merujuk ke https://serverfault.com/questions/287829/where-documentation-of-rrddump-xml-format-is

Setelah Anda melakukan kerja keras Anda dapat memposting ringkasan temuan Anda di sini :).

Richard Scrivener
sumber
Terima kasih, saya akan mencoba dan melihatnya kapan-kapan. Pengetahuan saya tentang C sebenarnya nol, tetapi mungkin memberikan beberapa petunjuk. Jika demikian, saya akan memperbarui pertanyaan asli saya ... tetapi jangan berharap sesuatu diselesaikan terlalu cepat dalam hal itu ...
Liesmith