gcloud регистрирует CLI, используя фильтр отметок времени - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь получить логи из gcloud (GKE) для подсчета количества различных кодов ошибок HTTP ... вот моя команда:

gcloud logging read "resource.type=container AND resource.labels.cluster_name=AAA AND resource.labels.namespace_id=BBB AND timestamp>=(2018-09-21T13:20:00Z) AND timestamp<=(2018-09-21T13:30:00Z)" |grep -i textpayload -A 1| grep 'GET\|POST\|PUT\|DELETE\|HEAD' | grep -v null | awk '{print $9}' | sort | uniq -c | sort -rn

Если я уберу «метку времени» и использую «--limit "это дает мне вывод, и все в порядке, но я хочу получать журналы за определенный период и согласно документации я должен использовать фильтр" timestamp ", но это дает мне следующую ошибку:

ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Неразборчивый фильтр: синтаксическая ошибка в строке 1, столбце 155, токен ':';синтаксическая ошибка в строке 1, столбец 193, токен ':'

Пожалуйста, помогите мне с правильным синтаксисом указания меток времени

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Как вы упомянули, ваш синтаксис кажется неправильнымМне удалось успешно прочитать записи в журналах с помощью следующих команд (вы можете найти примеров использования этой команды):

gcloud logging read \ 'resource.type = container AND resource.labels.cluster_name = стандартная группа-2 И временная метка <= "2018-09-21T23: 59: 59Z" И <br>временная метка> = "2018-09-21T00: 00: 00Z" '--limit = 2

0 голосов
/ 27 сентября 2018

Вы должны экранировать строки меток времени (и все другие строковые значения в вашей строке фильтра).

Я знаю!Это не мой любимый, но ...

gcloud logging read "timestamp>=\"2018-09-21T13:20:00Z\" AND timestamp<=\"2018-09-21T13:30:00Z\""

...