Kong の監視 API Gateway

Instana ホストエージェントをインストールすると、 Kong の API Gateway センサーが自動的にインストールされます。 「設定 」セクションの手順に従ってセンサーを設定した後、 Instana のUIで、 Kong ( API Gateway )に関連するメトリクスを確認できます。

サポート情報

Kong API Gateway センサーが現在の環境と互換性があるかどうかを確認するには、以下のサポート情報セクションをご確認ください:

サポート対象のオペレーティング・システム

Kong API Gateway センサーの対応OSは、各ホストエージェントの要件と一致しています。これについては、各ホストエージェントの 「対応OS」 セクション(例: Unix の対応OS )で確認できます。

対応バージョンとサポート方針

このセンサーは、以下のバージョンの Kong および API Gateway に対応しています:

  • Kong Gateway (OSS) 2.6 以降
  • Kong Gateway 2.6 以降(Free モードまたは Enterprise モード)

以下の表は、最新のサポート対象バージョンとサポート方針を示しています:

テクノロジー サポート・ポリシー 最新技術バージョン サポートされる最新バージョン
Kong API Gateway オンデマンド 3.10.0.0 3.10.0.0

サポートポリシーに関する詳細については、 「センサーのサポート戦略」 を参照してください。

前提条件

「 Kong API Gateway 」センサーを設定する前に、前提条件を確認してください。

スタンドアロン・モード

エージェントがインストールされているホストから、 Kong 管理画面( API )にアクセスできることを確認してください。 ファイル kong.conf 内で、以下の例に示すように パラメータ admin_listen を更新してください:

admin_listen = 0.0.0.0:8001 reuseport backlog=16384, 0.0.0.0:8444 http2 ssl reuseport backlog=16384

インターフェース・バインディングでは、IP アドレス 127.0.0.1 は、サーバーがループバック・インターフェースのみを listen することを示します。 サーバーを IP アドレス 0.0.0.0 にバインドすると、サーバーは使用可能なすべてのインターフェースからのトラフィックを受け入れることができます。

ハイブリッドモード

Instana Kong のハイブリッドモードアーキテクチャに対応しています。 Kong ( API Gateway )のハイブリッド監視は、 Kong プロセスを自動的に検出することで実現されます。 configuration.yaml ファイルには項目は必要ありません。 デフォルトでは、コントロール・プレーン・ポートは 8001 に設定され、データ・プレーン・ポートは 8100 に設定されます。

基本認証

Kong Instana のセンサーは、基本認証に対応しています。 Kong の基本認証を設定するには、 手順を参照してください。 Kong の管理画面( API )で基本認証が不要な場合は、この手順をスキップできます。

以下の構成は、基本認証が有効になっている場合にのみ適用されます。 それ以外の場合は、構成を更新せず、コメント化されたままにします。

username: '' # Optional. Only for basic authentication otherwise keep it commented.
password: '' # Optional. Only for basic authentication otherwise keep it commented.
admin_api_route_path: '' # Optional.Only for basic authentication otherwise keep it commented.

Kong -Admin-Token ベースの認証

Kong -Admin-Token ベースの認証では、 Kong がロールベースのアクセス制御(RBAC)によって保護されており、 Kong -Admin-Token を作成済みであることを前提としています。 「admin API 」メソッドを呼び出す前に、 Kong -Admin-Token を作成する必要があります。 Kong ( Enterprise Edition )のWebコンソールでトークンを作成または更新するには、 [プロファイル ] > [トークンのリセット] をクリックします。 次の例では、トークン abc123 が作成されます。 Kong の管理者 API が、 Kong -Admin-Token ベースの認証を必要としない場合は、この手順をスキップできます。

以下の設定は、 Kong の-Admin-Tokenベースの認証が有効になっている場合にのみ適用されます。 それ以外の場合は、構成を更新せず、コメント化されたままにします。

admin_token: 'abc123' # Optional. Only for Kong-Admin-Token based authentication otherwise keep it commented.

「 Kong 」の有効化 Prometheus プラグイン

Instana ( Kong )センサーは、 Prometheus プラグインから提供されるデータに基づいて、レイテンシ、帯域幅、およびアプリケーションの健全性に関するメトリクスを表示します。 ダッシュボードにメトリクスを表示するには、 Prometheus プラグインを有効にする必要があります。

