@ google-cloud / logging-winston не ведет журнал из NodeJS через некоторое время внутри экземпляра GCE

Узел: 10.16.0

@ google-cloud / logging-winston: 2.0.0

Сервер: экземпляр виртуальной машины GCE

Я вхожу в stackdriver из процесса моего узла, на котором запущен экземпляр GCE. Я добавляю следующий объект в свой транспорт Winston

new require("@google-cloud/logging-winston").LoggingWinston({
  projectId: "my-google-project-id"
})

После развертывания в GCP и запуска процесса узла я получаю журналы в GCP Logs Viewer. Все идет нормально. Через пару часов (а в некоторых случаях и минут) я перестаю получать журналы в средстве просмотра журналов. Когда я проверяю процесс узла на моем экземпляре виртуальной машины, он все еще работает и записывает журналы на консоль. Но гугл-облачный транспорт вообще не работает. Если я остановлю процесс узла и снова начну новый, я снова начну получать журналы в средстве просмотра журналов. Но снова через некоторое время он перестает регистрироваться. Я попробовал перейти с @ google-cloud / logging-winston @ 2.0.0 на 1.1.1, но все равно. Может быть, я бью какие-то квоты? Или это может быть потому, что есть какая-то неперехваченная ошибка, и из-за нее происходит сбой @ google-cloud / logging-winston?


person Jophin Joseph    schedule 30.08.2019    source источник


Ответы (1)


В некоторых случаях возможно, что некоторые журналы пропускаются из-за проблем, связанных с разрешениями. Убедитесь, что ваша учетная запись службы имеет соответствующие разрешения [1].

Вот наша документация о том, как настроить Winston, на случай, если она вам не показалась [2].

[1] https://cloud.google.com/logging/docs/agent/troubleshooting#verify-creds

[2] https://cloud.google.com/logging/docs/setup/nodejs#using_winston

person Alexandre    schedule 30.08.2019
comment
Проблема с logrotate, упомянутая в первой ссылке, может быть моей проблемой. Я запускаю приложение узла, используя pm2, и у меня есть настройка pm2 logrotate. Есть ли что-то особенное, что я должен сделать, чтобы ведение журнала stackdriver не прервалось из-за этого? - person Jophin Joseph; 03.09.2019
comment
В документации рекомендуется обходной путь использования параметра nocopytrucate и упоминается, что для предотвращения его сбоя вам необходимо периодически перезапускать агент. - person Alexandre; 04.09.2019
comment
Я не думаю, что проблема в logrotate. Я не использую агента. Я использую библиотеку node js для ведения журнала. Проблема logrotate упоминается для агента ведения журнала, который я не использую. - person Jophin Joseph; 04.09.2019