datafile.ksy 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. meta:
  2. id: netdata_datafile
  3. endian: le
  4. seq:
  5. - id: hdr
  6. type: header
  7. size: 4096
  8. - id: extents
  9. type: extent
  10. repeat: eos
  11. types:
  12. header:
  13. seq:
  14. - id: magic
  15. contents: "netdata-data-file"
  16. - id: reserved
  17. size: 15
  18. - id: version
  19. contents: "1.0"
  20. - id: reserved1
  21. size: 13
  22. - id: tier
  23. type: u1
  24. extent_page_descr:
  25. seq:
  26. - id: type
  27. type: u1
  28. enum: page_type
  29. - id: uuid
  30. size: 16
  31. - id: page_len
  32. type: u4
  33. - id: start_time_ut
  34. type: u8
  35. - id: end_time_ut
  36. type: u8
  37. enums:
  38. page_type:
  39. 0: metrics
  40. 1: tier
  41. extent_header:
  42. seq:
  43. - id: payload_length
  44. type: u4
  45. - id: compression_algorithm
  46. type: u1
  47. enum: compression_algos
  48. - id: number_of_pages
  49. type: u1
  50. - id: page_descriptors
  51. type: extent_page_descr
  52. repeat: expr
  53. repeat-expr: number_of_pages
  54. enums:
  55. compression_algos:
  56. 0: rrd_no_compression
  57. 1: rrd_lz4
  58. extent_trailer:
  59. seq:
  60. - id: crc32_checksum
  61. type: u4
  62. extent:
  63. seq:
  64. - id: header
  65. type: extent_header
  66. - id: payload
  67. size: header.payload_length
  68. - id: trailer
  69. type: extent_trailer
  70. - id: padding
  71. size: (((_io.pos + 4095) / 4096) * 4096) - _io.pos
  72. # the extent size is made to always be a multiple of 4096