###概要
今回は、第一回で構築したConfluentのクラスタを利用しConfluent Control Centerにログインしてコンシューマの可視化の部分を確認してみたいと思います。
###Confluent Control Centerにログイン
1.以下のURLでWebブラウザからコンフルエントコントロールセンターのGUIにアクセスします。
http://localhost:9021
Confluent Control Center(以下、CCC)を使用するとコンシューマラグとスループットのパフォーマンスを監視することができます。コンシューマラグとはトピックの最高水準点(書き込まれているトピックの最新のオフセット)から現在のコンシューマのオフセット(そのトピックについてコンシューマグループが読み取った最新のオフセット)を引いたものです。
1.コンシューマラグのサイズの重要性を検討する時、トピックの書き込み速度とコンシューマグループの読み取り速度に留意して下さい。CCCの左メニューのところの'Consumers'をクリックします。
2.コンシューマラグはper-consumer basisで詳細を確認できます。例えばシンクコネクタ用の組込みコンシューマ(connect-elasticsearch-ksqldbなど)、ksqlDBクエリ(_confluent-ksql-ksql-clusterquery_で始まる名前のコンシューマグループなど)などです。またトピックベースのコンシューマラグはper-topic basisで詳細を確認できます。
3.コンシューマグループのリストの
"_confluent-ksql-ksql-clusterquery_CSAS_WIKIPEDIABOT_5"として表示されている、永続的なksqlDB"Create Stream As Select"クエリ(CSAS_WIKIPEDIABOT)用のコンシューマラグを表示します。
4.コンシューマーグループ ID "wikipedia-activity-monitor" の下の、Kafka Streams アプリケーションのコンシューマラグを表示します。このアプリケーションは、cnfldemos/cp-demo-kstreamsの Docker コンテナ(source code)によって実行されます。Kafka Streams アプリケーションは、このクライアント構成ファイルを使用して Kafka クラスターに接続するように構成されています。
5.消費メトリックの詳細は、per-consumer basisで確認できます。これらのコンシューマチャートは、このサンプルのように Confluent Monitoring Interceptorsが構成されている場合にのみ確認できます。このチャートでは"% messages consumed" と "end-to-end latency" が確認できます。ここではksqlDB "Create Stream As Select" クエリ "CSAS_WIKIPEDIABOT"用の消費メトリクスを表示します。これは、コンシューマーグループのリストに"_confluent-ksql-ksql-clusterquery_CSAS_WIKIPEDIABOT_5" として表示されているものです。
6.Confluent Control Center には、コンシューマーグループのどのコンシューマーがどのパーディションから消費しているか、およびそれらのパーティションが格納されているブローカーが表示されます。Confluent Control Center は、コンシューマーグループでコンシューマーのバランス調整が発生するとアップデートされます。以下のコマンドを実行して、新規コンシューマーグループ "app" と 1 つのコンシューマー "consumer_app_1" で、トピック"wikipedia.parsed"からの消費を開始します。これはバックグラウンドで実行されます。
./scripts/app/start_consumer_app.sh 1
7.Confluent Control Centerでコンシューマーグループ"app"の消費が安定して表示されるまで、このコンシューマーグループを2分間実行します。このコンシューマーグループ"app"には1つのコンシューマー "consumer_app_1"があり、トピック"wikipedia.parsed"内のすべてのパーティションを消費しるのが確認できます。
8.既存のコンシューマーグループ"app"に2番目のコンシューマー"consumer_app_2"を以下のコマンドで追加します。
./scripts/app/start_consumer_app.sh 2
9.Confluent Control Centerでコンシューマーグループ"app"の消費が安定して表示されるまで、このコンシューマーグループを2分間実行します。コンシューマー"consumer_app_1"および"consumer_app_2"は現在、トピック wikipedia.parsed内のパーティションの消費を共有していることが確認できます。
10.メインメニューから「Brokers」、「Consumption」の順にクリックしMetricsビューを表示します。つぎに"Request latency"の折れ線グラフをクリックするとリクエストライフサイクル全体のレイテンシの内訳を表示することができます。
上記を試してみて、comsumerチャートを使用するにはConfluent monitoring Interceptorsの構成が必要であるという点が私自身勉強になったポイントです。
今回も最後までお読み頂きありがとうございました!