本指南将引导您使用 Tanzu Observability by Wavefront 完成您的第一个 Spring Boot 项目。
你将构建什么
您将创建一个简单的 Web 应用程序,并将其配置为将指标发送到免费集群。
所需条件
-
大约15分钟
-
喜欢的文本编辑器或IDE
-
Java 17 或更高版本
-
您也可以直接将代码导入到您的 IDE 中:
如何完成本指南
与大多数 Spring 入门指南一样,您可以从头开始并完成每个步骤,也可以跳过您已经熟悉的基本设置步骤。无论哪种方式,您最终都能得到可运行的代码。
要从头开始,请继续阅读使用 Spring Initializr 开始。
要跳过基础部分,请执行以下操作:
-
下载并解压本指南的源代码仓库,或使用 Git 克隆:
git clone https://github.com/spring-guides/gs-tanzu-observability.git
-
进入
gs-tanzu-observability/initial
目录 -
直接跳转到 开箱即用的可观测性。
完成后,您可以将您的结果与 gs-tanzu-observability/complete
中的代码进行对比。
从 Spring Initializr 开始
您可以使用这个预初始化项目并点击生成以下载一个ZIP文件。该项目已配置好以适配本教程中的示例。
如果您想手动初始化项目,请按照以下步骤操作:
-
访问 https://start.spring.io。该服务会为您拉取应用程序所需的所有依赖项,并为您完成大部分设置工作。
-
选择您喜欢的构建系统和语言。本指南假设您选择了 Java 和 Maven。
-
点击 添加依赖项,然后选择 Spring Web 和 Wavefront。
-
点击 生成。您将下载一个 ZIP 文件,这是一个包含 Tanzu Observability 的 Web 应用程序的压缩包。
如果您的 IDE 集成了 Spring Initializr,您可以直接在 IDE 中完成上述步骤。
开箱即用的可观测性
按照以下步骤启动项目,并自动将多个自动配置的指标发送到 Wavefront 的 Tanzu Observability。
- 将 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>
- 在启动服务之前,请配置项目以便能够识别由应用程序和服务发送的指标。打开
application.properties
文件并添加以下内容:
management.wavefront.application.name=demo
management.wavefront.application.service-name=getting-started
上述属性配置了集成,用于通过 Wavefront 的 Tanzu Observability 发送指标,使用
demo
应用程序和getting-started
服务。一个应用程序可以包含任意数量的微服务。
- 通过调用
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集群上的仪表盘,应用程序启动时记录了一个一次性使用的链接。该链接以
https://wavefront.surf
开头。将此链接复制到您常用的浏览器中,并探索开箱即用的Spring Boot仪表盘:
数据需要一些时间才能显示出来。当您在 Tanzu Observability by Wavefront 中看到数据时,请确保过滤器中的Application和Service名称与您在
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";
}
}
-
重启应用程序,并从浏览器多次触发
http://localhost:8080
。 -
您会注意到仪表板上多了一个 HTTP 部分。此功能称为条件仪表板,允许您根据过滤器显示部分内容。
-
可选地,访问
http://localhost:8080/does-not-exist
以触发客户端 404 错误。
总结
恭喜!您刚刚开发了一个将指标发送到Wavefront的Tanzu Observability的Web应用程序。
另请参阅
以下内容可能也会有所帮助:
- Spring Boot 3 的 Wavefront README,其中包含了启用分布式追踪的说明
- Tanzu Observability by Wavefront for Spring Boot 文档