minor - add kaitaistruct for journal v2 files (#14267)
add kaitaistruct for journal v2 files
Timotej S committed
Jan 17, 2023 at 13:45 UTC
f4ed68f9b528ebbfadf2a076776746e6267e7ecb
1 file changed
+144
database/engine/journalfile.ksy
new
+144
@@ -0,0 +1,144 @@
1
+meta:
2
+ id: netdata_journalfile_v2
3
+ endian: le
4
+
5
+seq:
6
+ - id: journal_v2_header
7
+ type: journal_v2_header
8
+ size: 4096
9
+ - id: extent_list
10
+ type: journal_v2_extent_list
11
+ repeat: expr
12
+ repeat-expr: journal_v2_header.extent_count
13
+ - id: extent_trailer
14
+ type: journal_v2_block_trailer
15
+ - id: metric_list
16
+ type: journal_v2_metric_list
17
+ repeat: expr
18
+ repeat-expr: journal_v2_header.metric_count
19
+ - id: metric_trailer
20
+ type: journal_v2_block_trailer
21
+ - id: page_blocs
22
+ type: jounral_v2_page_blocs
23
+ size: _root._io.size - _root._io.pos - 4
24
+ - id: journal_file_trailer
25
+ type: journal_v2_block_trailer
26
+
27
+
28
+types:
29
+ journal_v2_metric_list:
30
+ seq:
31
+ - id: uuid
32
+ size: 16
33
+ - id: entries
34
+ type: u4
35
+ - id: page_offset
36
+ type: u4
37
+ - id: delta_start_s
38
+ type: u4
39
+ - id: delta_end_s
40
+ type: u4
41
+ instances:
42
+ page_block:
43
+ type: journal_v2_page_block
44
+ io: _root._io
45
+ pos: page_offset
46
+ journal_v2_page_hdr:
47
+ seq:
48
+ - id: crc
49
+ type: u4
50
+ - id: uuid_offset
51
+ type: u4
52
+ - id: entries
53
+ type: u4
54
+ - id: uuid
55
+ size: 16
56
+ journal_v2_page_list:
57
+ seq:
58
+ - id: delta_start_s
59
+ type: u4
60
+ - id: delta_end_s
61
+ type: u4
62
+ - id: extent_idx
63
+ type: u4
64
+ - id: update_every_s
65
+ type: u4
66
+ - id: page_len
67
+ type: u2
68
+ - id: type
69
+ type: u1
70
+ - id: reserved
71
+ type: u1
72
+ instances:
73
+ extent:
74
+ io: _root._io
75
+ type: journal_v2_extent_list
76
+ pos: _root.journal_v2_header.extent_offset + (extent_idx * 16)
77
+ journal_v2_header:
78
+ seq:
79
+ - id: magic
80
+ contents: [ 0x19, 0x10, 0x22, 0x01 ] #0x01221019
81
+ - id: reserved
82
+ type: u4
83
+ - id: start_time_ut
84
+ type: u8
85
+ - id: end_time_ut
86
+ type: u8
87
+ - id: extent_count
88
+ type: u4
89
+ - id: extent_offset
90
+ type: u4
91
+ - id: metric_count
92
+ type: u4
93
+ - id: metric_offset
94
+ type: u4
95
+ - id: page_count
96
+ type: u4
97
+ - id: page_offset
98
+ type: u4
99
+ - id: extent_trailer_offset
100
+ type: u4
101
+ - id: metric_trailer_offset
102
+ type: u4
103
+ - id: original_file_size
104
+ type: u4
105
+ - id: total_file_size
106
+ type: u4
107
+ - id: data
108
+ type: u8
109
+ instances:
110
+ trailer:
111
+ io: _root._io
112
+ type: journal_v2_block_trailer
113
+ pos: _root._io.size - 4
114
+ journal_v2_block_trailer:
115
+ seq:
116
+ - id: checksum
117
+ type: u4
118
+ journal_v2_extent_list:
119
+ seq:
120
+ - id: datafile_offset
121
+ type: u8
122
+ - id: datafile_size
123
+ type: u4
124
+ - id: file_idx
125
+ type: u2
126
+ - id: page_cnt
127
+ type: u1
128
+ - id: padding
129
+ type: u1
130
+ journal_v2_page_block:
131
+ seq:
132
+ - id: hdr
133
+ type: journal_v2_page_hdr
134
+ - id: page_list
135
+ type: journal_v2_page_list
136
+ repeat: expr
137
+ repeat-expr: hdr.entries
138
+ - id: block_trailer
139
+ type: journal_v2_block_trailer
140
+ jounral_v2_page_blocs:
141
+ seq:
142
+ - id: blocs
143
+ type: journal_v2_page_block
144
+ repeat: eos