Лучшее ведение журнала из облачной функции pub / sub в GCP - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь улучшить ведение журнала, полученное из функций GCP Pub / Sub Cloud на основе моего node.js.Используя только console.log, я могу видеть все в Stackdriver, но журналы не очень читабельны.Следы стека делятся на несколько строк, а уровни журналов в основном игнорируются (поэтому все либо отладки, либо ошибок, и ничего между ними). ​​

Я пытался использовать библиотеку журналов Google (через @ google-cloud / logging-bunyan),который устраняет вышеуказанные проблемы, но создает более (серьезные) проблемы.

При использовании @google-cloud/logging-bunyan с плохо работающей функцией (которая вылетает) вы получаете мало журналов в Stackdriver или вообще не получаете их.Проблема заключается в асинхронной природе библиотеки и в том, что функция не позволяет регистрировать вещи после ее сбоя.Я попытался открыть и закрыть регистратор, а также начало и конец каждой функции, что немного улучшило ситуацию.Но я начал получать очень странные ошибки (например, Maximum call stack size exceeded).

В конце концов я сдался и вернулся к console.log.

Обратите внимание, что решение @google-cloud/logging-bunyan, похоже, хорошо работает с облачными функциями HTTP.Я использую выходной крючок для очистки логгера в случае сбоя и до сих пор не видел никаких проблем с ним.

...