詳細および利用可能なメトリクスの一覧については、 『 Kong 』のドキュメント ( Prometheus )を参照してください。

の構成

Kong ( API Gateway )センサーは、 Kong のローカルおよびリモート監視の両方をサポートしています。

ローカル・モニター

Kong ( API Gateway )のローカル監視は、 Kong プロセスを自動的に検出することで実現されます。 ローカル監視を開始するには、 Kong の API Gateway センサーを有効にする必要があります。 センサーを有効にするには、configuration.yamlファイルでenabledパラメータをtrueに設定する。

#Kong API Gateway
com.instana.plugin.kong:
  enabled: false # To enable the sensor, set its value to ‘true’.
  dataset_size: 10 # Maximum number of rows to be fetched as part of the metrics collection related to services or routes.
  disabled_metrics: 'TOTAL_HTTP_REQUESTS,BANDWIDTH_UTILISATION,KONG_LATENCY,UPSTREAM_LATENCY,REQUEST_LATENCY' # Comma-separated list of metrics to be disabled. Remove these metrics to re-enable monitoring. To get the complete list, see Metric Names List.
  status_code_group: '2xx,3xx,4xx,5xx' # Comma-separated list of status codes to be monitored.

リモート監視

Kong ( API Gateway )に接続するには、エージェント <agent_install_dir>/etc/instana/configuration.yaml 設定ファイルで以下のパラメータを設定してください:

#Kong API Gateway
com.instana.plugin.kong:
  enabled: false # To enable the sensor, set its value to ‘true’.
  dataset_size: 10 # Maximum number of rows to be fetched as part of the metrics collection related to services or routes.
  disabled_metrics: 'TOTAL_HTTP_REQUESTS,BANDWIDTH_UTILISATION,KONG_LATENCY,UPSTREAM_LATENCY,REQUEST_LATENCY' # Comma-separated list of metrics to be disabled. Remove these metrics to re-enable monitoring. To get the complete list, see Metric Names List.
  status_code_group: '2xx,3xx,4xx,5xx' # Comma-separated list of status codes to be monitored.
  remote: # Multiple remote configurations can be specified.
    - host: '' # Kong Server Host or IP address.
      port: '' # Admin api port (default is 8444). In case of basic authentication, it is a proxy port.
      availabilityZone: '' # default is 'KongAZ'.
      poll_rate: 30 # Poll rate in seconds (minimum 30 seconds).
      protocol: 'https' # Protocol to access Kong Admin API.  Valid values: [‘https’ or ‘http’]. Default: ‘https’.
      username: '' # Optional. Only for basic authentication otherwise leave it commented.
      password: '' # Optional. Only for basic authentication otherwise leave it commented.
      admin_api_route_path: '' # Optional. Only for basic authentication otherwise leave it commented.
      admin_token: '' # Optional. Only for Token based authentication otherwise leave it commented.

メトリクスの監視を停止するには、 パラメータ disabled_metrics の値としてメトリクス名を指定してください。 値の区切りにはカンマを使用する。 これらのメトリックの監視を開始するには、リストからメトリック名を削除します。 完全なリストを入手するには、メートル名リストを参照してください。

注: デフォルトでは、サービスやルートに関連するテーブルに表示される行数は最大10行に設定されています。 このデフォルト値は、 dataset_size パラメータに値を追加することで変更できます。

以下の例は、 基本認証を使用しない構成を示しています。

