Google Cloud Log Viewer でクライアント側のエラーを表示できるようにしたいと考えています。AngularJS アプリケーションからログ エントリを作成することは可能ですか?
2 に答える
Stackdriver Error Reporting は、アプリケーション エラー用に特別に設計されています。エラーを報告するには、Stackdriver Logging ではなく、これを使用することをお勧めします。
クライアント側のエラー報告には、 HTTP report
APIと API キーを使用する必要があります。
クライアントからこのエンドポイントを呼び出すのに役立つ JavaScript ライブラリを作成しました: https://github.com/GoogleCloudPlatform/stackdriver-errors-js
Angular アプリではまだテストしていません (ただし、これには追跡の問題があります)。実験的なものとしてフラグが立てられていますが、すでにかなり安定しているはずです。問題が発生した場合、または支援したい場合は、貢献を歓迎します
本当にログビューアでエラーを確認したい場合は、GCE または AWS EC2 でこれを行う方法として、Stackdriver Logging エージェントをインストールし、次のいずれかを行います。
- ログ メッセージを JSON としてポート 24224 に書き込みます ( in_forward のドキュメントを参照してください) 。
また
- ログをディスクに書き込み、それらのファイルを監視するようにエージェントに指示します ( in_tail のドキュメントを参照してください)。
転送ポートは、エージェントで事前に構成されています。ログ ファイルを使用することを選択した場合は、エージェントがログ ファイルを指すように独自の構成を作成する必要があります。
上記は両方ともサーバー側であるため、クライアント コードは何らかの方法でエラーをサーバーに転送する必要があります。転送ポートをクライアントに公開することも可能ですが、以下を参照してください。
もう 1 つの方法は、Stackdriver Error Reporting APIを使用して、サーバーから、またはクライアント コードから直接投稿することです。そうすれば、ログビューアではなくStackdriver Error Reporting コンソールにエラーが表示されます。
関連するポート/API キーをインターネットに公開する必要があるため、クライアントがエージェント ポートまたは Error Reporting API に直接書き込むことは、本質的に安全ではないことに注意してください (そのため、エントリがスプーフィングされ、攻撃者がたとえば、 、割り当てを使い果たします)。
Google Stackdriver をご利用いただきありがとうございます。