ログの記録と表示

このページでは、Cloud Run for Anthos on Google Cloud で使用可能なログと、ログの表示と書き込みを行う方法について説明します。

Cloud Run for Anthos on Google Cloud には次の 2 種類のログがあります。これらのログは自動的に Cloud Logging に送信されます。

  • リクエストログ: Cloud Run for Anthos on Google Cloud サービスに送信されたリクエストのログ。これらのログは自動的に作成されます。
  • コンテナログ: コンテナ インスタンス(通常は独自のコード)から出力されたログです。コンテナログを作成するで説明されているように、サポートされているロケーションに書き込まれます。

ログを表示する

サービスのログはいくつかの方法で表示できます。

  • Cloud Console で Cloud Run for Anthos on Google Cloud ページを使用する
  • Cloud Console で Cloud Logging のログビューアを使用する

どちらの表示方法でも、Cloud Logging に保存されている同じログを調べることができますが、Cloud Logging のログビューアでは、詳細な情報が表示されます。また、より多くのフィルタリング機能を使用できます。

Cloud Run for Anthos on Google Cloud でログを表示する

Cloud Run for Anthos on Google Cloud ページでログを表示するには:

  1. Cloud Run for Anthos on Google Cloud に移動

  2. 表示されたリストで、必要なサービスをクリックします。

  3. このサービスのすべてのリビジョンのリクエストログとコンテナログを取得するには、[ログ] タブをクリックします。ログの重大度でフィルタリングできます。

Cloud Logging でログを表示する

Cloud Logging のログビューアで Cloud Run for Anthos on Google Cloud のログを表示するには:

  1. Cloud Console の [ログビューア] ページに移動します。

    ログビューア ページに移動

  2. ページの上部で既存の Google Cloud プロジェクトを選択するか、新しいプロジェクトを作成します。

  3. プルダウン メニューからリソース(Kubernetes コンテナ)を選択します。

詳しくは、Google Cloud のオペレーション スイート Logging でのログの表示をご覧ください。

Cloud Code でログを表示する

Cloud Code でログを表示するには、IntelliJVisual Studio Code のガイドをご覧ください。

プログラムでログを読み取る

プログラムでログを読み取るには、次のいずれかの方法を使用します。

コンテナログを作成する

サービスからログを作成する場合、ログの出力先が次のいずれかであれば、Cloud Logging によってログが自動的に取得されます。

ほとんどのデベロッパーは、ログの出力先として標準出力と標準エラーを想定しています。

これらの場所に作成されたコンテナログは、Cloud Run for Anthos on Google Cloud サービス、リビジョン、ロケーションと自動的に関連付けられます。

コンテナログとリクエストログの関連付け

ログビューアでは、同じ trace で関連付けられたログを「親子」形式で表示できます。リクエスト ログエントリの左側にある三角形のアイコンをクリックすると、該当するリクエストに関連付けられたコンテナログが、リクエストログの下にネストされた状態で表示されます。

Cloud Logging クライアント ライブラリを使用しない限り、コンテナログは自動的にリクエストログに関連付けられません。クライアント ライブラリを使用せずにコンテナログをリクエストログに関連付けるには、上記の構造化ロギングのサンプルで示した X-Cloud-Trace-Context ヘッダーから抽出された、トレース ID を持つ logging.googleapis.com/trace フィールドを含む構造化 JSON ログの行を使用します。

リクエストログのリソース使用量を制御する

リクエストログは自動的に作成されます。リクエストログの量を Cloud Run for Anthos on Google Cloud から直接制御することはできませんが、Cloud Logging のログの除外機能を使用できます。

ロギング エージェントに関する注意事項

Compute Engine などの特定の Google Cloud プロダクトで Cloud Logging を使用している場合は、Cloud Logging のロギング エージェントを使用した可能性があります。Cloud Run for Anthos on Google Cloud はログ収集のサポートが組み込まれているため、ロギング エージェントを使用しません。

ロギング リソース

ログビューアでログエントリをクリックすると、JSON 形式のログエントリが表示され、必要な詳細を確認できます。

タイムスタンプ、重大度、httpRequest など、ログエントリ内のすべてのフィールドが標準で表示されます。詳しくは、ログエントリのドキュメントをご覧ください。

ただし、Cloud Run for Anthos on Google Cloud 専用のラベルやリソースラベルがあります。以下にサンプルを示します。

{
 httpRequest: {…}
 insertId:  "5c82b3d1000ece0000000000"
 labels: {
  instanceId:  "00bf4bf00000fb59c906a00000c9e29c2c4e06dce91500000000056008d2b6460f163c0057b97b2345f2725fb2423ee5f0bafd36df887fdb1122371563cf1ff453717282afe000001"
 }
 logName:  "projects/my-project/logs/kuberun/.googleapis.com%2Frequests"
 receiveTimestamp:  "2019-03-08T18:26:25.981686167Z"
 resource: {
  labels: {
   configuration_name:  "myservice"
   location:  "us-central1"
   project_id:  "my-project"
   revision_name:  "myservice-00002"
   service_name:  "myservice"
  }
  type:  "k8s_container"
 }
 severity:  "INFO"
 timestamp:  "2019-03-08T18:26:25.970397Z"
}
フィールド 値とメモ
instanceId リクエストを処理したコンテナ インスタンス。
logName リクエストログ、標準エラー、標準出力など、ログの種類を表します。
configuration_name リクエストを処理したリビジョンを作成した構成リソース。
location サービスの GCP ロケーション。
project_id サービスがデプロイされているプロジェクト。
revision_name リクエストを処理したリビジョン。
service_name リクエストを処理したサービス。
type k8s_container。Cloud Run for Anthos on Google Cloud リソースタイプ。