Skip to content

Commit 1fa3d3a

Browse files
committed
input_chunk: extend chunk layer to support routing infomration
- New API for direct route persistence - Metadata parsing and writing functions - Backward compatibility maintained Signed-off-by: Eduardo Silva <[email protected]>
1 parent 4d3ad56 commit 1fa3d3a

File tree

2 files changed

+709
-35
lines changed

2 files changed

+709
-35
lines changed

include/fluent-bit/flb_input_chunk.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
#include <fluent-bit/flb_sds.h>
2525
#include <fluent-bit/flb_config.h>
2626
#include <fluent-bit/flb_routes_mask.h>
27+
#include <stdint.h>
28+
29+
struct cio_chunk;
2730

2831
#include <monkey/mk_core.h>
2932
#include <msgpack.h>
@@ -42,6 +45,17 @@
4245
/* Number of bytes reserved for Metadata Header on Chunks */
4346
#define FLB_INPUT_CHUNK_META_HEADER 4
4447

48+
/* Chunk metadata flags */
49+
#define FLB_CHUNK_FLAG_DIRECT_ROUTES (1 << 0)
50+
#define FLB_CHUNK_FLAG_DIRECT_ROUTE_LABELS (1 << 1)
51+
#define FLB_CHUNK_FLAG_DIRECT_ROUTE_WIDE_IDS (1 << 2)
52+
53+
struct flb_chunk_direct_route {
54+
uint32_t id;
55+
uint16_t label_length;
56+
const char *label;
57+
};
58+
4559
/* Chunks magic bytes (starting from Fluent Bit v1.8.10) */
4660
#define FLB_INPUT_CHUNK_MAGIC_BYTE_0 (unsigned char) 0xF1
4761
#define FLB_INPUT_CHUNK_MAGIC_BYTE_1 (unsigned char) 0x77
@@ -110,6 +124,18 @@ int flb_input_chunk_get_event_type(struct flb_input_chunk *ic);
110124
int flb_input_chunk_get_tag(struct flb_input_chunk *ic,
111125
const char **tag_buf, int *tag_len);
112126

127+
int flb_input_chunk_write_header_v2(struct cio_chunk *chunk,
128+
int event_type,
129+
char *tag, int tag_len,
130+
const struct flb_chunk_direct_route *routes,
131+
int route_count);
132+
int flb_input_chunk_has_direct_routes(struct flb_input_chunk *ic);
133+
int flb_input_chunk_get_direct_routes(struct flb_input_chunk *ic,
134+
struct flb_chunk_direct_route **routes,
135+
int *route_count);
136+
void flb_input_chunk_destroy_direct_routes(struct flb_chunk_direct_route *routes,
137+
int route_count);
138+
113139
void flb_input_chunk_ring_buffer_cleanup(struct flb_input_instance *ins);
114140
void flb_input_chunk_ring_buffer_collector(struct flb_config *ctx, void *data);
115141
ssize_t flb_input_chunk_get_size(struct flb_input_chunk *ic);

0 commit comments

Comments
 (0)