すべてのプロダクト
Search
ドキュメントセンター

Function Compute:リクエストレベルのメトリックログ

最終更新日:Nov 09, 2025

リクエストレベルのメトリックは、各関数の呼び出しに関する詳細なインサイトを提供し、関数の実行ステータスをモニターするのに役立ちます。リクエストレベルのメトリックを使用すると、問題を迅速に特定し、アプリケーションのボトルネックを分析し、関数アプリケーションをより適切に管理および最適化できます。

リクエストレベルのメトリックとは

リクエストレベルのメトリックは、リクエストレベルで関数の実行ステータスを要約します。この機能を有効にすると、システムはパフォーマンス、例外、トレースメトリックなど、各関数実行のメトリックを収集します。これらのメトリックは、ログ構成で指定した Logstore に配信されます。

  • パフォーマンスメトリック: メモリ使用量、関数の実行時間、初期化時間、コールドスタート情報。

  • 例外メトリック: 実行の失敗とエラーの詳細。

  • トレースメトリック: 主要なシステムリンクの実行時間、統合トレースのサンプリングステータス、および HTTP 関数の詳細 (パス、状態コード、クライアント IP アドレスなど)。

リクエストレベルのメトリックを有効にすると、Function Compute は各リクエストの実行メトリックを Logstore に配信します。次の図に例を示します。

image

シナリオ

  • 関数の実行詳細、パフォーマンスメトリック、エラーメッセージを表示します。

    コンソールには、リクエストレベルのメトリックに基づくリクエストリストが表示されます。このページでは、実行ステータス、インスタンス ID、実行時間、メモリ使用量、リクエストログなど、各リクエストの詳細を表示できます。次の図に例を示します。

    image

    説明

    リクエストレベルのメトリックが無効になっている場合でも、リクエストリストを表示できます。ただし、次のシナリオではリストが不正確になる場合があります。

    • 同じリクエスト ID が複数回表示される場合、特定のリクエストのログを見つけることができません。この問題は、非同期呼び出しのリトライシナリオでよく発生します。

    • カスタムランタイムおよびカスタムイメージランタイムで、FC Invoke Start RequestId: xxxFC Invoke End RequestId: xxx がログに記録されると、1 回の呼び出しがリクエストリストに 2 回表示されることがあります。

  • カスタム検索を実行し、カスタムダッシュボードを作成します。

    リクエストメトリックは、key:value フォーマットで Logstore に配信されます。ビジネス要件に合わせてカスタムダッシュボードを作成できます。詳細については、「ダッシュボードの作成」をご参照ください。

注意

  • 範囲

    リクエストレベルのメトリックロギングは、関数レベルの構成です。この機能を有効にすると、現在の関数に適用され、各関数の実行ごとにログが記録されます。

  • 料金

    ログが Simple Log Service (SLS) に配信されると、ログストレージ料金が発生します。SLS の料金の詳細については、「料金」をご参照ください。

リクエストレベルのメトリックを有効にする

コンソールでリクエストレベルのメトリックを有効にする

前提条件

手順

  1. Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[関数] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。[関数] ページで、管理する関数をクリックします。

  3. 関数の詳細ページで、[設定] タブをクリックします。

  4. [高度な設定] を見つけて [編集] をクリックします。[高度な設定] パネルで、[ログ] エリアを見つけ、インスタンスレベルのメトリックを有効にして、[デプロイ] をクリックします。

    次の表に、主なパラメーターを示します。他のパラメーターにはデフォルト値を使用できます。

    パラメーター

    説明

    ロギング

    関数の呼び出しログを Simple Log Service (SLS) に保存するかどうかを指定します。ロギング機能の詳細については、「ロギングの設定」をご参照ください。

    有効化

    プロジェクト

    設定済みのプロジェクトを選択します。

    aliyun-fc-hangzhou-2238f0df-a742-524f-9f90-976ba*******

    Logstore

    設定済みの Logstore を選択します。

    function-log

    ログ分割ルール

    ログ分割ルールを有効にするかどうかを指定します。有効にすると、Function Compute はルールに従ってログを複数のセグメントに分割し、Simple Log Service に 1 つずつ書き込みます。

    有効化

    リクエストレベルのメトリック

    リクエストレベルのメトリックを表示するかどうかを指定します。この機能を有効にすると、各関数の呼び出しのメトリックが収集され、ログ構成で選択した Logstore に配信されます。

    有効化

    インスタンスレベルのメトリック

    インスタンスレベルのメトリックを有効にするかどうかを指定します。この機能を有効にすると、関数インスタンスのメトリックデータが、ログ構成で選択した Logstore に配信されます。

    有効化

