Как я могу войти в Google Cloud Logging из приложения AngularJS?

Я хотел бы иметь возможность просматривать ошибки на стороне клиента в средстве просмотра журнала Google Cloud. Можно ли создавать записи журнала из приложения AngularJS, и если да, то как?


person Jonas K    schedule 12.08.2016    source источник
comment
Не знаю, почему Google не перенес плагин nodejs stackdriver на клиент. Если кто-то получит стек-драйвер узла браузера, работающий с веб-пакетом, и машинописный текст, пожалуйста, прокомментируйте!   -  person Josh Hibschman    schedule 30.08.2017


Ответы (2)


Отчеты об ошибках Stackdriver специально разработаны для ошибок приложений, я рекомендую вам использовать их, а не журналы Stackdriver для отчетов об ошибках.

Для отчетов об ошибках на стороне клиента вам потребуется использовать HTTP report API с ключом API.

Я написал библиотеку JavaScript, чтобы помочь вам вызвать эту конечную точку из клиента: https://github.com/GoogleCloudPlatform/stackdriver-errors-js

Я еще не тестировал его с приложением Angular (но есть проблема с отслеживанием для этого). Он помечен как экспериментальный, но уже должен быть достаточно стабильным. Ваш вклад приветствуется, если вы столкнулись с проблемами или хотели бы помочь

person Steren    schedule 06.09.2016
comment
В чем разница между отчетами об ошибках через журналы stackdriver и отчетами об ошибках Stackdriver? - person Josh Hibschman; 30.08.2017
comment
@ y3sh Stackdriver Error Reporting — это решение для создания отчетов о сбоях: это не просто список записей, но оно осмысленно группирует ошибки и отслеживает количество каждой группы. - person Steren; 30.08.2017

Если вы действительно хотите видеть ошибки в средстве просмотра журналов, в GCE или AWS EC2 это можно сделать, установив Агент ведения журнала Stackdriver и либо

or

  • Запишите свои журналы на диск и скажите агенту просмотреть эти файлы (см. документацию in_tail).

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

Оба вышеперечисленных являются серверными, поэтому ваш клиентский код должен каким-то образом передавать ошибки на сервер. Также можно указать порт переадресации для клиента, но см. ниже.

Другой альтернативой является использование API отчетов об ошибках Stackdriver и размещение сообщений либо с сервера, либо непосредственно с ваш клиентский код. В этом случае ошибки будут отображаться в консоли отчетов об ошибках Stackdriver, а не в средстве просмотра журналов.

Имейте в виду, что запись клиентом напрямую либо в порт агента, либо в API отчетов об ошибках по своей сути небезопасна, поскольку соответствующий ключ порта/API должен быть открыт для доступа в Интернет (поэтому записи могут быть подделаны, а злоумышленник может, например, , используйте свою квоту).

Благодарим вас за использование Google Stackdriver.

person Igor Peshansky    schedule 25.08.2016
comment
Спасибо за Ваш ответ. Я выбрал серверное решение, в котором я создал REST API для ведения журнала, развернутый в экземпляре node.js AppEngine, где агент уже запущен. Затем нужно просто написать в /var/log/app_engine/custom_logs/client.log.json в формате записи журнала Stackdriver JSON. - person Jonas K; 29.08.2016
comment
Вы правы, это решение. Я опубликовал альтернативный ответ на ваш вопрос, который может помочь вам избавиться от этого экземпляра прокси-сервера AppEngine. - person Steren; 06.09.2016