10.7. OpenTelemetry 追踪应用程序开发
虽然 JBoss EAP 会自动和隐式跟踪对 Jakarta RESTful Web Services 应用的 REST 调用,但您可以从应用程序中创建自定义范围以进行精细的追踪。span 是 trace 中的单个操作。例如,您可以在应用程序中创建一个范围,例如定义资源,称为方法,以此类推。您可以通过注入 Tracer 实例来在应用程序中创建自定义 trace。
10.7.1. 为 OpenTelemetry tracing 配置 Maven 项目 复制链接链接已复制到粘贴板!
要创建 OpenTelemetry 追踪应用程序,请创建一个具有所需依赖项和目录结构的 Maven 项目。
先决条件
- 您已安装了 Maven。如需更多信息,请参阅 下载 Apache Maven。
- 您已为最新版本配置了 Maven 存储库。有关安装最新的 Maven 存储库补丁的详情,请参考 Maven 和 JBoss EAP microprofile maven 存储库。
流程
在 CLI 中,使用
mvn命令来设置 Maven 项目。此命令为项目创建目录结构,以及pom.xml配置文件。语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导航到应用程序根目录。
语法
cd <name-of-your-application>
$ cd <name-of-your-application>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
cd simple-tracing-example
$ cd simple-tracing-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新生成的
pom.xml文件。设置以下属性:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置以下依赖项:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将以下构建配置设置为使用
mvn widlfy:deploy来部署应用程序:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在应用程序根目录中,输入以下命令:
mvn install
$ mvn installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您会看到类似如下的输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,您可以创建一个 OpenTelemetry 追踪应用程序。
10.7.2. 创建创建自定义范围的应用程序 复制链接链接已复制到粘贴板!
以下流程演示了如何创建可创建两个自定义 span 的应用程序,如下所示:
-
prepare-hello- 当应用中的方法getHello ()被调用时。 -
process-hello- 当值hello分配给一个新的String对象hello时。
此流程还演示了如何在 Jaeger 控制台中查看这些 span。该流程中的 & lt;application_root > 表示包含 pom.xml 文件的目录,其中包含应用程序的 Maven 配置。
先决条件
- 已安装 Docker。如需更多信息,请参阅 获取 Docker。
- 您已创建了一个 Maven 项目。如需更多信息,请参阅为 OpenTelemetry tracing 配置 Maven 项目。
-
您已配置了
opentelemetry子系统。如需更多信息,请参阅配置opentelemetry子系统。
流程
在 & lt;application_root > 中,创建一个用于存储 Java 文件的目录。
语法
mkdir -p src/main/java/com/example/opentelemetry
$ mkdir -p src/main/java/com/example/opentelemetryCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
mkdir -p src/main/java/com/example/opentelemetry
$ mkdir -p src/main/java/com/example/opentelemetryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前往新目录。
语法
cd src/main/java/com/example/opentelemetry
$ cd src/main/java/com/example/opentelemetryCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
cd src/main/java/com/example/opentelemetry
$ cd src/main/java/com/example/opentelemetryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含以下内容的
JakartaRestApplication.java文件:此JakartaRestApplication类将应用声明为 Jakarta RESTful Web Services 应用。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含以下内容的
ExplicitlyTracedBean.java文件,其内容为 classExplicitlyTracedBean。此类通过注入Tracer类来创建自定义 span。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
TracedResource.java类创建包含以下内容的TracedResource.java 文件。此文件注入ExplicitlyTracedBean类,并声明两个端点:traced和cdi-trace。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导航到应用程序根目录。
语法
cd <path_to_application_root>/<application_root>
$ cd <path_to_application_root>/<application_root>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
cd ~/applications/simple-tracing-example
$ cd ~/applications/simple-tracing-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令编译并部署应用程序:
mvn clean package wildfly:deploy
$ mvn clean package wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 Jaeger 控制台。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在浏览器中,导航到
\localhost:8080/simple-tracing-example/hello/cdi-trace。 -
在一个浏览器中,打开位于
http://localhost:16686/search的 Jaeger 控制台。 - 在 Jaeger 控制台中,选择 JBoss EAP XP 并点 Find Traces。
- 单击 3 Spans。
Jaeger 控制台显示以下 trace:
|GET /hello/cdi-trace - | prepare-hello - | process-hello
|GET /hello/cdi-trace1 - | prepare-hello2 - | process-hello3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
每当您访问 http://localhost:16686/search 的应用程序端点时,都会使用所有子范围创建一个新的 trace。