Wavefront でメトリクス監視

このガイドでは、Wavefront による Tanzu Observability を使用した最初の Spring Boot プロジェクトについて説明します。

構築するもの

単純な Web アプリケーションを作成し、フリーミアムクラスターにメトリクスを送信するように構成します。

必要なもの

本ガイドの完成までの流れ

ほとんどの Spring 入門ガイドと同様に、最初から始めて各ステップを完了するか、すでに慣れている場合は基本的なセットアップステップをバイパスできます。いずれにしても、最終的に動作するコードになります。

最初から始めるには、Spring Initializr から開始に進みます。

基本スキップするには、次の手順を実行します。

完了したときは、gs-tanzu-observability/complete のコードに対して結果を確認できます。

Spring Initializr から開始

この事前に初期化されたプロジェクトを使用し、生成をクリックして ZIP ファイルをダウンロードできます。このプロジェクトは、このチュートリアルの例に合うように構成されています。

プロジェクトを手動で初期化する場合は、以下の手順に従ってください。

  1. IDE のメニューまたはブラウザーから Spring Initializr を開きます。アプリケーションに必要なすべての依存関係を取り込み、ほとんどのセットアップを行います。

  2. 好みのビルドシステムと言語を選択します。このガイドでは、Java と Maven が選択されていることを前提としています。

  3. 依存関係を追加するをクリックし、Spring WebWavefront の順に選択します。

  4. 生成をクリックします。TanzuObservability を含む Web アプリケーションのアーカイブである ZIP ファイルをダウンロードします。

IDE に Spring Initializr が統合されている場合は、IDE から上記の手順を実行できます。

すぐに使用できる可観測性

次の手順に従ってプロジェクトを開始し、自動構成されたいくつかのメトリクスを Wavefront によって Tanzu Observability に自動的に送信します。

  1. Spring Boot 3 スターター用 Wavefront [GitHub] (英語) を Maven 依存関係に追加します。pom.xml を開き、以下を <dependencies> ブロックに追加します。

    <dependency>
      <groupId>com.wavefront</groupId>
      <artifactId>wavefront-spring-boot-starter</artifactId>
      <version>3.0.1</version>
    </dependency>
  2. サービスを開始する前に、アプリケーションとサービスによって送信されたメトリクスを識別できるようにプロジェクトを構成します。application.properties ファイルを開き、以下を追加します。

    management.wavefront.application.name=demo
    management.wavefront.application.service-name=getting-started
    上記のプロパティは、demo アプリケーションと getting-started サービスを使用して、Wavefront によってメトリクスを Tanzu Observability に送信するように統合を構成します。アプリケーションは、任意の数のマイクロサービスで構成できます。
  3. DemoApplication の main メソッドを呼び出して、IDE からアプリケーションを実行します。次のように表示されます。

    INFO 58371 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
    INFO 58371 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
    INFO 58371 --- [           main] hello.DemoApplication                    : Started DemoApplication in 1.705 seconds (process running for 2.038)
    
    A Wavefront account has been provisioned successfully and the API token has been saved to disk.
    
    To share this account, make sure the following is added to your configuration:
    
        management.wavefront.api-token=ee1f454b-abcd-efgh-1234-bb449f6a25ed
        management.wavefront.uri=https://wavefront.surf
    
    Connect to your Wavefront dashboard using this one-time use link:
    https://wavefront.surf/us/AtoKen

どうした?

  • 追加情報がなくても、Freemium クラスターのアカウントが自動的にプロビジョニングされました。

  • API トークンが作成されました。

  • Freemium クラスターのダッシュボードにアクセスできるようにするために、アプリケーションの起動時に 1 回限りの使用リンクがログに記録されました。リンクは https://wavefront.surf (英語) で始まります。このリンクをお気に入りのブラウザーにコピーして、すぐに使用できる Spring Boot ダッシュボードを調べましょう。

Wavefront Dashboard

データが表示されるまでに 1 分ほどかかります。Wavefront による Tanzu Observability のデータを確認できる場合は、フィルター内のアプリケーションおよびサービス名が application.properties ファイルで構成したものと一致していることを確認してください。

**Application** and **Service** names in the filters match what you configured in the `application.properties` file.

シンプルなコントローラーを作成する

次に、単純なコントローラーを作成して、HTTP トラフィックがどのように自動的に計測されるかを確認できます。次のリストは、その方法を示しています。

package hello;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DemoController {

  @GetMapping("/")
  public String home() {
    return "Hello World";
  }

}
  1. アプリケーションを再起動し、ブラウザーから http://localhost:8080 を複数回トリガーします。

  2. ダッシュボードに追加の HTTP セクションがあります。この機能は条件付きダッシュボードと呼ばれ、フィルターに従ってセクションを表示できます。

    Wavefront HTTP section
  3. オプションで、http://localhost:8080/does-not-exist にアクセスして、クライアント側の 404 エラーをトリガーします。

要約

おめでとう! Wavefront によって Tanzu Observability にメトリクスを送信する Web アプリケーションを開発しました。

関連事項

以下も役立つ場合があります。

新しいガイドを作成したり、既存のガイドに貢献したいですか? 投稿ガイドラインを参照してください [GitHub] (英語)

すべてのガイドは、コード用の ASLv2 ライセンス、およびドキュメント用の帰属、NoDerivatives クリエイティブコモンズライセンス (英語) でリリースされています。

コードを入手する