@cryptotaxi247 / netdata-1 / commits / 2b8b8bc89

minor - kaitai for netdata datafiles (#14312)

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