【第６回】Confluent Platformのデモを試してみる(コンシューマ編)

###概要
今回は、[第一回](https://qiita.com/Alex-hiro/items/0209b2faec9c00cf3ca1)で構築したConfluentのクラスタを利用しConfluent Control Centerにログインしてコンシューマの可視化の部分を確認してみたいと思います。

###Confluent Control Centerにログイン
１.以下のURLでWebブラウザからコンフルエントコントロールセンターのGUIにアクセスします。

```sh
http://localhost:9021
````

Confluent Control Center(以下、CCC)を使用するとコンシューマラグとスループットのパフォーマンスを監視することができます。コンシューマラグとはトピックの最高水準点（書き込まれているトピックの最新のオフセット）から現在のコンシューマのオフセット（そのトピックについてコンシューマグループが読み取った最新のオフセット）を引いたものです。

１.コンシューマラグのサイズの重要性を検討する時、トピックの書き込み速度とコンシューマグループの読み取り速度に留意して下さい。CCCの左メニューのところの'Consumers'をクリックします。
![スクリーンショット 2021-12-03 20.14.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128268/20e9d145-ad16-7954-3a4a-def1d77bd527.png)
2.コンシューマラグは[per-consumer basis](https://docs.confluent.io/platform/current/control-center/consumers.html#view-consumer-lag-details-for-a-consumer-group)で詳細を確認できます。例えばシンクコネクタ用の組込みコンシューマ(connect-elasticsearch-ksqldbなど)、ksqlDBクエリ(_confluent-ksql-ksql-clusterquery_で始まる名前のコンシューマグループなど)などです。またトピックベースのコンシューマラグは[per-topic basis](https://docs.confluent.io/platform/current/control-center/topics/view.html#view-consumer-lag-for-a-topic)で詳細を確認できます。
![スクリーンショット 2021-12-03 20.16.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128268/ff0967f9-846b-9d82-280a-a24d0cfccfe5.png)
３.コンシューマグループのリストの
"_confluent-ksql-ksql-clusterquery_CSAS_WIKIPEDIABOT_5"として表示されている、永続的なksqlDB"Create Stream As Select"クエリ（CSAS_WIKIPEDIABOT)用のコンシューマラグを表示します。
![スクリーンショット 2021-12-10 9.49.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128268/62a241a3-c8e0-e523-2696-ace8d207c3a6.png)
４.コンシューマーグループ ID "wikipedia-activity-monitor" の下の、Kafka Streams アプリケーションのコンシューマラグを表示します。このアプリケーションは、[cnfldemos/cp-demo-kstreams](https://hub.docker.com/r/cnfldemos/cp-demo-kstreams)の Docker コンテナ（[source code](https://github.com/confluentinc/cp-demo/blob/7.0.0-post/kstreams-app/src/main/java/io/confluent/demos/common/wiki/WikipediaActivityMonitor.java))によって実行されます。Kafka Streams アプリケーションは、この[クライアント構成ファイル](https://github.com/confluentinc/cp-demo/blob/7.0.0-post/env_files/streams-demo.env)を使用して Kafka クラスターに接続するように構成されています。
![スクリーンショット 2021-12-10 10.01.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128268/d6bfb34c-8535-8434-1db2-46af64758753.png)
５.消費メトリックの詳細は、[per-consumer basis](https://docs.confluent.io/platform/current/control-center/consumers.html#view-consumption-details-for-a-consumer-group)で確認できます。これらのコンシューマチャートは、このサンプルのように [Confluent Monitoring Interceptors](https://docs.confluent.io/platform/current/control-center/installation/clients.html)が構成されている場合にのみ確認できます。このチャートでは"% messages consumed" と "end-to-end latency" が確認できます。ここではksqlDB "Create Stream As Select" クエリ "CSAS_WIKIPEDIABOT"用の消費メトリクスを表示します。これは、コンシューマーグループのリストに"_confluent-ksql-ksql-clusterquery_CSAS_WIKIPEDIABOT_5" として表示されているものです。
![スクリーンショット 2021-12-13 15.43.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128268/6a02f24b-f1d6-f284-6699-ea41b497b795.png)
６.Confluent Control Center には、コンシューマーグループのどのコンシューマーがどのパーディションから消費しているか、およびそれらのパーティションが格納されているブローカーが表示されます。Confluent Control Center は、コンシューマーグループでコンシューマーのバランス調整が発生するとアップデートされます。以下のコマンドを実行して、新規コンシューマーグループ "app" と 1 つのコンシューマー "consumer_app_1" で、トピック"wikipedia.parsed"からの消費を開始します。これはバックグラウンドで実行されます。

```sh
./scripts/app/start_consumer_app.sh 1
````
７.Confluent Control Centerでコンシューマーグループ"app"の消費が安定して表示されるまで、このコンシューマーグループを2分間実行します。このコンシューマーグループ"app"には1つのコンシューマー "consumer_app_1"があり、トピック"wikipedia.parsed"内のすべてのパーティションを消費しるのが確認できます。
![スクリーンショット 2021-12-14 14.36.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128268/5f613ed8-6aa4-6723-729b-a19d2d738578.png)
８.既存のコンシューマーグループ"app"に2番目のコンシューマー"consumer_app_2"を以下のコマンドで追加します。

```sh
./scripts/app/start_consumer_app.sh 2
````
９.Confluent Control Centerでコンシューマーグループ"app"の消費が安定して表示されるまで、このコンシューマーグループを2分間実行します。コンシューマー"consumer_app_1"および"consumer_app_2"は現在、トピック wikipedia.parsed内のパーティションの消費を共有していることが確認できます。
![スクリーンショット 2021-12-14 14.43.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128268/4096b29d-0a5f-d121-6d7f-f49a49a78398.png)
１０.メインメニューから「Brokers」、「Consumption」の順にクリックしMetricsビューを表示します。つぎに"Request latency"の折れ線グラフをクリックすると[リクエストライフサイクル](https://docs.confluent.io/platform/current/control-center/brokers.html#c3-brokers-consumption-metrics)全体のレイテンシの内訳を表示することができます。
![スクリーンショット 2021-12-14 14.50.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/128268/ba24a20d-8f6d-7c5c-d3c8-76570d6a7b77.png)

上記を試してみて、comsumerチャートを使用するには[Confluent monitoring Interceptors](https://docs.confluent.io/platform/current/control-center/installation/clients.html)の構成が必要であるという点が私自身勉強になったポイントです。

今回も最後までお読み頂きありがとうございました！