From 9c7469ebea193d7ef2274216c71c57cf23de8b1e Mon Sep 17 00:00:00 2001 From: Jeongki Kim Date: Thu, 16 Sep 2021 13:55:17 +0900 Subject: [PATCH] pack: add 'epoch_ms' format Signed-off-by: Jeongki Kim --- include/fluent-bit/flb_pack.h | 1 + src/flb_pack.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/include/fluent-bit/flb_pack.h b/include/fluent-bit/flb_pack.h index 3b68caebd10..db6f2723be4 100644 --- a/include/fluent-bit/flb_pack.h +++ b/include/fluent-bit/flb_pack.h @@ -39,6 +39,7 @@ #define FLB_PACK_JSON_DATE_ISO8601 1 #define FLB_PACK_JSON_DATE_EPOCH 2 #define FLB_PACK_JSON_DATE_JAVA_SQL_TIMESTAMP 3 +#define FLB_PACK_JSON_DATE_EPOCH_MS 4 /* Specific ISO8601 format */ #define FLB_PACK_JSON_DATE_ISO8601_FMT "%Y-%m-%dT%H:%M:%S" diff --git a/src/flb_pack.c b/src/flb_pack.c index 249b075ee94..bc3b6b72b1a 100644 --- a/src/flb_pack.c +++ b/src/flb_pack.c @@ -817,6 +817,11 @@ int flb_pack_to_json_date_type(const char *str) else if (strcasecmp(str, "epoch") == 0) { return FLB_PACK_JSON_DATE_EPOCH; } + else if (strcasecmp(str, "epoch_ms") == 0 || + strcasecmp(str, "epoch_millis") == 0 || + strcasecmp(str, "epoch_milliseconds") == 0) { + return FLB_PACK_JSON_DATE_EPOCH_MS; + } return -1; } @@ -951,6 +956,11 @@ flb_sds_t flb_pack_msgpack_to_json_format(const char *data, uint64_t bytes, case FLB_PACK_JSON_DATE_EPOCH: msgpack_pack_uint64(&tmp_pck, (long long unsigned)(tms.tm.tv_sec)); break; + case FLB_PACK_JSON_DATE_EPOCH_MS: + msgpack_pack_uint64(&tmp_pck, + (long long unsigned)(tms.tm.tv_sec) * 1000 + + tms.tm.tv_nsec / 1000000); + break; } }