Simple Log Service を使用して、関数呼び出しログをリアルタイムで収集および分析できます。呼び出しデータを Logstore にインポートすることで、主要なメトリクスをクエリ、分析、可視化し、関数の状態を監視できます。
このトピックで説明するログダッシュボード機能は、以前のコンソールにのみ適用されます。ログダッシュボードの設定オプションは、現在のバージョンの Function Compute (FC) コンソールからは削除されています。
ご不便をおかけして申し訳ございません。
前提条件
開始する前に、次の操作が完了していることを確認してください。
ログの収集とインポート
- FC コンソールにログインします。
- 上部のナビゲーションバーで、ご利用の Kubernetes クラスターがデプロイされているリージョンを選択します。
左側のナビゲーションウィンドウで、[概要] をクリックします。
[概要] ページ右下の [クイックアクセス] セクションで、[ログダッシュボードの設定] をクリックします。

[ログダッシュボードの設定] ページで、[ログ分析の設定] をクリックします。

[カスタムログ分析] パネルで、次の手順を実行します。

[Log Project] と [Logstore] のドロップダウンリストから、現在のリージョンに存在する Log Project と Logstore を選択します。
Logstore に関連付けるサービスを選択します。
[ロール操作] ドロップダウンリストから [新しいロールの作成] を選択し、[承認] をクリックします。
[ロールテンプレート] ページで情報を確認し、[承認ポリシーの確認] をクリックします。
[カスタムログ分析] パネルで、[OK] をクリックします。
ログのクエリと分析
Function Computeコンソールの [ログダッシュボードの設定] ページで、クエリ対象のログを見つけ、関連付けられた [Logstore] をクリックします。
関連付けられた [Logstore] ページで、検索ボックスにクエリを入力してログを分析します。以下に例を示します。
その requestID を使用して、呼び出しに関する詳細情報を取得します。
requestID:e9870cbd-2ab2-6c78-3486-cd164015b889非同期呼び出しリクエストをクエリします。
mode:async and operation:InvokeFunction呼び出し時間が 5,000 ミリ秒を超えるリクエストをクエリします。
operation:InvokeFunction and durationMs > 5000
次の表にログフィールドを示します。
フィールド
タイプ
説明
例
accountID
String
ご利用の Alibaba Cloud アカウントの ID。
188********23420
asyncInvocationFinished
String
非同期呼び出しが完了したかどうかを示します。
true
concurrentCount
Long
ログが生成された時点での関数の実際の同時実行数。
10
concurrentReqLimit
Long
関数の同時実行数の上限。
100
durationMs
Double
関数の実行時間 (ミリ秒)。
5012.025
errorType
String
エラータイプ (存在する場合)。
HandledError
externalServiceVersion
String
呼び出されたサービスのバージョン。詳細については、「バージョンの管理」をご参照ください。
1
fcStatus
Long
FC からの内部ステータスコード。
200
forwardedFor
String
クライアントの元の IP アドレス。CDN トリガーを使用する場合、このフィールドは FC を呼び出す IP アドレスを示します。
200.***.***.100
functionErrors
Long
システムエラーではない関数エラーの数。
0
functionName
String
関数の名前。
ReservedFunction
functionTimeoutInSec
Long
関数のタイムアウト期間 (秒)。
300
host
String
リクエストのホスト。
1234567890.cn-shanghai.fc.aliyun-inc.com
isDarkLaunch
String
エイリアスまたはカナリアバージョンが使用されたかどうかを示します。詳細については、次のトピックをご参照ください。
true
ip
String
リクエストを送信したクライアントの IP アドレス。
172.***.***.118
isHTTPS
String
リクエストが HTTPS プロトコルを使用したかどうかを示します。
false
isHTTPTrigger
String
関数が HTTP トリガーによって呼び出されたかどうかを示します。
false
latency
Double
関数の呼び出しレイテンシ (ミリ秒)。
5017.347
maxMemoryUsage
Double
関数インスタンスが使用した最大メモリ (MB)。
17.25
memoryLimitInMB
Long
関数インスタンスのメモリ上限 (MB)。
512
meteredRespSize
Long
課金対象のトラフィックサイズ (バイト)。
0
method
String
HTTP リクエストメソッド。
POST
mode
String
呼び出しモード。有効値:
sync: 同期呼び出し
async: 非同期呼び出し
sync
operation
String
ログのカテゴリ。
InvokeFunction
path
String
関数呼び出しの URL パス。
/2016-08-15/services/MeteringService/functions/ReservedFunction/invocations
qualifier
String
呼び出しに使用されたサービスバージョンまたはエイリアスに関する情報。詳細については、「実行された関数のバージョンを取得する」をご参照ください。
バージョン番号またはエイリアス
region
String
関数がデプロイされているリージョン。
cn-shanghai
requestID
String
リクエストの一意の ID。
e9870cbd-2ab2-6c78-3486-cd164015b889
requestOriginalURI
String
リクエストの元の統一リソース識別子 (URI)。カスタムドメインが使用されている場合、この URI には
/2016-08-15のようなプレフィックスは含まれません。/2016-08-15/services/MeteringService/functions/ReservedFunction/invocations
requestSize
Long
リクエストペイロードのサイズ (バイト)。
912
resolveQualifierLatency
Long
サービスバージョンの解決にかかった時間 (ミリ秒)。
0
responseSize
Long
レスポンスペイロードのサイズ (バイト)。
0
runtime
String
関数の実行環境。
python2.7
serviceName
String
サービスの名前。
test-service-name
status
Long
クライアントに返された HTTP ステータスコード。
200
timestamp
Long
関数がリクエストの処理を開始したときのタイムスタンプ (秒)。
1538137847
userAgent
String
リクエストを送信したクライアントのユーザーエージェント。
go-sdk-0.1
ダッシュボードのチャートとメトリクスの理解
- FC コンソールにログインします。
左側のナビゲーションウィンドウで、[概要] をクリックします。
[概要] ページ右下の [クイックアクセス] セクションで、[ログダッシュボードの設定] をクリックします。

