StatsDによるモニタリング
StatsDは、ネットワークでアプリケーションが公開したテキストベースの統計データをリッスンしてパフォーマンスメトリクスを収集し、集計するネットワークデーモンです。
このガイドはテスト用のKong GatewayとStatsDサービスのセットアップに役立ちます。 セットアップしたら、Kong Gatewayへのサンプルリクエストを生成し、 収集された監視データを観測します。
前提条件
- Dockerは、StatsDを実行するのに使用され、サービスをローカルでサポートします。
-
curlはKong Gatewayにリクエストを送信するために使用されます。
curl
はほとんどのシステムにプリインストールされています。 -
Netcat はシステム
PATH
にnc
としてインストールされます。nc
は、StatsD 管理インターフェイスにリクエストを送信するために使用されます。nc
は多くのシステムにプリインストールされています。
StatsDモニタリングの構成
-
Kong Gatewayのインストール。
既存のKong Gatewayインストールを使用する場合、この手順はオプションです。既存の Kong Gatewayを使用する場合は、ネットワーク接続とインストールされているKong Gatewayサービスおよびルートを考慮してコマンドを変更する必要があります。
curl -Ls https://get.konghq.com/quickstart | bash -s -- -m
-m
フラグは、スクリプトにこのガイドでサンプルメトリクスを生成するために使用するモックサービスをインストールするよう指示します。Kong Gatewayの準備が完了すると、以下のメッセージが表示されます。
Kong Gateway Ready
-
StatsD コンテナを実行して監視データを取得します。
docker run -d --rm -p 8126:8126 \ --name kong-quickstart-statsd --network=kong-quickstart-net \ statsd/statsd:latest
-
StatsD Kong Gateway プラグインをインストールし、リッスンしている StatsD サービスのホスト名とポートを構成します。
curl -X POST http://localhost:8001/plugins/ \ --data "name=statsd" \ --data "config.host=kong-quickstart-statsd" \ --data "config.port=8125"
インストールされたプラグインの詳細を含む JSON 応答が返されます。
-
モックサービスへのサンプルトラフィックを生成します。これにより、StatsDプラグインから 生成されたメトリクスを確認できます。次のコマンドは1分間に60の リクエストを生成します。新しいターミナルで以下を実行します。
for _ in {1..60}; do {curl localhost:8000/mock/anything; sleep 1; } done
-
StatsD管理インターフェースをクエリして、Kong Gatewayから収集されたメトリクスを確認します。
echo "counters" | nc localhost 8126
以下のようなレスポンスが表示されます。
{ 'statsd.bad_lines_seen': 0, 'statsd.packets_received': 56, 'statsd.metrics_received': 56, 'kong.mock.request.count': 7, 'kong.mock.request.status.200': 7, 'kong.mock.request.status.total': 7 } END
StatsDプラグインの使用方法と構成方法の詳細については、「StatsDプラグインのドキュメントを参照してください。
クリーンアップ
StatsDとKong Gatewayの見極めが終わったら、次のコマンドを利用して、 このガイド内の実行したソフトウェアを停止および削除できます。
docker stop kong-quickstart-statsd
curl -Ls https://get.konghq.com/quickstart | bash -s -- -d
詳細情報
- Prometheusで監視する方法では、Prometheusプラグインを使ってKong Gatewayを監視するためのPrometheusの使い方について紹介します。
- Kong Gatewayのトレース機能については、トレーシング APIリファレンスを参照してください。