LoginSignup
5
4

More than 5 years have passed since last update.

ことりんと一緒 Springもね - 5. Actuator

Posted at

概要 / 説明

ことりんと一緒 Springもね - 4. REST API デザインまでで Spring Boot を触ってきました。アプリケーションを動かす観点では、非常にシンプルですが動くようにする手順をみました。一方で、アプリケーションをモニタリングする観点では何も対応をおこなっていません。
Spring Boot では、簡単にモニタリングツールを実装する機能として、Actuator というものがあるので使ってみる事にします。

ところで、ここで使っている Spring Boot のバージョンは 2.x系でした。
1.x系と2.x系ではいろいろな改善があり異なっている点があります。今回、使ってみようとしている Actuator も1.x系と2.x系で異なる点があるので、違いについても見たいと思います。

前提 / 環境

ランタイムバージョン

  • Kotlin : 1.3.0
  • SpringBoot : 2.1.0.RELEASE

Spring Dependencies

  • Web
  • Actuator

開発環境

  • OS : Mac
  • IDE : IntelliJ IDEA
  • Build : Gradle

手順 / 解説

Spring Actuator の利用

Spring Actuator を使えるようにするには、build.gradle に次の依存を定義します。

implementation('org.springframework.boot:spring-boot-starter-actuator')

これだけで使えるようになります。
あとは、次のドキュメント 「Endpoints 」に記載のあるエンドポイントにアクセスする事で様々な情報をHTTP経由で取得することが出来るようになります。

例:HEALTH

$ curl 'http://localhost:8080/actuator/health' -i -X GET

HTTP/1.1 200
Content-Type: application/vnd.spring-boot.actuator.v2+json;charset=UTF-8
Transfer-Encoding: chunked
Date: Sun, 11 Nov 2018 13:08:00 GMT

{"status":"UP"}

Spring 1.x と 2.x の差異

異なる点はいろいろありますが、1.x から 2.x にマイグレーションした時に遭遇しがちな代表的な点をいくつか見てみます。

アクセスベースパス

1.xでは、エンドポイントに直接アクセスして情報を表示していました。: http://localhost:8080/health
2.xでは、エンドポイントの前にベースパスを指定してアクセスを行います。: http://localhost:8080/<ベースパス>/health

デフォルトでは、ベースパスは /actuator です。

変更するには、設定ファイル(application.yml)に定義を行います。
以下のように定義することでベースパースを変更できます。以下の例では、ベースパスが /admin になっています。

management:
  endpoints:
    web:
      base-path: /admin

公開エンドポイント

1.xでは、エンドポイントは予め公開されていました。
2.xでは、公開されているエンドポイントは、/health/info のみになりました。->参考

2.xでも、予め全て公開しておくには次のように設定ファイル(application.yml)に定義を行います。

management:
  endpoints:
    web:
      exposure:
        include: "*"

例では、公開対象をアスタリクス(*)で指定していますが、個別に指定する場合は、対象のエンドポイントを記述する事で公開できます。

        include: beans, env

まとめ / 振り返り

Actuator は依存を追加しておくだけで使用できる便利なツールです。
そのため、多くの場面で使う機会があると思うのですが、1.x系と2.x系でのアクセスの仕方や対象が変わっているので、2.x系へのマイグレーションを行う際には 404 にならないように気をつけたいです。

今回のソース

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4