かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

Spring Boot 2.2.x の Web アプリを 2.3.x へバージョンアップする ( その12 )( Docker コンテナの image をバージョンアップする、prometheus・grafana 編 )

概要

記事一覧はこちらです。

Spring Boot 2.2.x の Web アプリを 2.3.x へバージョンアップする ( その11 )( Docker コンテナの image をバージョンアップする、rabbitmq・haproxy・rabbitmq_exporter 編 ) の続きです。

  • 今回の手順で確認できるのは以下の内容です。
    • 今回は以下の Docker コンテナの image をバージョンアップします。
      • prom/prometheus
      • grafana/grafana

参照したサイト・書籍

目次

  1. docker-compose.yml を変更する
  2. docker-compose up -d コマンドを実行する
  3. Grafana の各 dashboard を確認する
    1. PostgreSQL Statistics
    2. Prometheus Redis
    3. RabbitMQ Monitoring
    4. Spring Boot Statistics
  4. PostgreSQL Statistics → PostgreSQL Database に切り替える
  5. Redis Dashboard for Prometheus Redis Exporter 1.x → Redis Dashboard for Prometheus Redis Exporter (helm stable/redis-ha) に切り替える
  6. 変更前の docker image を削除する
  7. 続く。。。

手順

docker-compose.yml を変更する

  prometheus:
    image: prom/prometheus:v2.23.0
    container_name: prometheus
    ports:
      - "9090:9090"
    # TZ=Asia/Tokyo を設定してみたが日本時間に変わらなかったのでコメントアウトしておく
    # environment:
    #   - TZ=Asia/Tokyo
    volumes:
      - ./docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - ./docker/prometheus/storage:/prometheus
    extra_hosts:
      - "app:${HOST_IP_ADDRESS}"

  grafana:
    image: grafana/grafana:7.3.6
    container_name: grafana
    ports:
      - "3000:3000"
    environment:
      - TZ=Asia/Tokyo
    volumes:
      - ./docker/grafana/storage:/var/lib/grafana
  • image: prom/prometheus:v2.15.1image: prom/prometheus:v2.23.0 に変更します。
  • image: grafana/grafana:6.5.2image: grafana/grafana:7.3.6 に変更します。

docker-compose up -d コマンドを実行する

以下のコマンドを実行して docker image を更新・ダウンロードします(画面キャプチャはなし)。

  1. docker-compose up -d コマンドを実行してコンテナ一式(メールサーバ・rainloop を除く)を起動します。

Grafana の各 dashboard を確認する

PostgreSQL Statistics

f:id:ksby:20201219181315p:plain

Prometheus Redis

f:id:ksby:20201219183409p:plain

  • 以下の問題がありました。
    • 画面上部の Variables の addr に何も表示されていませんでした。
    • 以下の Panel にデータが表示されていませんでした。
      • Uptime
      • Clients
      • Command Calls / sec
  • 使用しているのは Redis Dashboard for Prometheus Redis Exporter 1.x、https://grafana.com/grafana/dashboards/763
  • 最新は Revision 3、Created July 3rd 2019, 2:07 am
  • https://grafana.com/grafana/dashboardsRedis で検索して、ヒットした中で一番 Downloads が多いものを確認すると(AWS や Azure が付くものは除く)、Redis Dashboard for Prometheus Redis Exporter (helm stable/redis-ha)、https://grafana.com/grafana/dashboards/11835
  • Redis Dashboard for Prometheus Redis Exporter (helm stable/redis-ha) の最新は Revision 1、Created March 2nd 2020, 7:37 pm
  • 今回は Redis Dashboard for Prometheus Redis Exporter 1.x を削除して Redis Dashboard for Prometheus Redis Exporter (helm stable/redis-ha) に切り替えることにします。

RabbitMQ Monitoring