Serverless Devs を使用してリクエストレベルのメトリックを有効にする

前提条件

Serverless Devs のインストールと設定

手順

  1. コードディレクトリを作成します。次の例はディレクトリ構造を示しています。

    .
    ├── code
    │   └── index.js
    └── s.yaml

    次のコードは s.yaml ファイルの例です。

    この例では、enableRequestMetrics フィールドを使用してリクエストレベルのメトリックを有効にします。この機能を有効にする前に、ロギングを有効にし、logstore および project フィールドをアカウント内の既存の 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'
            project: 'your-project'
  2. 次のコマンドを実行してアプリケーションをデプロイします。

    sudo s deploy -y

    デプロイが成功したら、Function Compute コンソールにログインして、関数でリクエストレベルのメトリックが有効になっていることを確認できます。

ログクエリ

ログフォーマット

リクエストレベルのメトリックログのトピックは、FCRequestMetrics:/functionName のフォーマットに従います。SLS でクエリ文 __topic__: "FCRequestMetrics:/functionName" を使用して、すべてのリクエストレベルのメトリックログをフィルターできます。詳細については、「ログのクエリと分析のクイックスタート」をご参照ください。

メトリックフィールド

リクエストレベルのメトリックには、次のフィールドが含まれます。

メトリック

説明

各呼び出しで記録されますか?

functionName

関数名。

my-function

はい

versionId

バージョン名。

12

はい

qualifier

サービスエイリアス。デフォルト値は LATEST です。

prod

はい

requestId

リクエスト ID。

db72ce53-ccbe-4216-af55-642622e01494

はい

operation

操作名。

InvokeFunction

はい

invocationType

呼び出しタイプ。有効な値:

Sync: 同期呼び出し

Async: 非同期呼び出し

Sync

はい

memoryMB

関数のメモリ制限。

512

はい

memoryUsageMB

関数実行によって消費されたメモリ。

410

はい

durationMs

リクエストの実行時間。

20.20

はい

isColdStart

リクエストがコールドスタートであるかどうかを示します。

説明

リクエストが Function Compute に到着したときに、リクエストを処理できる実行中の関数インスタンスがない場合、システムはインスタンスを作成し、コードをダウンロードし、実行環境を開始する必要があります。

ライフサイクル内でインスタンスの作成、コードのダウンロード、環境の起動の完全なプロセスを経るリクエストは、コールドスタートリクエストと呼ばれます。

Function Compute プラットフォームには、コールドスタートを軽減するための多くの最適化があります。コールドスタートを回避するために、プラットフォームは事前にインスタンスを作成します。リクエストが到着したとき、インスタンス作成プロセス中に、すでに作成されたインスタンスによって処理される場合があります。このようなリクエストは、コールドスタートリクエストとは見なされません。

false

はい

instanceEvent

インスタンスイベント。現在、ColdStart のみがサポートされており、コールドスタートリクエストに対して記録されます。

ColdStart

いいえ

hasFunctionError

関数実行中に関数エラーが発生したかどうかを示します。

false

はい

errorType

関数エラーのタイプ。有効な値:

  • FunctionOOMError: メモリが枯渇しました。

  • FunctionTimeoutError: 実行がタイムアウトしました。

  • FunctionUnhandledError: その他の未処理の例外。

FunctionUnhandledError

いいえ。このメトリックは、関数エラーが発生した場合、つまり hasFunctionError:true の場合にのみ記録されます。

invokeFunctionLatencyMs

関数の実行時間。

99.00

はい。このメトリックは常に記録されます。

traceContext

トレースコンテキスト情報。

371d3ff242fcee9:371d3ff242fcee9:0:1

いいえ。このメトリックは、トレースが設定されている場合にのみ記録されます。

isSampled

リクエストが Tracing Analysis によってサンプリングされたかどうかを示します。

true

いいえ。このメトリックは、トレースが設定されている場合にのみ記録されます。

resourceMode

