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

Function Compute:リクエスト単位のメトリクスログ

最終更新日:Mar 15, 2026

リクエスト単位のメトリクスは、各関数呼び出しおよびその実行ステータスに関する詳細な情報を提供します。これらのメトリクスを活用することで、問題の迅速な検出・特定やアプリケーションのボトルネック分析が可能です。リクエスト単位のメトリクスを有効化すると、関数アプリケーションの管理および最適化をより効果的に行えます。

リクエスト単位のメトリクスとは

リクエスト単位のメトリクスは、各関数リクエストの実行ステータスを要約したものです。この機能を有効化すると、システムはすべての関数実行についてパフォーマンス、例外、トレーシングの各メトリクスを収集し、設定済みのログ構成で指定された Logstore へ配信します。

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

  • 例外メトリクス:実行失敗ステータスおよびエラー詳細。

  • トレーシングメトリクス:主要なシステムリンクの実行時間、統合トレーシングのサンプリング有無、HTTP 関数におけるパス、ステータスコード、クライアント IP アドレス。

リクエスト単位のメトリクスを有効化すると、Function Compute は、各リクエストの実行メトリクスを以下の形式でお客様の Logstore に配信します。

image

利用シーン

  • リクエストメトリクスに基づき、関数の実行詳細、パフォーマンスメトリクス、エラーメッセージを確認します。

    コンソールでは、リクエスト単位のメトリクスから派生したリクエスト一覧が提供されます。このページでは、実行ステータス、対応するインスタンス ID、実行時間、メモリ使用量、リクエストログなど、各リクエストの詳細情報を確認できます。次の図はその例です。

    image

    説明

    リクエスト単位のメトリクスが有効化されていなくても、リクエスト一覧は表示されます。ただし、以下のシナリオでは一覧の正確性が保証されません。

    • 同一のリクエスト ID が複数回表示される場合、特定のリクエストに対応するログを特定できません。これは非同期呼び出しのリトライ時によく発生します。

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

  • リクエストメトリクスに基づいたカスタム検索およびカスタムダッシュボードの作成を行います。

    リクエストメトリクスは key:value 形式でお客様の Logstore に配信されます。業務ニーズに応じてカスタムダッシュボードを作成できます。詳細については、「ダッシュボードの作成」をご参照ください。

注意事項

  • 適用範囲

    リクエスト単位のメトリクスログは関数の設定項目です。この機能を有効化すると、対象の関数に対して適用され、各関数実行ごとにログが記録されます。

  • 課金

    ログが Simple Log Service へ配信される際には、ストレージ料金が発生します。Simple Log Service の料金体系については、「料金」をご参照ください。

リクエスト単位のメトリクスの有効化

コンソールでのリクエスト単位のメトリクスの有効化

前提条件

操作手順

  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 へ順次書き込みます。

    有効

    リクエスト単位のメトリクス

    リクエスト単位のメトリクスを表示するかどうかを指定します。この機能を有効化すると、各関数呼び出しのメトリクスが収集され、ログ構成で選択した 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: 'serverless devs による Hello World'
          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'
            project: 'your-project'
  2. 次のコマンドを実行してアプリケーションをデプロイします。

    sudo s deploy -y

    コマンドが正常に完了した後、Function Compute コンソール にログインし、デプロイされた関数に対してリクエスト単位のメトリクス機能が有効化されていることを確認できます。

ログ検索

ログ形式

リクエスト単位のメトリクスログのトピックは、以下の形式です:FCRequestMetrics:/functionName。Simple Log Service でクエリ条件 __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 は新しいインスタンスを作成し、コードをダウンロードして実行環境を起動します。

リクエスト到着時に Function Compute が実行中のインスタンスを保持していない場合、システムはインスタンスの作成、コードのダウンロード、ランタイムの起動という一連の処理を実行する必要があり、これがコールドスタートとなります。

コールドスタートの発生を抑えるため、Function Compute は事前にインスタンスを作成します。この事前作成されたインスタンスによってリクエストが処理される場合は、コールドスタートとはみなされません。

false

はい

instanceEvent

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

ColdStart

いいえ

hasFunctionError

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

false

はい

errorType

関数エラーには以下の 3 種類があります:

  • FunctionOOMError:メモリ不足(OOM)エラーが発生しました。

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

  • FunctionUnhandledError:未処理の例外が発生しました。

FunctionUnhandledError

いいえ。このメトリクスは関数エラーが発生した場合のみ記録されます(すなわち、hasFunctionError:true の場合)。

invokeFunctionLatencyMs

関数の実行時間。

99.00

はい。各呼び出しで記録されます。

traceContext

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

371d3ff242fcee9:371d3ff242fcee9:0:1

いいえ。このメトリクスはトレーシング分析が構成されている場合のみ記録されます。

isSampled

リクエストがトレーシング分析によってサンプリングされたかどうかを示します。

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

コールドスタート開始時のタイムスタンプ。

1700806029167

いいえ。このメトリクスはコールドスタートの場合のみ記録されます。

coldStartLatencyMs

コールドスタート時間。

487.65

いいえ。このメトリクスはコールドスタートの場合のみ記録されます。

prepareCodeStartTimestamp

コードダウンロード開始時のタイムスタンプ。13 桁のミリ秒単位のタイムスタンプです。

1700806029167

いいえ。このメトリクスはコールドスタートの場合のみ記録されます。

prepareCodeLatencyMs

コードダウンロード時間。

0.18

いいえ。このメトリクスはコールドスタートの場合のみ記録されます。

runtimeInitializationStartTimestamp

ランタイム初期化開始時のタイムスタンプ。

1700806029168

いいえ。このメトリクスはコールドスタートの場合のみ記録されます。

runtimeInitializationMs

ランタイム初期化時間。

487.37

いいえ。このメトリクスはコールドスタートの場合のみ記録されます。

asyncAttemptStartTimestamp

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

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

1700806028084

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

asyncAttemptLatencyMs

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

このパラメーターは、${retryCount} 回目のリトライ試行の所要時間です。

1688.74

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

asyncMode

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

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

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

Stateful

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

retryCount

リトライ回数。

0

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

ログの取得

ログを検索するにはインデックスが必要です。Function Compute コンソールでは、インデックスが自動的に構成されます。インデックス構成後、Simple Log Service コンソール の対応する 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 

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