SkyWalking 安装和配置

OpenAPM 相关

官网资料

支持收集的组件列表

基于 IntelliJ IDEA 直接运行、Debug

cd skywalking/

git submodule init

git submodule update

mvn clean package -DskipTests

因为需要设置 gRPC 的自动生成的代码目录,为源码目录,所以:
手工将下面提到的目录下的 grpc-java 和 java 目录设置为 IntelliJ IDEA 的源码目录(Sources Root)
/skywalking/apm-protocol/apm-network/target/generated-sources/protobuf
/skywalking/oap-server/server-core/target/generated-sources/protobuf
/skywalking/oap-server/server-receiver-plugin/receiver-proto/target/generated-sources/protobuf
/skywalking/oap-server/exporter/target/generated-sources/protobuf


手工将下面提到的目录下的 antlr4 目录设置为 IntelliJ IDEA 的源码目录(Sources Root)
/skywalking/oap-server/generate-tool-grammar/target/generated-sources

手工将下面提到的目录下的 oal 目录设置为 IntelliJ IDEA 的源码目录(Sources Root)
/skywalking/oap-server/generated-analysis/target/generated-sources

启动 Server 项目

  • 现在可以通过 IntelliJ IDEA 启动服务:
  • 编辑 server 配置:/skywalking/oap-server/server-starter/src/main/resources/application.yml
    • 里面有关 Elasticsearch 连接信息的配置,你可以根据自己的情况进行配置。
  • 启动类:/skywalking/oap-server/server-starter/src/main/java/org/apache/skywalking/oap/server/starter/OAPServerStartUp.java
    • 第一次启动会创建 540 个左右的 Elasticsearch 索引库,会花点时间。

启动 UI 项目

  • 现在启动 UI 项目,找到:/skywalking/apm-webapp/src/main/java/org/apache/skywalking/apm/webapp/ApplicationStartUp.java
  • 访问 UI 地址:http://127.0.0.1:8080
    • 用户名:admin
    • 密码:admin

Java Agent(探针)

IntelliJ IDEA 项目调试

  • 前面构建服务的时候记得构建出 jar 包出来,这里要用到
  • 自己的 Spring Boot 项目
  • 引包:
<!--SkyWalking start-->
<!-- https://mvnrepository.com/artifact/org.apache.skywalking/apm-toolkit-trace -->
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>6.1.0</version>
</dependency>
<!--SkyWalking end-->
  • 常用注解:
@Trace
@ApiOperation(tags = {"用户系统管理->用户管理->用户列表"}, value = "查询所有用户列表", notes = "查询所有用户列表")
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ResponseBody
public List<SysUser> list() {
    List<SysUser> sysUserList = sysUserService.findAll();
    ActiveSpan.tag("一共有数据:", sysUserList.size() + "条");
    log.info("当前 traceId={}", TraceContext.traceId());
    return sysUserList;
}
-javaagent:/你自己的路径/skywalking-agent.jar -Dskywalking.agent.application_code=my_app_001 -Dskywalking.collector.backend_service=localhost:11800
  • 默认 11800 是 gRPC 的接收接口
  • 你自己构建出来的 jar 路径一般是:/skywalking/apm-sniffer/apm-agent/target/skywalking-agent.jar
  • 然后请求你带有 Trace 的 Controller,然后去 UI 界面看统计情况

jar 包方式

  • 你的 Spring Boot jar 包 run 之前加上 VM 参数:
java -javaagent:/你自己的路径/skywalking-agent.jar -Dskywalking.collector.backend_service=localhost:11800 -Dskywalking.agent.application_code=my_app_002 -jar my-project-1.0-SNAPSHOT.jar

Docker 方式

  • Dockerfile
FROM openjdk:8-jre-alpine

LABEL maintainer="[email protected]"

ENV SW_AGENT_NAMESPACE=java-agent-demo \
    SW_AGENT_COLLECTOR_BACKEND_SERVICES=localhost:11800

COPY skywalking-agent /apache-skywalking-apm-bin/agent

COPY target/sky-demo-1.0-SNAPSHOT.jar /demo.jar

ENTRYPOINT java -javaagent:/apache-skywalking-apm-bin/agent/skywalking-agent.jar -jar /demo.jar
  • 构建镜像:
docker build -t hello-demo .
docker run -p 10101:10101 -e SW_AGENT_NAMESPACE=hello-world-demo-005 -e SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.10.0.2:11800 hello-demo

构建 jar 部署在服务器

cd skywalking/

git submodule init

git submodule update

mvn clean package -DskipTests

告警配置

资料

results matching ""

    No results matching ""