介绍
简介
Apache SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案,是Apache基金会顶级项目。
相关链接
安装
容器方式部署SkyWalking
官方镜像构建
可以使用docker-compose构建服务。
注意事项
由于 elasticsearch 启动比较慢 oap-server 需要等待 es 启动完毕才能开始初始化,因此整体项目启动会较慢,ui界面上可能会长时间没有数据
oap服务器的时间如果和本地时间有差异的话,可能会导致数据不能及时显示,请确保本机和服务器时间一致且准确。
Agent的使用
Java Agent 官方教程
SkyWalking 通过 java agent 提供了 低侵入性的自动探针设置。
自动探针使用方法:
- 下载 apache-skywalking-apm 的包。
- 解压并找到目录下的 agent 文件夹,能看到 skywalking-agent.jar。
- 在需要自动探针的应用启动时,指定 skywalking-agent.jar 作为 agent。
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar
可以查看 agent/config/agent.config 文件中,查看对于agent的配置信息。 注意配置文件中{}
包含的内容,可以通过环境变量的方式传入,修改配置信息。
如可以通过 -DSW_AGENT_COLLECTOR_BACKEND_SERVICES
指定oap服务地址, -DSW_AGENT_NAME
指定应用名
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=docker.koal.com:11800 -DSW_AGENT_NAME=spring-boot-admin -jar yourApp.jar
在 docker 中使用 agent
- 可以使用官方 docker 镜像作为基础镜像,这样便包含了 java8 以及 agent包,在启动服务的命令中加上相关 agent 指定信息即可。
- 可以使用 volume 共享的方式,共享同一个agent。
- k8s也可以使用 sidecar 的方式共享卷。
手动探针
SkyWalking 不仅提供了丰富的自动探针,还提供了手动探针的方式。 官方手动探针指南
- build.gradle 中引入
implementation 'org.apache.skywalking:apm-toolkit-trace:${skywalking.version}'
- 在想要手动加入探针的方法上使用 @Trace 来追踪该方法。
@Trace
public void foo() {
ActiveSpan.tag("my_tag", "my_value");
ActiveSpan.error();
ActiveSpan.error("Test-Error-Reason");
ActiveSpan.error(new RuntimeException("Test-Error-Throwable"));
ActiveSpan.info("Test-Info-Msg");
ActiveSpan.debug("Test-debug-Msg");
}