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