在使用可观测链路 OpenTelemetry 版控制台追踪应用的链路数据之可观测链路 OpenTelemetry 版通过客户端将应用数据上报至链路追踪。本文介绍如何通过Skywalking客户端上报Java应用数据。
前提条件
- 打开SkyWalking下载页面,下载SkyWalking 6.X.X或以上版本(建议下载最新稳定版本),并将解压后的Agent文件夹放至Java进程有访问权限的目录。
- 插件均放置在
/plugins
目录中。在启动阶段将新的插件放进该目录,即可令插件生效。将插件从该目录删除,即可令其失效。另外,日志文件默认输出到/logs
目录中。
- 登录ARMS控制台,在左侧导航栏选择 。
- 在应用列表页面顶部选择目标地域,然后单击目标应用名称。
说明 语言列显示
图标的应用为接入应用监控的应用,显示-图标的应用为接入可观测链路 OpenTelemetry 版的应用。
- 在弹出的页面中,单击左侧导航栏上方的
图标,返回上一层。
- 在左侧导航栏单击集群配置,然后在右侧页面单击接入点信息页签。
- 在页面顶部选择需要接入的地域,然后在集群信息区域打开显示Token开关。
- 在客户端采集工具区域单击SkyWalking。
在下方表格的相关信息列中,获取接入点信息。
说明 如果应用部署于阿里云生产环境,则选择阿里云VPC网络接入点,否则选择公网接入点。
背景信息
SkyWalking是一款广受欢迎的国产APM(Application Performance Monitoring,应用性能监控)产品,主要针对微服务、Cloud Native和容器化(Docker、Kubernetes、Mesos)架构的应用。SkyWalking的核心是一个分布式追踪系统。
要通过SkyWalking将Java应用数据上报至可观测链路 OpenTelemetry 版控制台,首先需要完成埋点工作。SkyWalking既支持自动探针(Dubbo、gRPC、JDBC、OkHttp、Spring、Tomcat、Struts、Jedis等),也支持手动埋点(OpenTracing)。本文介绍自动埋点方法。

示例Demo
示例代码仓库地址:SkyWalking Demo
用SkyWalking为Java应用自动埋点
- 打开
config/agent.config
,配置接入点和令牌。说明 请将<endpoint>
和<auth-token>
分别替换成控制台 页面上SkyWalking客户端在相应地域的接入点和鉴权令牌。关于获取方法,请参见前提条件。collector.backend_service=<endpoint> agent.authentication=<auth-token>
- 采用以下方法之一配置应用名称(Service Name)。重要 请将
<ServiceName>
替换为您的应用名称。如果同时采用以下两种方法,则仅第二种方法(在启动命令行中添加参数)生效。打开
config/agent.config
,配置应用名称。agent.service_name=<ServiceName>
在应用程序的启动命令行中添加-Dskywalking.agent.service_name参数。
java -javaagent:<skywalking-agent-path> -Dskywalking.agent.service_name=<ServiceName> -jar yourApp.jar
- 根据应用的运行环境,选择相应的方法来指定SkyWalking Agent的路径。说明 请将以下示例代码中的
<skywalking-agent-path>
替换为Agent文件夹中的skywalking-agent.jar的绝对路径。Linux Tomcat 7 / Tomcat 8
在
tomcat/bin/catalina.sh
第一行添加以下内容:CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; export CATALINA_OPTS
Windows Tomcat 7 / Tomcat 8
在
tomcat/bin/catalina.bat
第一行添加以下内容:set "CATALINA_OPTS=-javaagent:<skywalking-agent-path>"
JAR File或Spring Boot
在应用程序的启动命令行中添加-javaagent参数。
重要 -javaagent参数一定要在-jar参数之前。java -javaagent:<skywalking-agent-path> -jar yourApp.jar
Jetty
在
{JETTY_HOME}/start.ini
配置文件中添加以下内容:--exec # 去掉前面的井号取消注释。 -javaagent:<skywalking-agent-path>
- 重新启动应用。
常见问题
问:SkyWalking正常连接服务端后,无法创建应用?

如果未产生数据上报,则可能原因是:开启采样、设置过滤或未触发生成链路追踪的请求。