Skip to content

Commit 470d4b5

Browse files
committed
engine: when a chunk is flushed, update the latency histogram
Signed-off-by: Eduardo Silva <[email protected]>
1 parent 64b3de9 commit 470d4b5

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/flb_engine.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include <fluent-bit/flb_bucket_queue.h>
2626
#include <fluent-bit/flb_event_loop.h>
2727
#include <fluent-bit/flb_time.h>
28+
#include <fluent-bit/flb_lib.h>
2829
#include <fluent-bit/flb_info.h>
2930
#include <fluent-bit/flb_bits.h>
3031

@@ -241,6 +242,7 @@ static inline int handle_output_event(uint64_t ts,
241242
int retry_seconds;
242243
uint32_t type;
243244
uint32_t key;
245+
double latency_seconds;
244246
char *name;
245247
struct flb_task *task;
246248
struct flb_task_retry *retry;
@@ -305,6 +307,13 @@ static inline int handle_output_event(uint64_t ts,
305307
cmt_counter_add(ins->cmt_proc_bytes, ts, task->event_chunk->size,
306308
1, (char *[]) {name});
307309

310+
/* latency histogram */
311+
if (ins->cmt_latency) {
312+
latency_seconds = flb_time_now() - ((struct flb_input_chunk *) task->ic)->create_time;
313+
cmt_histogram_observe(ins->cmt_latency, ts, latency_seconds, 2,
314+
(char *[]) {(char *) flb_input_name(task->i_ins), name});
315+
}
316+
308317
/* [OLD API] Update metrics */
309318
#ifdef FLB_HAVE_METRICS
310319
if (ins->metrics) {
@@ -984,7 +993,7 @@ int flb_engine_start(struct flb_config *config)
984993

985994
config->grace_input = config->grace / 2;
986995
flb_info("[engine] Shutdown Grace Period=%d, Shutdown Input Grace Period=%d", config->grace, config->grace_input);
987-
996+
988997
while (1) {
989998
rb_flush_flag = FLB_FALSE;
990999

@@ -1057,10 +1066,10 @@ int flb_engine_start(struct flb_config *config)
10571066
if (ret > 0 && (config->grace_count < config->grace || config->grace == -1)) {
10581067
if (config->grace_count == 1) {
10591068
flb_task_running_print(config);
1060-
/*
1069+
/*
10611070
* If storage.backlog.shutdown_flush is enabled, attempt to flush pending
1062-
* filesystem chunks during shutdown. This is particularly useful in scenarios
1063-
* where Fluent Bit cannot restart to ensure buffered data is not lost.
1071+
* filesystem chunks during shutdown. This is particularly useful in scenarios
1072+
* where Fluent Bit cannot restart to ensure buffered data is not lost.
10641073
*/
10651074
if (config->storage_bl_flush_on_shutdown) {
10661075
ret = sb_segregate_chunks(config);

0 commit comments

Comments
 (0)