[ログダッシュボードの設定] ページで、分析したいログを見つけ、[操作] 列の [ログの分析] をクリックします。次のチャートを表示できます。

メトリクス
説明
課金対象の呼び出し回数
関数の実行回数。成功した試行と内部エラーにより失敗した試行の両方を含みます。
リソース使用量
関数インスタンスに割り当てられたメモリと、その実行時間の積。
アウトバウンドデータ転送 (インターネット)
関数の応答によって生成された課金対象のアウトバウンドデータ転送。TCP または UDP クライアントによる内部リクエストからのトラフィックは除きます。
インバウンドデータトラフィック
関数がリクエストを受信したときに生成されるインバウンドトラフィック。このトラフィックは課金対象外です。
エラー
ユーザーエラー率:コードエラーや 4xx クライアントエラー (429 スロットリングエラーを除く) など、システム以外の問題で失敗した関数実行の割合。期待値は 0 です。
スロットリングエラー率:スロットリングによって失敗した関数実行の割合。これらのエラーは、FC のシステム制限 (503) またはアカウントのクォータ超過 (429) が原因で発生する可能性があります。期待値は 0 です。
システムエラー率:FC の内部問題によって失敗した関数実行の割合。システムエラーには 5xx サーバーエラー (503 スロットリングエラーを除く) が含まれます。期待値は 0 です。
課金対象の呼び出し回数と関数エラー
課金対象の呼び出し回数:課金対象となる関数呼び出しの数。
関数エラー:システム以外の理由で失敗した関数呼び出しの数。
実行時間 (ミリ秒)
平均:選択した期間における関数の平均実行時間。
同時実行性
同時実行数の上限:現在のリージョンにおけるアカウントの同時実行数クォータ。
実際の同時実行数:特定の期間内に使用された同時実行インスタンスの最大数。
HTTP ステータス
HTTP 関数が実行された後にクライアントに返される HTTP ステータスコード。
各ステータスコードクラスは、そのクラスで返された応答の総数を表します。たとえば、Status_4xx は、選択した期間中に返された 400 から 499 までの HTTP ステータスコードの総数を表します。
上位 N 個の関数
デフォルトでは、関数はリソース使用量の降順でソートされます。
リソース使用量 (GB 秒):インスタンスに割り当てられたメモリと、その実行時間の積。
アウトバウンドデータ転送 (GB):関数の応答による課金対象のアウトバウンドデータ転送。TCP または UDP クライアントによる内部リクエストからのトラフィックは除きます。
呼び出し回数:関数の総呼び出し回数。
関数エラー:関数の総エラー数。
最大メモリ (MB):関数が使用した最大メモリ。
ダッシュボードのカスタマイズ
クエリ文を実行し、結果のチャートを新しいダッシュボードに追加して、簡単にアクセスできるようにします。詳細については、以下をご参照ください。
以下のクエリ文とチャート設定は参考用です。本番環境では注意して使用してください。
ユーザー IP アドレスソースの分析
中国国内のリクエスト分布
次のクエリ文を実行し、グラフタイプとして
中国地図を選択します。operation:InvokeFunction | SELECT ip_to_province(IF(forwardedFor = '', ip, forwardedFor)) AS "Province", approx_distinct(IF(forwardedFor = '', ip, forwardedFor)) AS "Requests" GROUP BY "Province" LIMIT 50世界中のリクエスト分布
次のクエリ文を実行し、グラフタイプとして
世界地図を選択します。operation:InvokeFunction | SELECT ip_to_country(IF(forwardedFor = '', ip, forwardedFor)) AS "Country", approx_distinct(IF(forwardedFor = '', ip, forwardedFor)) AS "Requests" GROUP BY "Country" LIMIT 50地理的分布のヒートマップ
次のクエリ文を実行し、グラフタイプとして
ヒートマップを選択します。operation:InvokeFunction | SELECT ip_to_geo(IF(forwardedFor = '', ip, forwardedFor)) AS geo, count(1) AS count GROUP BY geo ORDER BY count DESC LIMIT 30
ユーザーエージェント分布の分析
次のクエリ文を実行し、グラフタイプとして
円グラフを選択します。operation:InvokeFunction | SELECT userAgent, COUNT(userAgent) AS count GROUP BY userAgent ORDER BY count DESC LIMIT 20
アクセス頻度の高い上位 20 の HTTP 関数 URL
次のクエリ文を実行し、チャートタイプとして
tableを選択します。operation:InvokeFunction and isHTTPTrigger:true | SELECT requestOriginalURI, COUNT(requestOriginalURI) AS count GROUP BY requestOriginalURI ORDER BY count LIMIT 20
アラートルールの設定
関数の状態をより良く監視するために、Simple Log Service でアラートルールを設定し、DingTalk チャットボットで通知を送信できます。詳細については、「アラートの設定」をご参照ください。