#Kong API Gateway
com.instana.plugin.kong:
  enabled: false # To enable the sensor, set its value to ‘true’.
  dataset_size: 10 # Maximum number of rows to be fetched as part of the metrics collection related to services or routes.
  disabled_metrics: 'TOTAL_HTTP_REQUESTS,BANDWIDTH_UTILISATION,KONG_LATENCY,UPSTREAM_LATENCY,REQUEST_LATENCY' # Comma-separated list of metrics to be disabled. Remove these metrics to re-enable monitoring. To get the complete list, see Metric Names List.
  status_code_group: '2xx,3xx,4xx,5xx' # Comma-separated list of status codes to be monitored.
  remote: # Multiple configurations can be specified
    - host: 'host-1' # Kong Server Host or IP address.
      port: '8444' # Admin api port(default is 8444). In case of basic authentication, it is a proxy port.
      availabilityZone: 'KongAZ-DC1' # default is 'KongAZ'
      poll_rate: 30 # Poll rate in seconds. It can not be less than 30 seconds.
      protocol: 'https' # ['https' or 'http']. Default is 'https'. Protocol to access Kong Admin API.
    - host: 'host-2' # Kong Server Host or IP address.
      port: '8444' # Admin api port(default is 8444). In case of basic authentication, it is a proxy port.
      availabilityZone: 'KongAZ-DC2' # default is 'KongAZ'
      poll_rate: 30 # Poll rate in seconds. It can not be less than 30 seconds.
      protocol: 'https' # ['https' or 'http']. Default is 'https'. Protocol to access Kong Admin API.

以下の例は、 基本認証を有効にした場合の構成を示しています。

#Kong API Gateway
com.instana.plugin.kong:
  enabled: false # To enable the sensor, set its value to ‘true’.
  dataset_size: 10 # Maximum number of rows to be fetched as part of the metrics collection related to services or routes.
  disabled_metrics: 'TOTAL_HTTP_REQUESTS,BANDWIDTH_UTILISATION,KONG_LATENCY,UPSTREAM_LATENCY,REQUEST_LATENCY' # Comma-separated list of metrics to be disabled. Remove these metrics to re-enable monitoring. To get the complete list, see Metric Names List.
  status_code_group: '2xx,3xx,4xx,5xx' # Comma-separated list of status codes to be monitored.
  remote: # Multiple configurations can be specified
    - host: 'host-1' # Kong Server Host or IP address.
      port: '8444' # Admin api port(default is 8444). In case of basic authentication, it is a proxy port.
      availabilityZone: 'KongAZ-DC1' # default is 'KongAZ'
      poll_rate: 30 # Poll rate in seconds. It can not be less than 30 seconds.
      protocol: 'https' # ['https' or 'http']. Default is 'https'. Protocol to access Kong Admin API.
      username: 'user-1' # Optional. Only for basic authentication otherwise keep it commented.
      password: 'password-1' # Optional. Only for basic authentication otherwise keep it commented.
      admin_api_route_path: 'admin-api-1' # Optional.Only for basic authentication otherwise keep it commented.
    - host: 'host-2' # Kong Server Host or IP address.
      port: '8444' # Admin api port(default is 8444). In case of basic authentication, it is a proxy port.
      availabilityZone: 'KongAZ-DC2' # default is 'KongAZ'
      poll_rate: 30 # Poll rate in seconds. It can not be less than 30 seconds.
      protocol: 'https' # ['https' or 'http']. Default is 'https'. Protocol to access Kong Admin API.
      username: 'user-2' # Optional. Only for basic authentication otherwise keep it commented.
      password: 'password-2' # Optional. Only for basic authentication otherwise keep it commented.
      admin_api_route_path: 'admin-api-2' # Optional.Only for basic authentication otherwise keep it commented.

メートル法の名称一覧

カスタム・プロバイダー名 無効になっているUIテーブル名
合計 HTTP のリクエスト数に基づく人気サービス
帯域幅利用 帯域幅利用率上位サービス、全サービスの帯域幅
共有辞書 共有辞書割り振り済みスラブ
KONG_レイテンシー Kong の遅延上位サービス、 Kong の遅延上位ルート、全サービスにおける Kong の遅延、全ルートにおける Kong の遅延
アップストリーム・ラテンシー アップストリーム遅延別トップサービス、アップストリーム遅延別トップルート、全サービスのアップストリーム遅延、全ルートのアップストリーム遅延
リクエスト・ラテンシー リクエスト待ち時間別トップサービス、リクエスト待ち時間別トップルート、全サービスのリクエスト待ち時間、全ルートのリクエスト待ち時間
アロケートド・バイト・ワーカー・ルア ワーカー Lua VM の割り振りバイト数
nginx_total_requests Kong NGINX 合計要求数
nginx_current_connections 合計接続数

メトリックの表示

メトリックを表示するには、以下のステップを実行します。

  1. Instana のUIのサイドバーで、 「インフラストラクチャ」 を選択します。
  2. 特定のモニター対象ホストをクリックします。

