Множественные форматы времени с использованием парсера fluentd JSON - PullRequest
0 голосов
/ 29 мая 2020

В настоящее время я читаю журналы контейнеров в качестве источника в fluentd, и я анализирую все наши файлы журналов в формате JSON. Парсер JSON работает должным образом, исходя из нашей конфигурации, но проблема заключается в формате времени. В зависимости от файла журнала существует несколько форматов времени.

Например, в одном файле журнала время может храниться как 2020-05-28T21: 00: 07Z, а в другом - как 2020-04-28T20: 07: 52.013557931Z. Время сохраняется в ключе с именем "time" во всех случаях, поэтому fluentd по умолчанию пытается проанализировать этот ключ.

Можно ли использовать тот же фильтр для анализа всех JSON данных, но есть он обрабатывает несколько форматов времени? Нужно ли нам создавать разные фильтры для каждого формата времени?

1 Ответ

1 голос
/ 29 мая 2020

Это скорее «беглый» вопрос, чем прямой вопрос «Ruby».

Однако, на ваш конкретный c вопрос о фильтрах, вообще говоря, невозможно указать конкретные c форматы даты на основе одного только значения. Например, означает ли "2020-03-04" 4 марта (гггг-ММ-дд) или 3 апреля (гггг-дд-ММ)? К сожалению, невозможно определить только по значениям.

Как правило, лучше всего проверять формат каждого источника (читая документацию для этого источника или иным образом) и убедиться, что идентифицирующая информация доступна для t ie значение даты возвращается к источнику. Без этого ни fluentd, ни какая-либо другая программа не сможет определить, сколько сейчас времени (хотя в некоторых ситуациях вы можете использовать трюки, чтобы определить, какое время не .)

...