Spring Boot 与 Docker
观察 GraphQL 的实际运行

本指南将引导您使用 Tanzu Observability by Wavefront 完成您的第一个 Spring Boot 项目。

你将构建什么

您将创建一个简单的 Web 应用程序,并将其配置为将指标发送到免费集群。

所需条件

如何完成本指南

与大多数 Spring 入门指南一样,您可以从头开始并完成每个步骤,也可以跳过您已经熟悉的基本设置步骤。无论哪种方式,您最终都能得到可运行的代码。

从头开始,请继续阅读使用 Spring Initializr 开始

跳过基础部分,请执行以下操作:

完成后,您可以将您的结果与 gs-tanzu-observability/complete 中的代码进行对比。

从 Spring Initializr 开始

您可以使用这个预初始化项目并点击生成以下载一个ZIP文件。该项目已配置好以适配本教程中的示例。

如果您想手动初始化项目,请按照以下步骤操作:

  1. 访问 https://start.spring.io。该服务会为您拉取应用程序所需的所有依赖项,并为您完成大部分设置工作。

  2. 选择您喜欢的构建系统和语言。本指南假设您选择了 Java 和 Maven。

  3. 点击 添加依赖项,然后选择 Spring WebWavefront

  4. 点击 生成。您将下载一个 ZIP 文件,这是一个包含 Tanzu Observability 的 Web 应用程序的压缩包。

如果您的 IDE 集成了 Spring Initializr,您可以直接在 IDE 中完成上述步骤。

开箱即用的可观测性

按照以下步骤启动项目,并自动将多个自动配置的指标发送到 Wavefront 的 Tanzu Observability。

  1. Wavefront for Spring Boot 3 启动器 添加到 Maven 依赖中。打开 pom.xml 文件,并将以下内容添加到 <dependencies> 块中:
   <dependency>
     <groupId>com.wavefront</groupId>
     <artifactId>wavefront-spring-boot-starter</artifactId>
     <version>3.0.1</version>
   </dependency>
  1. 在启动服务之前,请配置项目以便能够识别由应用程序和服务发送的指标。打开 application.properties 文件并添加以下内容:
   management.wavefront.application.name=demo
   management.wavefront.application.service-name=getting-started

上述属性配置了集成,用于通过 Wavefront 的 Tanzu Observability 发送指标,使用 demo 应用程序和 getting-started 服务。一个应用程序可以包含任意数量的微服务。

  1. 通过调用 DemoApplicationmain 方法从您的 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集群上的仪表盘,应用程序启动时记录了一个一次性使用的链接。该链接以https://wavefront.surf开头。将此链接复制到您常用的浏览器中,并探索开箱即用的Spring Boot仪表盘:

Wavefront 仪表板

数据需要一些时间才能显示出来。当您在 Tanzu Observability by Wavefront 中看到数据时,请确保过滤器中的ApplicationService名称与您在 application.properties 文件中配置的内容一致。

过滤器中的应用程序和服务名称与您在 application.properties 文件中配置的内容一致。

创建一个简单的控制器

接下来,您可以创建一个简单的控制器来查看 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 部分

  3. 可选地,访问 http://localhost:8080/does-not-exist 以触发客户端 404 错误。

总结

恭喜!您刚刚开发了一个将指标发送到Wavefront的Tanzu Observability的Web应用程序。

另请参阅

以下内容可能也会有所帮助:

本页目录