このリポジトリはKongの観測に必要なコンポーネントを纏めたDocker Composeのデモ環境です。Kong GatewayとKongのメタデータストアであるPostgresの他に、PrometheusとGrafanaのインスタンスも立ち上がります。
KongのPrometheus Pluginを利用する事によりKongがメトリクスのエンドポイントを公開し、Prometheusのスクレイプによってメトリクスを収集します。収集したメトリクスを可視化するGrafanaのダッシュボードはKongのオフィシャルダッシュボードを利用しています。
このリポジトリをクローン後、メインフォルダに移動し
docker compose up -d
を実行する。
作業後は
docker compose down
を実行する。
Caution
対象メトリクスの項目数やこの環境の実行時間によってはPrometheusのストレージが大きくなる事があります。その場合は停止後に docker volume prune
を利用して不要ストレージをクリーンアップしてください。
user id: kong
password: kong
メトリクスはKong Prometheus Pluginを有効化することによりスクレープ可能となります。このプラグインは特定Service、Route等に指定する事ができますが、今回はGlobal(対象エンティティを指定しない)事によりKong Gateway全体のメトリクスを出力しています。
プラグインはKong Manager上にて手動で設定する事もできますが、今回はKong Gateawy Admin APIに対してRESTコールをする事により自動設定しています。設定内容については/scripts/pruglins.shを参照してください。
設定はassets/prometheus/prometheus.ymlに定義されています。ここではスクレープ対象エンドポイントの設定と併せて、scrape_interval
を設定しています。
GrafanaのダッシュボードはKongのオフィシャルDashbaordを利用しています。起動時にこのダッシュボードが読み込まれる設定としているので、起動後そのまま利用できます。
- Grafana ダッシュボードの
Request rate
、Latencies
等のメトリクスは実際にKong Gatewayへのトラフィックが発生しない限りメトリクスが無いので表示されません。 - Prometheusの設定では
scrape_interval
を必ず1分以内に設定してください。(デフォルトは1m
)