f:id:ksby:20201219184648p:plain

  • 以下の問題がありました。
    • 以下の Panel にデータが表示されていませんでした。
      • Connections, channels and consumers
    • 画面上部の rabbit@rabbitmq1、rabbit@rabbitmq2、rabbit@rabbitmq3 の Panel はデータが表示されたりされなかったりします。
  • 使用しているのは RabbitMQ Monitoring、https://grafana.com/grafana/dashboards/4279
  • 最新は Revision 4、Created January 18th 2020, 12:22 am
  • https://grafana.com/grafana/dashboardsRabbitMQ で検索して、ヒットした中で一番 Downloads が多いものを確認すると(AWS や Azure が付くものは除く)、RabbitMQ-Overview、https://grafana.com/grafana/dashboards/10991
  • RabbitMQ-Overview の最新は Revision 7、Created November 13th 2020, 9:57 pm
  • RabbitMQ-Overview の説明を読むと RabbitMQ 3.8 から Prometheus & Grafana がサポートされていて(Monitoring with Prometheus & Grafana に記述があります)、rabbitmq-prometheus を有効にする必要があるとのこと。
  • 今回は RabbitMQ Monitoring を削除して RabbitMQ-Overview に切り替えることにします。

Spring Boot Statistics

f:id:ksby:20201219195225p:plain

  • 以下の問題がありました。
    • 以下の Panel にデータが表示されていませんでした。
      • Process Open Files
      • $memory_pool_nonheap (non-heap)
      • Classes Loaded
      • Classes Unloaded
      • Threads
      • 「HikariCP Statistics」の下の全ての Panel
      • 「HTTP Statistics」の下の全ての Panel
      • Tomcat Statistics」の下の全ての Panel
  • 使用しているのは Spring Boot Statistics、https://grafana.com/grafana/dashboards/6756
  • 最新は Revision 2、Created July 2nd 2018, 5:53 pm
  • https://grafana.com/grafana/dashboardsSpring Boot で検索して、ヒットした中で一番 Downloads が多いものを確認すると(AWS や Azure が付くものは除く)、JVM (Micrometer)、https://grafana.com/grafana/dashboards/4701
  • JVM (Micrometer) の最新は Revision 9、Created November 4th 2019, 1:59 am
  • ただしこれは JVM の情報のみです。
  • また検索結果を見ると Spring Boot Statistics、https://grafana.com/grafana/dashboards/12464 があり、This is a fork of dashboard 6756, fixed for Spring Boot 2.3 and support for Jetty instead of Tomcat. という記述がありました。使用しているのは Tomcat なので、これは選択できませんね。
  • 今回は Spring Boot Statistics は残してデータが表示されていない Panel を修正しつつ、JVM (Micrometer) を追加してみることにします。

PostgreSQL Statistics → PostgreSQL Database に切り替える

最初に PostgreSQL DatabaseDashboard に追加します。

画面左側のメニューから「Dashboards」-「Manage」をクリックします。

f:id:ksby:20201219213010p:plain

下の画面が表示されるので、「Import」ボタンをクリックします。

f:id:ksby:20201219213144p:plain

「Import」画面が表示されるので「Import via grafana.com」に 9628 を入力後「Load」ボタンをクリックします。

f:id:ksby:20201219213519p:plain

「DS_PROMETHEUS」で「spring-actuator」を選択した後、「Import」ボタンをクリックします。

f:id:ksby:20201219213752p:plain

PostgreSQL Database の画面が表示されます。画面右上を「Last 6 hours」「10s」→「Last 15 minutes」「5s」に変更しています。

f:id:ksby:20201219215859p:plain

次に PostgreSQL Statistics を削除します。

「Dashboards」-「Manage」の画面で「PostgreSQL Statistics」をチェックした後、「Delete」ボタンをクリックして削除します。

f:id:ksby:20201219220853p:plain

Redis Dashboard for Prometheus Redis Exporter 1.x → Redis Dashboard for Prometheus Redis Exporter (helm stable/redis-ha) に切り替える

「Import」画面で「Import via grafana.com」に 9628 を入力して import します。

f:id:ksby:20201219223530p:plain f:id:ksby:20201219223657p:plain

Redis Dashboard for Prometheus Redis Exporter (helm stable/redis-ha) の画面が表示されます。画面右上を「Last 24 hours」「30s」→「Last 15 minutes」「5s」に変更しています。

f:id:ksby:20201219224148p:plain

「Dashboards」-「Manage」の画面で「Prometheus Redis」を削除します。

変更前の docker image を削除する

以下の docker image を削除します。

  • prom/prometheus:v2.15.1
  • grafana/grafana:6.5.2

続く。。。

RabbitMQ Monitoring → RabbitMQ-Overview 切替、Spring Boot Statistics のデータが表示されていない Panel の修正+JVM (Micrometer) 追加、の2つは次回以降に記載します。

履歴

2020/12/19
初版発行。
2020/12/20
変更前の docker image を削除する を追加しました。