リクエストを処理するインスタンスのタイプ。有効な値:

  • OnDemand: オンデマンドインスタンス。

  • Provision: プロビジョニング済みインスタンス。

OnDemand

はい

instanceID

インスタンス ID。

c-65603d8c-37e1bf7123054a77****

はい

hostname

インスタンスのホスト。

c-65603d8c-37e1bf7123054a77****

はい

ipAddress

インスタンスの IP アドレス。

注: これはインスタンスの内部 IP アドレスであり、異なるインスタンスを区別するために使用されます。インスタンスのパブリック IP アドレスではありません。

21.0.XX.XX

はい

activeInstances

アクティブなインスタンスの数。

1

はい

activeInstancesPerFunction

現在の関数のアクティブなインスタンスの数。

1

はい

scheduleLatencyMs

スケジューリングのレイテンシ。スケジューリングのレイテンシは、コールドスタートリクエストでは比較的長くなります。

10.07

はい

coldStartStartTimestamp

コールドスタートが開始されるときの UNIX タイムスタンプ。

1700806029167

いいえ。このメトリックは、コールドスタートが発生した場合にのみ記録されます。

coldStartLatencyMs

コールドスタートのレイテンシ。

487.65

いいえ。このメトリックは、コールドスタートが発生した場合にのみ記録されます。

prepareCodeStartTimestamp

コードのダウンロードが開始されるときの UNIX タイムスタンプ。これはミリ秒単位で正確な 13 桁のタイムスタンプです。

1700806029167

いいえ。このメトリックは、コールドスタートが発生した場合にのみ記録されます。

prepareCodeLatencyMs

コードのダウンロードにかかった時間。

0.18

いいえ。このメトリックは、コールドスタートが発生した場合にのみ記録されます。

runtimeInitializationStartTimestamp

ランタイムの初期化が開始されるときの UNIX タイムスタンプ。

1700806029168

いいえ。このメトリックは、コールドスタートが発生した場合にのみ記録されます。

runtimeInitializationMs

ランタイムの初期化にかかった時間。

487.37

いいえ。このメトリックは、コールドスタートが発生した場合にのみ記録されます。

asyncAttemptStartTimestamp

デフォルトでは、失敗した非同期関数の呼び出しは 3 回リトライされます。

このパラメーターは、${retryCount} 回目のリトライの開始タイムスタンプです。

1700806028084

いいえ。このメトリックは、非同期呼び出しの場合にのみ記録されます。

asyncAttemptLatencyMs

デフォルトでは、失敗した非同期関数の呼び出しは 3 回リトライされます。

このパラメーターは、${retryCount} 回目のリトライの期間です。

1688.74

いいえ。このメトリックは、非同期呼び出しの場合にのみ記録されます。

asyncMode

非同期呼び出しモード。有効な値:

  • Stateless: ステートレス非同期呼び出し

  • Stateful: ステートフル非同期呼び出し

Stateful

いいえ。このメトリックは、非同期呼び出しの場合にのみ記録されます。

retryCount

リトライ回数。

0

いいえ。このメトリックは、非同期呼び出しの場合にのみ記録されます。

ログの取得

ログを取得するには、インデックスを設定する必要があります。Function Compute コンソールは、必要なインデックスを自動的に設定します。インデックスが設定された後、SLS コンソールの対応する Logstore で SQL 文を実行して、リクエストログを取得およびフィルターできます。トピックを指定して、検索範囲をリクエストレベルのメトリックログに限定できます。

たとえば、実行時間が 1 秒を超えるリクエストをクエリするには、次の SQL 文を実行します。

__topic__: "FCRequestMetrics:/f1" AND qualifier: q1 and operation: InvokeFunction and durationMs>1000

複雑なクエリ構文の詳細については、「ログのクエリと分析のガイド」をご参照ください。

カスタムダッシュボードの作成

x 軸が時間 (t) を表し、y 軸がメトリック値を表すチャートを作成する場合は、次の SQL 文を実行できます。

__topic__: "FCRequestMetrics:/f1" AND qualifier: q1 and operation: InvokeFunction | select __time__ - __time__ % 60 as t, count(*) as invocations, avg(durationMs) as avgDurationMs group by t order by t 

カスタムダッシュボードの作成方法の詳細については、「ダッシュボードの作成」をご参照ください。