介绍

简介

Apache SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案,是Apache基金会顶级项目。

相关链接

官网
github

安装

容器方式部署SkyWalking

官方镜像构建
可以使用docker-compose构建服务。

注意事项

由于 elasticsearch 启动比较慢 oap-server 需要等待 es 启动完毕才能开始初始化,因此整体项目启动会较慢,ui界面上可能会长时间没有数据
oap服务器的时间如果和本地时间有差异的话,可能会导致数据不能及时显示,请确保本机和服务器时间一致且准确。

Agent的使用

Java Agent 官方教程
SkyWalking 通过 java agent 提供了 低侵入性的自动探针设置。

自动探针使用方法:

  1. 下载 apache-skywalking-apm 的包。
  2. 解压并找到目录下的 agent 文件夹,能看到 skywalking-agent.jar。
  3. 在需要自动探针的应用启动时,指定 skywalking-agent.jar 作为 agent。
  1. 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 指定应用名

  1. 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

  1. 可以使用官方 docker 镜像作为基础镜像,这样便包含了 java8 以及 agent包,在启动服务的命令中加上相关 agent 指定信息即可。
  2. 可以使用 volume 共享的方式,共享同一个agent。
  3. k8s也可以使用 sidecar 的方式共享卷。

手动探针

SkyWalking 不仅提供了丰富的自动探针,还提供了手动探针的方式。 官方手动探针指南

  1. build.gradle 中引入
  1. implementation 'org.apache.skywalking:apm-toolkit-trace:${skywalking.version}'
  1. 在想要手动加入探针的方法上使用 @Trace 来追踪该方法。
  1. @Trace
  2. public void foo() {
  3. ActiveSpan.tag("my_tag", "my_value");
  4. ActiveSpan.error();
  5. ActiveSpan.error("Test-Error-Reason");
  6. ActiveSpan.error(new RuntimeException("Test-Error-Throwable"));
  7. ActiveSpan.info("Test-Info-Msg");
  8. ActiveSpan.debug("Test-debug-Msg");
  9. }