Function Compute は Simple Log Service と統合されています。関数に対してログ機能を設定すると、Function Compute は自動的にログを収集し、指定されたプロジェクト内の Logstore に配信します。個々のリクエストログ、インスタンスログ、関数ログは Function Compute コンソールで表示できます。また、Simple Log Service コンソールのログ分析機能を使用して、カスタムクエリを実行することもできます。
背景情報
Simple Log Service は、ログデータのワンストップサービスであり、ログ収集、ストレージ、クエリ、分析、可視化、アラート機能など、包括的な機能を提供します。関数ログを SLS に保存するには、関数用のプロジェクトと Logstore を設定し、関数にサービスへのアクセスに必要な権限を付与する必要があります。設定が完了すると、Function Compute は関数ログを指定された Logstore に送信します。
課金
課金モード
Function Compute は、ログ機能に対して追加料金を請求しません。ただし、SLS はログの配信とストレージに対して課金します。
Logstore が機能別課金を使用している場合、SLS は FC がログを送信した後、ストレージ、読み取りトラフィック、リクエスト、データ処理、データ転送に対して課金します。詳細については、「機能別課金の課金項目」をご参照ください。
Logstore がデータ量課金を使用している場合、SLS は FC がログを送信した後、書き込まれた生データの量などの要因に基づいて課金します。詳細については、「データ量課金の課金項目」をご参照ください。
Logstore の課金モードを変更するには、「Logstore の管理」をご参照ください。
課金の停止
課金を停止する必要がある場合は、まず Function Compute コンソールでログ機能を無効化してください。その後、Simple Log Service コンソールに移動して、Logstore を削除するか、プロジェクトを削除します。
この操作は元に戻すことができず、既存のすべてのデータが完全に削除され、Function Compute から Simple Log Service への今後のログ配信が停止します。続行する前に、重要なログデータをバックアップしてください。
関数ログの有効化
コンソール
前提条件
Function Compute
任意: Simple Log Service
操作手順
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
トップナビゲーションバーでリージョンを選択し、[関数] ページで対象の関数をクリックします。
関数詳細ページで、設定 タブをクリックします。変更 を 詳細設定 の横にクリックします。詳細設定 パネルで、ログ セクションを見つけ、パラメーターを設定し、デプロイ をクリックします。
説明関数を作成すると、ロギング機能はデフォルトで有効になります。システムは、
serverless-<region_id>で始まる Log Service プロジェクト とデフォルトの Logstore を自動的に選択します。コンソールは自動的にログのローテーションルール、リクエストレベルのメトリクス、およびインスタンスレベルのメトリクスを有効にし、ログのクエリに必要なすべてのインデックスを作成します。
パラメーター
必須
説明
ログ
はい
ログ機能を有効または無効にします。有効な値:
有効化:有効にすると、Function Compute はプロジェクトにログを送信します。その後、Function Compute コンソールまたは Simple Log Service コンソールでログをクエリおよび取得して、問題を追跡およびトラブルシューティングできます。
無効化:無効にすると、Function Compute は関数ログを永続化しないため、問題の追跡とトラブルシューティングが困難になります。
設定モード
はい
自動設定 または カスタム設定 を選択します。カスタム設定 を選択した場合、Log Service プロジェクト および Logstore パラメーターが必須です。
Log Service プロジェクト
はい
関数の呼び出しログが保存される SLS プロジェクト。
Logstore
はい
指定されたプロジェクト内で、関数の呼び出しログが保存される Logstore。
ログのローテーションルール
いいえ
ログ分割ルールを有効または無効にします。有効な値:
有効化:有効にすると、FC は指定されたルールに基づいてログをセグメントに分割し、各セグメントを個別のログエントリとして SLS に書き込みます。
デフォルトのログ分割ルールは
^.{0,2}\d{4}-\d{2}-\d{2}です。このルールはxxxx-xx-xx形式の日付に一致します。ここでxは数字を表します。このルールは、行が日付で始まるかどうかに基づいてログを分割します。たとえば、ログ行が 2023-10-10 で始まる場合、それは新しいログエントリの最初の行として扱われます。この行と、日付で始まらない後続のすべての行が、SLS に書き込まれる単一のログエントリに結合されます。無効化:無効にすると、Function Compute はデフォルトで改行文字
\nでログを分割します。
リクエストレベルのメトリクス
いいえ
リクエストレベルのメトリクスを有効または無効にします。この機能を有効にすることを強く推奨します。
有効な値:
有効化:有効にすると、各関数呼び出しのメトリクスが選択した Logstore に送信されます。これらのメトリクスには、実行時間、メモリ使用量、実行エラー、コールドスタートの発生、および各コールドスタートフェーズの持続時間が含まれます。FC はこれらのメトリクスを使用して、呼び出しログにリクエストのリストを表示します。これらのメトリクスを使用して、失敗したすべてのリクエストやコールドスタートをトリガーしたすべてのリクエストなどをフィルタリングすることもできます。
無効化:リクエスト実行に関する詳細情報を表示できません。
インスタンスレベルのメトリクス
いいえ
インスタンスレベルのメトリクスを有効または無効にします。有効な値:
有効化:有効にすると、関数インスタンスからのメトリックデータが選択した Logstore に送信されます。CPU、メモリ、ネットワーク I/O 使用量などのインスタンスレベルのパフォーマンスメトリクスを表示できます。FC はこのデータに基づいてインスタンスレベルの可観測性を提供し、関数インスタンスのモニタリングとトラブルシューティングのためのエンドツーエンドのパスを提供します。詳細については、「インスタンスレベルのメトリクス」をご参照ください。
無効化:インスタンスメトリクスに関する詳細情報を表示できません。
Serverless Devs
前提条件
操作手順
次の構造でコードディレクトリを作成します。
. ├── code │ └── index.js └── s.yaml以下は s.yaml ファイルの例です。
この例では、`logConfig` フィールドを使用してログ機能を設定します。Logstore とプロジェクトの値を、アカウントに存在するプロジェクトと Logstore に一致するように変更する必要があります。`logConfig: auto` を設定することもでき、その場合、Function Compute が自動的に Logstore とプロジェクトを指定します。
edition: 3.0.0 name: hello-world-app access: "default" vars: # グローバル変数 region: "cn-hangzhou" resources: hello_world: component: fc3 # コンポーネント名 props: region: ${vars.region} functionName: "start-nodejs-****" description: 'hello world by serverless devs' runtime: "nodejs16" code: ./code handler: index.handler memorySize: 128 timeout: 30 logConfig: # logstore と project を実際のリソースに合わせて変更します。logConfig:auto を使用して、システムにプロジェクトと Logstore を自動的に作成させることもできます。 enableInstanceMetrics: true # インスタンスレベルのメトリクスを有効にします。 enableRequestMetrics: true # リクエストレベルのメトリクスを有効にします。 logBeginRule: DefaultRegex # ログ分割ルール。 logstore: 'your-logstore' # Logstore 名を指定します (事前に作成する必要があります)。 project: 'your-project' # プロジェクト名を指定します (事前に作成する必要があります)。次のコマンドを実行してアプリケーションをデプロイします。
s deploy -yデプロイが成功したら、Function Compute コンソールにログインして、関数がログ機能を有効にしてデプロイされていることを確認します。
ログ機能の無効化
この機能を無効にすると、Function Compute は関数実行ログを収集または保存しなくなるため、トラブルシューティングやパフォーマンス分析が妨げられる可能性があります。注意して進めてください。
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、を選択します。
トップナビゲーションバーでリージョンを選択し、[関数] ページで目的の関数をクリックします。
関数詳細ページで、設定 タブをクリックし、詳細設定 の横にある 変更 をクリックします。 詳細設定 パネルで、ログ セクションを見つけ、[ログ] スイッチをオフにしてから、デプロイ をクリックします。
呼び出しログの表示
関数の詳細ページで、ログ タブをクリックすると、現在の関数の呼び出しレコードをクエリできます。
関数詳細ページで、バージョン管理 または エイリアス管理 タブをクリックします。確認したいバージョンまたはエイリアスを選択し、その詳細ページで ログ タブをクリックして、対応するログを表示します。
関数呼び出しログは、呼び出しリクエスト タブまたは キーワードで検索 タブで表示できます。違いは以下のとおりです。
呼び出しリクエスト
このタブには、関数の呼び出し終了時刻、リクエスト ID、結果、インスタンス ID、関数のバージョンまたはエイリアスなどの情報が一覧表示されます。
リクエスト ID をクリックすると、リクエストとログの詳細を表示できます。
インスタンス ID をクリックすると、CPU 使用率、メモリ使用量、ネットワークトラフィックなど、インスタンスのリソース使用量を表示できます。
操作 列の [リクエストログ] をクリックしてログの詳細を表示するか、操作 列の 詳細ログ をクリックして Simple Log Service コンソールに移動し、ログのクエリと分析を行うことができます。
キーワードで検索
リストには、関数呼び出し時間、ログ内容、関数のバージョン/エイリアスなどの情報が表示されます。操作 列で[ログコンテキスト]をクリックしてログエントリのコンテキストログを検索するか、操作 列でLogstoreをクリックしてSimple Log Service コンソールに移動し、ログのクエリと分析を行うことができます。
検索ボックスにキーワードを入力して、必要なログ情報を見つけることができます。たとえば、
hello worldというテキストを含むログを検索するには、検索ボックスにhello worldと入力します。検索結果には、そのキーワードを含むすべてのログ行が含まれます。クエリ構文の詳細については、「クエリと検索の構文」をご参照ください。
関連ドキュメント
SDK を使用するか、API 呼び出しを行うことでも、関数のログ機能を設定できます。詳細については、「CreateFunction」をご参照ください。