Simple Log Service を使用して呼び出し統計を記録し、Simple Log Service に記録された Function Compute の呼び出しをリアルタイムでクエリおよび分析し、モニタリングデータを可視化された方法で表示できます。関数呼び出し統計をリアルタイムで Logstore に自動的にインポートできるように、Logstore を作成する必要があります。Simple Log Service は、クエリ、分析、およびグラフィカルな可視化機能を提供し、これにより、関数の呼び出し状況をリアルタイムで把握し、Function Compute のサービスステータスをより適切に管理できます。
Function Compute コンソールのリファクタリングに伴い、ログダッシュボードに関連する設定オプションは新しいコンソールでは利用できなくなりました。この記事で説明されているログダッシュボード機能は、旧バージョンのコンソールにのみ適用されます。
ご不便をおかけして申し訳ございません。
前提条件
ログの収集とインポート
- Function Compute コンソールにログインします。
- 上部のナビゲーションバーで、ご利用の Kubernetes クラスターがデプロイされているリージョンを選択します。
左側のナビゲーションウィンドウで、[概要] をクリックします。
[概要] ページの [クイックアクセス] セクション (下図の ①) で、[ログダッシュボードの設定] (下図の ②) をクリックします。

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

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

[ログプロジェクト] および [Logstore] ドロップダウンリストから、リージョン内にあるプロジェクトと Logstore を選択します。
Logstore に関連付ける 1 つ以上のサービスを選択します。
[ロール操作] ドロップダウンリストから [新しいロールの作成] を選択し、[承認] をクリックします。
[ロールテンプレート] ページで、情報を確認し、[承認ポリシーの確認] をクリックします。
[カスタムログ分析] パネルで、[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
アカウントの ID。
188********23420
asyncInvocationFinished
String
呼び出しが完了したかどうかを示します。
true
concurrentCount
Long
ログ作成時の同時実行数。
10
concurrentReqLimit
Long
許可される最大同時実行数。
100
durationMs
Double
関数の実行にかかった時間。単位:ミリ秒。
5012.025
errorType
String
発生したエラーのタイプ。
HandledError
externalServiceVersion
String
サービスのバージョン。詳細については、「バージョンの管理」をご参照ください。
1
fcStatus
Long
内部ステータスコード。
200
forwardedFor
String
元の IP アドレス。Alibaba Cloud CDN イベントトリガーを使用する場合、この IP アドレスは Function Compute を呼び出す 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
元の Uniform Resource Identifier (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
ダッシュボードチャートの使用とメトリックの解釈
- Function Compute コンソールにログインします。
左側のナビゲーションウィンドウで、[概要] をクリックします。
[概要] ページの [クイックアクセス] セクション (下図の ①) で、[ログダッシュボードの設定] (下図の ②) をクリックします。

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

パラメーター
説明
課金対象の呼び出し
関数が実行された回数。この値には、成功した呼び出しと内部エラーになった呼び出しが含まれます。
リソース使用量
使用されたリソースの量。次の数式で計算されます:インスタンスが使用したメモリ × 関数の実行時間。
アウトバウンドデータ転送 (インターネット)
関数のレスポンスによって生成された課金対象のトラフィック。このトラフィックには、関数内の TCP または UDP クライアントから開始されたリクエストによって生成されたトラフィックは含まれません。
インバウンドデータトラフィック
関数がリクエストを受け入れるときに生成されるインバウンドトラフィック。このトラフィックは課金対象外です。
エラー
ユーザーエラー率:システムが原因ではない関数実行の失敗の割合。これらの非システムエラーには、関数実行中のエラーや、HTTP 429 を除く HTTP クライアントエラー 400~499 が含まれます。値が 0 の場合は正常な動作を示します。
スロットリングエラー率:スロットリングが原因で関数実行が失敗した割合。これらのエラーには、Function Compute によって開始されたスロットリングと、システムクォータの超過が原因ではないスロットリングが含まれます。Function Compute によって開始されたスロットリングは HTTP 503 レスポンスを生成し、非システムスロットリングは HTTP 429 レスポンスを生成します。値が 0 の場合は正常な動作を示します。
システムエラー率:Function Compute が原因で関数実行が失敗した割合。これらのシステムエラーには、HTTP 503 を除く HTTP サーバーエラー 500~599 が含まれます。値が 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"Request"GROUP BY"Province"LIMIT 50世界中のアクセス分布
次のクエリ文を実行し、チャートタイプとして
世界地図を選択します。operation:InvokeFunction | SELECT ip_to_country(IF(forwardedFor = '', ip, forwardedFor)) AS"Country", approx_distinct(IF(forwardedFor = '', ip, forwardedFor)) AS"Request"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
HTTP 関数の上位 20 URL
次のクエリ文を実行し、チャートタイプとして
テーブルを選択します。operation:InvokeFunction and isHTTPTrigger:true | SELECT requestOriginalURI, COUNT(requestOriginalURI) AS count GROUP BY requestOriginalURI ORDER BY count LIMIT 20
アラートルールの設定
DingTalk チャットボットを追加して、関数のヘルスステータスをモニタリングできます。チャットボットは、Simple Log Service のアラートルールを使用して、関数のヘルスステータスをモニタリングします。詳細については、「アラートルールの設定」をご参照ください。