Skip to content

Commit dd09888

Browse files
committed
config: ml: Handle SI prefixes on the buffer limit of multiline
Signed-off-by: Hiroshi Hatake <[email protected]>
1 parent 4d638d5 commit dd09888

File tree

4 files changed

+14
-5
lines changed

4 files changed

+14
-5
lines changed

include/fluent-bit/flb_config.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ struct flb_config {
145145

146146
/* Multiline core parser definitions */
147147
struct mk_list multiline_parsers;
148-
size_t multiline_buffer_limit; /* limit for multiline concatenated data */
148+
char *multiline_buffer_limit; /* limit for multiline concatenated data */
149149

150150
/* Outputs instances */
151151
struct mk_list outputs; /* list of output plugins */

include/fluent-bit/multiline/flb_ml.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@
5353
#define FLB_ML_BUF_SIZE 1024*4
5454

5555
/* Default limit for concatenated multiline messages: 2MB */
56-
#define FLB_ML_BUFFER_LIMIT_DEFAULT (1024 * 1024 * 2)
56+
#define FLB_ML_BUFFER_LIMIT_DEFAULT_STR "2MB"
57+
#define FLB_ML_BUFFER_LIMIT_DEFAULT (1024 * 1024 * 2)
5758

5859
/* Return codes */
5960
#define FLB_MULTILINE_OK 0

src/flb_config.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ struct flb_service_config service_configs[] = {
170170
offsetof(struct flb_config, coro_stack_size)},
171171

172172
{FLB_CONF_STR_MULTILINE_BUFFER_LIMIT,
173-
FLB_CONF_TYPE_INT,
173+
FLB_CONF_TYPE_STR,
174174
offsetof(struct flb_config, multiline_buffer_limit)},
175175

176176
/* Scheduler */
@@ -365,7 +365,7 @@ struct flb_config *flb_config_init()
365365
* on we use flb_config_exit to cleanup the config, which requires
366366
* the config->multiline_parsers list to be initialized. */
367367
mk_list_init(&config->multiline_parsers);
368-
config->multiline_buffer_limit = FLB_ML_BUFFER_LIMIT_DEFAULT;
368+
config->multiline_buffer_limit = FLB_ML_BUFFER_LIMIT_DEFAULT_STR;
369369

370370
/* Task map */
371371
ret = flb_config_task_map_resize(config, FLB_CONFIG_DEFAULT_TASK_MAP_SIZE);

src/multiline/flb_ml.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <fluent-bit/flb_time.h>
2525
#include <fluent-bit/flb_pack.h>
2626
#include <fluent-bit/flb_scheduler.h>
27+
#include <fluent-bit/flb_utils.h>
2728
#include <fluent-bit/multiline/flb_ml.h>
2829
#include <fluent-bit/multiline/flb_ml_rule.h>
2930
#include <fluent-bit/multiline/flb_ml_group.h>
@@ -867,6 +868,7 @@ int flb_ml_append_event(struct flb_ml *ml, uint64_t stream_id,
867868
struct flb_ml *flb_ml_create(struct flb_config *ctx, char *name)
868869
{
869870
int result;
871+
size_t limit = 0;
870872
struct flb_ml *ml;
871873

872874
ml = flb_calloc(1, sizeof(struct flb_ml));
@@ -881,7 +883,13 @@ struct flb_ml *flb_ml_create(struct flb_config *ctx, char *name)
881883
}
882884

883885
ml->config = ctx;
884-
ml->buffer_limit = ml->config->multiline_buffer_limit;
886+
limit = flb_utils_size_to_bytes(ml->config->multiline_buffer_limit);
887+
if (limit > 0) {
888+
ml->buffer_limit = (size_t)limit;
889+
}
890+
else {
891+
ml->buffer_limit = FLB_ML_BUFFER_LIMIT_DEFAULT;
892+
}
885893
ml->last_flush = time_ms_now();
886894
mk_list_init(&ml->groups);
887895

0 commit comments

Comments
 (0)