API Logging and Gateway Monitoring
API ロギング
"stdout-log" ポリシーが APIM コンソールの各 API に適用され、デプロイされると、API ログは ZCP ロギングリポジトリに保存されます。
API ログの表示方法
- Cloud ZCP コンソールにログイン > [システム管理者]画面に移動 > [ロギング]メニューをクリック
- Kibana で、右上隅のユーザーアイコンをクリックし、ドロップダウン > テナントの切り替え > カスタムから選択 > apim_tenant を選択
- [Discover] メニュー: API ログデータを検索 (xxxx.apim* インデックスを選択) し、+ フィルターを追加:
- kubernetes.container_name: proxy
- api_id: exists
- クラスターを区別するためのフィルター: kubernetes.namespace_labels.cluster: xxxxxx-prd (オプション)
- [Discover] メニュー: API ログの詳細を確認
{
"_index": "xxxx.apim.xxxxx-prd.apim-xxxx.xx.xx",
"_id": "xxxxxxxxxxxxxx",
"_score": 1,
"_source": {
"@timestamp": "dd mm yyyy hh:mm:ss.sssZ",
"log": "{\"space_name\":\"xxxxxxx\",\"request_uri\":\"/path/to/api\",\"request_method\":\"POST\",\"duration\":xx,\"api_id\":\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\"response_status\":200,\"api_name\":\"xxxxxx\",\"response_size\":xxx,\"request_size\":xxx,\"start_at\":xxxxxxxxxxxxxxx,\"duration_kong\":0,\"duration_proxy\":xx,\"space_id\":\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"}",
"logtag": "F",
"stream": "stdout",
"time": "dd mm yyyy hh:mm:ss.sss+hh:mm",
"topic": "kube.var.log.containers.xxxxx-apim.xxxx-xxxx-yyyyy.log",
"space_name": "xxxxxxx",
"request_uri": "/path/to/api",
"request_method": "POST",
"duration": xx,
"api_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"response_status": 200,
"api_name": "xxxxxx",
"response_size": xxx,
"request_size": xxx,
"start_at": xxxxxxxxxxxxxxx,
"duration_kong": 0,
"duration_proxy": xx,
"space_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"kubernetes": {
"container_name": "xxxx",
"namespace_name": "xxxx",
"pod_name": "xxxx-xxxx-xxxx-xxxx",
"container_image": "xxxxxx",
"container_image_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"pod_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"pod_ip": "xxx.xxx.xxx.xxx",
"host": "xxxxxx",
"labels": {
"app": "xxxxxx",
"app_kubernetes_io/component": "xxxx",
"app_kubernetes_io/instance": "xxxxxx",
"app_kubernetes_io/managed-by": "Helm",
"app_kubernetes_io/name": "xxxx",
"app_kubernetes_io/version": "x.x",
"helm_sh/chart": "xxxx-x.x.x",
"pod-template-hash": "xxxxxxxx",
"security_istio_io/tlsMode": "istio",
"service_istio_io/canonical-name": "xxxx",
"service_istio_io/canonical-revision": "x.x",
"version": "x.x"
},
"master_url": "https://xxx.xxx.xxx.xxx:xxx/api",
"namespace_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"namespace_labels": {
"cloudzcp_io/deploygroup": "xxxxxx",
"cloudzcp_io/deploygroup-cluster": "xxxxxx-prd",
"cloudzcp_io/managed-by": "xxxx",
"cloudzcp_io/project": "xxxx",
"cloudzcp_io/realm": "xxxxxx",
"cloudzdb_io/zdb-system": "true",
"cluster": "xxxxxx-prd",
"istio-injection": "enabled",
"kubernetes_io/metadata_name": "xxxx",
"project": "xxxx",
"realm": "xxxxxx"
}
},
"docker": {
"container_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"tag": "projectPlain.project.kube.var.log.containers.xxxxx-apim.xxxx-xxxx-yyyyy.log"
},
"fields": {
"@timestamp": [
"dd mm yyyy hh:mm:ss.sssZ"
],
"time": [
"dd mm yyyy hh:mm:ss.sssZ"
]
- [ダッシュボード] メニュー: 環境(DEV、STG、PRD)別に分類されたAPIMダッシュボードを確認します。

### ダッシュボードの説明 \{#dashboard-description}
- 総APIコール、成功したコールの総数、失敗したコールの総数、および成功/失敗ステータス:
失敗の数には、401や499などの非致命的なエラーが含まれる場合があります。これらは実際のアプリケーションからの致命的なエラーではありません。したがって、ステータスコード(成功/失敗ステータス)も確認することが重要です。

- トップ5 APIコール - 棒グラフ、テーブル:
パフォーマンステスト中に主に呼び出されるAPIのステータスを確認できます。

- トップ5 APIレスポンス遅延:
- 呼び出されたときに遅延が発生するAPIを表示します。
- ゲートウェイレスポンス遅延: ゲートウェイで発生した遅延。
- バックエンドレスポンス遅延: バックエンドアプリケーションからのレスポンスの遅延。
- APIレスポンス遅延: ゲートウェイとバックエンドのレスポンス遅延を組み合わせた総遅延。
- すべてのレスポンス遅延値はミリ秒(ms)で測定されるため、100msの遅延は0.1秒に過ぎず、特に遅いわけではありません。一般的に、レスポンスタイムが1000ms(1秒)以上である場合は遅いと見なされます。

- 失敗ログの確認:
ユーザーは、ステータスコードが200でないAPIコールのログを確認できます。

- Kongゲートウェイエラーログ:
Kongゲートウェイで発生するエラーログを確認できます。エラーログフィルターとしてerror、redisを使用します。

[可視化] メニュー: APIMカスタムチャートを管理できます。

## APIゲートウェイの監視 \{#api-gateway-monitoring}
- Cloud ZCPコンソールにログイン> [システム管理者]画面に移動 > [監視]メニューをクリック > [高度な監視]ボタンをクリック
- Grafana > 左上隅のユーザーID > admin@localhostを選択
- ダッシュボード > ブラウズ > APIMダッシュボード
APIゲートウェイリソースメトリック
- ホーム > ダッシュボード > APIMダッシュボード > APIMゲートウェイ
- クラスター、Kong-Name、Kong-Service、Kong-Route
APIゲートウェイリソースメトリック. v2
ゲートウェイの詳細な指標を持つバージョン。
- ホーム > ダッシュボード > APIMダッシュボード > APIM > GATEWAYS V2
- クラスター、Kong-name、Kong-service、Kong-Route、デプロイメント、ポッド
APIMログ/監視データ累積方程式サンプルガイド
APIMログデータの量
APIM APIログ:
- 周期: いつでも。
- 単一データ量: 2KB + HTTPボディサイズ。
- 月間データ収集スケール:
- ボディ付きログ: Trueに設定されている場合
- 仮定: 平均ボディサイズ Assuming 10KB で、1分あたり3000回の呼び出し(1秒あたり50回)
- (2 KB + 10 KB) * 3000回 * 60分 * 24時間 * 30日 = 1555 GB
- ボディ付きログ: Falseに設定されている場合
- 仮定: 平均ボディサイズが0 KBで、1分あたり3000回の呼び出し(1秒あたり50回)
- (2 KB + 0 KB) * 3000回 * 60分 * 24時間 * 30日 = 259 GB
- ボディ付きログ: Trueに設定されている場合
APIM監視データの量
Kong GWメトリック(レイテンシ、接続など)
- サイクル: 15秒(デフォルト)
- 単一データ量: 20KB
- 月次データ収集スケール: 20KB * 4 (1分あたり4回) * 60分 * 24時間 * 30日 = 3.5 GB