収集されたすべてのメトリックとモニター対象プロセスを含むホスト・ダッシュボードを表示できます。

各 Kong API Gateway サーバーでは、以下のメトリクスが利用可能です:

メトリック 説明 粒度
コン・データ・ストア到達可能 Kong データストアの接続状態を表示します。 Kong がデータストアに接続できない場合は「No」を返し、接続できた場合は「Yes」を返します。 30 秒
Prometheus 有効 Prometheus プラグインの状態を表示します。 Kong でプラグインが有効になっていない場合は「No」を返し、有効になっている場合は「Yes」を返します。 30 秒
Kong データベース Kong が接続しているデータベースの名前を表示します。 30 秒
データベース・エンティティーの総数 Kong データベース内のエンティティの総数を表示します。 30 秒
Kong データベース・エンティティー・カウント・エラー Kong データベース内のエンティティ総数を計測する際に発生したエラーの数を計測します。 30 秒
ライセンス情報収集のエラー ライセンス情報の収集中に発生したエラーの総数を表示します。 30 秒
コング Nginx メトリック・エラー nginx-lua-prometheus ライブラリーの使用時に発生したメトリック・エラーを増分します。 この Lua ライブラリーは、 Prometheusによってプルされる別の Web ページでメトリックを追跡して表示するために Nginx とともに使用されます。 30 秒
ワーカーの整合性 このノードがその状態を同期的または非同期的に再ビルドする必要があるかどうかを定義します。 受け入れられる値は厳密で最終的なものです。 30 秒
ワーカー状態の更新頻度 ワーカーの状態変更がバックグラウンド・ジョブでチェックされる頻度を定義します。 デフォルト値は 5 秒です。 30 秒
Kong Nginx タイマー 実行中および保留中の NGINX タイマーの総数を表示します。 30 秒
合計トラフィック 状況コード・クラス別にグループ化されたすべての状況コードのカウントを表示します (例えば、 2xx、 3xx、 4xx、および 5xx)。 30 秒
共有辞書割り振り済みスラブ 大量のデータを保管するために、割り振られたスラブを共有メモリー・ディクショナリーにバイト単位で表示します。 30 秒
共有辞書のメモリ使用率 共有ディクショナリが消費するメモリの合計を表示します 30 秒
ワーカー Lua VM の割り振りバイト数 ワーカー Lua 仮想マシンの割り振り済みメモリーをバイト単位で表示します。 30 秒
Kong NGINX 合計要求数 HTTP やstreamなどのサブシステムごとのリクエスト総数を表示します。 30 秒
全サービスの帯域幅 Kong を経由する全サービスの合計帯域幅(送信または受信)をバイト単位で表示します 30 秒
共有辞書割り振り済みスラブ 大量のデータを保管するために、割り振られたスラブを共有メモリー・ディクショナリーにバイト単位で表示します。 30 秒
HTTP 要求の総数 サービスごと、ルートごと、および HTTP ステータスコードごとの HTTP リクエストの総数を表示します。 30 秒
Kong サービスごとおよびルートごとの遅延 各サービスおよび各ルートについて、 Kong および有効化されたプラグインによって生じる遅延を表示します。 30 秒
サービスおよびルートごとのリクエスト遅延 Kong がサービスまたはルートのリクエストを受信し、クライアントに応答するまでに要した合計時間を表示します。 30 秒
サービスおよびルートごとのアップストリーム遅延 特定のサービスまたはルートについて、アップストリーム・サービスがリクエストを処理し、 Kong に応答を返すまでに要した時間を表示します。 30 秒
Kong すべてのサービスおよびルートにおける遅延 すべてのサービスおよびルートにわたる Kong の合計レイテンシを表示します 30 秒
すべてのサービスとルートにおけるリクエスト遅延 すべてのサービスと経路の合計Request待ち時間を表示します 30 秒
すべてのサービスとルートにおけるアップストリーム遅延 すべてのサービスとルートにわたるアップストリーム遅延の合計を表示します 30 秒

Kong トレースの例

Instana Kong API Gateway センサーのトレース機能をプレビューするための公開リポジトリを提供しています。 詳細については、 kong-otel-tracing を参照してください。