Cloud Logging にログを送信する

ワークフローは、Cloud Logging でのワークフロー実行の実行ログを自動的に生成します。

コールロギングを有効にすることもできます。または、ソースで sys.log 関数を使用するカスタムログを作成できます。コールロギングとカスタムログを使用すると、ワークフローの実行中にログが Logging に送信されるタイミングを制御できます。特に、ワークフローをデバッグする際に便利です。

engine_call および executions_system ロギング proto ファイルなどの詳細については、こちら GitHub リポジトリをご覧ください。

実行ログ

ワークフローが実行されるたびに、少なくとも 2 つの実行ログ(実行の開始時と終了時に 1 つずつ)が自動的にトリガーされます。

Logging で使用可能な Workflows プラットフォーム ログの詳細については、Google Cloud プラットフォーム ログをご覧ください。

コールロギング

フラグを設定して、ワークフローの実行中に各呼び出しステップがログに記録され、ステップ名、関数名、関数引数、呼び出しレスポンスが返されます。または、キャッチされた例外や呼び出しを停止した例外をログに記録することもできます。

明示的な呼び出しステップのみがログに記録されます。たとえば、サブワークフローやライブラリ関数の呼び出しなどです。式内や標準ライブラリ関数(sys.loghttp.post など)内からの呼び出しと、コネクタ内部からの呼び出しはログに記録されません。

HTTP Authorization リクエスト ヘッダーは、HTTP 呼び出しのログから削除されます。

ワークフローの定義またはワークフローの実行にコールロギングを適用するときは、必要なロギングのレベルを指定できます。実行ログレベルが指定されていない場合を除き、実行ログレベルがワークフローのログレベルよりも優先されます(デフォルト)。実行ログレベルが指定されていない場合、ワークフローのログレベルが適用されます。

Cloud Logging によって設定されたログエントリのサイズ制限は、呼び出しのログ記録にも適用されます。

カスタムログ

ワークフローの実行中に Logging でログエントリを作成するには、標準ライブラリ sys.log 関数を呼び出すステップをワークフローに定義します。

YAML

  - step1:
      assign:
          - varA: "Hello"
          - varB: "World"
  - logStep:
      call: sys.log
      args:
          text: TEXT
          severity: SEVERITY 
  - step2:
      return: ${varA + " " + varB}
    

JSON

    [
      {
        "step1": {
          "assign": [
            {
              "varA": "Hello"
            },
            {
              "varB": "World"
            }
          ]
        }
      },
      {
        "logStep": {
          "call": "sys.log",
          "args": {
            "text": "TEXT",
            "severity": "SEVERITY"
          }
        }
      },
      {
        "step2": {
          "return": "${varA + " " + varB}"
        }
      }
    ]
      

ログエントリの作成時に、以下を定義します。

  • TEXT: 必須。ログに記録するテキスト。マップの値をログに記録する必要がある場合は、${json.encode_to_string(myMap)} を使用します。
  • SEVERITY: 省略可。ログエントリの重大度。例: INFOWARNING、または CRITICAL

詳細については、sys.log 関数のリファレンスをご覧ください。

必要な権限

コールロギングを適用するか、カスタムログを Logging に送信するには、logging.logEntries.create 権限(たとえば、roles/logging.logWriter ロール)を含むサービス アカウントにワークフローを関連付ける必要があります。ワークフローでサービス アカウントを最新に変更する必要がある場合は、ワークフローの更新をご覧ください。サービス アカウントの作成とロールの割り当てに関する詳細は、プロジェクト、フォルダ、組織へのアクセスの管理をご覧ください。

ワークフローのログを表示する

ログは、ワークフローかロギングに表示できます。1 つのワークフローのログを表示するには、ワークフローで [ログ] タブを使用します。すべてのワークフローのログの集計ビューを取得するには、ロギングの [ログ エクスプローラ] ページを使用します。

Workflows でログを表示する

ワークフローでワークフローのログを表示するには:

  1. Google Cloud コンソールの [ワークフロー] ページに移動します。

    [ワークフロー] に移動

  2. ワークフローのログにアクセスするには、ワークフローの名前をクリックして [詳細] ページに移動します。

  3. ログを表示するには、[ログ] をクリックします。

  4. 重大度でログをフィルタするには、[デフォルト] リストで、表示するログのタイプを選択します。デフォルトでは、すべての重大度レベルのログが表示されます。

ワークフローの [詳細] ページの [ログ] タブに、次のタイプのログが表示されます。

  • Logging に送信されたログ

  • ワークフローの定義の更新など、ワークフローで実行されるオペレーションの監査ログ

Logging でログを表示する

Logging でログを表示するには:

  1. Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. クエリビルダーで [リソース] をクリックし、workflow を入力します。リストから [Cloud Workflow] を選択し、[追加] をクリックします。

    ワークフローのロギング

  3. [実行] をクリックします。

Logging でログを表示する方法の詳細については、ログ エクスプローラの使用をご覧ください。

次のステップ