Google Cloud Platform

Stackdriver Debugger : アプリにその場でログ文を追加できるログポイント

私たちが Stackdriver Debugger にスナップショット機能を追加したのは 2014 年のことでした。これを使えば、ユーザーに影響を及ぼすことなく、本番環境のアプリケーションのコール スタックと変数を検証できます。この 1 年間で、Google App Engine やさまざまなところにホスティングされた VM、コンテナで実行されているサービス全体で 30 万以上の本番スナップショットが作成されました。

この投稿では、本番環境で実行中のアプリケーションにすばやくログ文を追加できる Stackdriver Debugger のログポイントを紹介します。

根本的な原因がわからない本番でのイシューを診断するときなどは、スナップショットと並んでこの機能がとても役に立ちます。アプリケーションのビルドやデプロイを再度行う必要はありません。しかも、ログポイントは既存のログ ベースのワークフローにぴったりと適合します。

788096.gif

ログポイントを追加するには、Debugger のソース ビューア上で行をクリックし、新しいログ メッセージを入力するだけです(事前に、右ペインのログポイント タブを開いておいてください)。

ソース コードを同期していない場合は、右ペインでターゲット ファイルと行番号を指定するか、gcloud コマンドライン ツールを使ってログポイントを追加します。変数は {variableName} で参照できます。詳細はこちらのドキュメントをご覧ください。

ログポイントはアプリケーションの既存のロギング メカニズムを使って出力を生成するので、Splunk や Kibana を含む任意のログ収集や分析ツールに対して互換性があります。また、ローカルに保存されたログからログポイント出力を読み込むことも可能です。もちろん、Stackdriver のお客様なら、Stackdriver Debugger UI からログ出力を読み出すことができます。

JavaGoNode.jsPythonRuby で書かれたアプリケーションであれば、Stackdriver Debugger エージェントを通じてログポイントを利用できます。スナップショットと同様に、VM(Google Compute Engine を含む)、コンテナ(Google Container Engine を含む)、Google App Engine のどの環境でもこれらの言語がサポートされています。また、gcloud コマンドライン ツールは以前からログポイントに対応していましたが、これは今でも変更ありません。

設定したログポイントは、24 時間が経過するまで、あるいは削除されたりアプリケーションが新たにデプロイされたりするまで有効です。

ログポイントを追加すると、コードに直接ログ文を追加した場合と同程度のパフォーマンス コストがかかります。ただし、アプリケーションのパフォーマンスにマイナスの影響を与えるログポイントや、長すぎて評価できない条件を持つログポイントやスナップショットは、Stackdriver Debugger エージェントによって自動的に調整されます。

私たち Google は、サービスのパフォーマンスと信頼性の向上のために、毎日スナップショットやログポイントなどのテクノロジーを活用して本番環境の問題解決に努めています。スナップショットについては、問題解決の主要ツールとして活用していることをお客様から伺っています。ログポイントを使ったクラウド アプリケーションの改善事例についても、ぜひ話をお聞かせください。

* この投稿は米国時間 6 月 12 日、Stackdriver Trace and Debugger の Product Manager である Morgan McLean によって投稿されたもの(投稿はこちら)の抄訳です。

- By Morgan McLean, Product Manager, Stackdriver Trace and Debugger