背景信息
SkyWalking是一款广受欢迎的国产APM(Application Performance Monitoring,应用性能监控)产品,主要针对微服务、Cloud Native和容器化(Docker、Kubernetes、Mesos)架构的应用。SkyWalking的核心是一个分布式追踪系统。
要通过SkyWalking将Java应用数据上报至链路追踪控制台,首先需要完成埋点工作。SkyWalking既支持自动探针(Dubbo、gRPC、JDBC、OkHttp、Spring、Tomcat、Struts、Jedis等),也支持手动埋点(OpenTracing)。本文介绍自动埋点方法。
通过SkyWalking上报数据的原理
安装 skywalking oap ui 服务
docker-compose.yml
version: ‘3’
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.2
container_name: elasticsearch
ports:
- 9200:9200
- 9300:9300
environment:
- “cluster.name=elasticsearch”
- “bootstrap.memory_lock=true”
- “ES_JAVA_OPTS=-Xms256m -Xmx512m”
- “discovery.type=single-node”
kibana:
image: docker.elastic.co/kibana/kibana:7.14.2
container_name: kibana
depends_on:
- elasticsearch
ports:
- 5601:5601
environment:
- “elasticsearch.hosts=http://192.168.0.74:9200”
skywalking-oap:
image: apache/skywalking-oap-server:9.1.0
container_name: skywalking-oap
depends_on:
- elasticsearch
ports:
- “11800:11800”
- “12800:12800”
healthcheck:
test: [ “CMD-SHELL”, “/skywalking/bin/swctl ch” ]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
environment:
TZ: Asia/Shanghai
SW_STORAGE: elasticsearch
SW_STORAGE_ES_CLUSTER_NODES: 192.168.0.74:9200
SW_HEALTH_CHECKER: default
SW_TELEMETRY: prometheus
skywalking-ui:
image: apache/skywalking-ui:9.1.0
container_name: skywalking-ui
depends_on:
- skywalking-oap
links:
- skywalking-oap
ports:
- “8980:8080”
environment:
TZ: Asia/Shanghai
SW_OAP_ADDRESS: http://192.168.0.74:12800
docker-compose up -d
示例Demo
示例代码仓库地址:SkyWalking Demo
https://www.apache.org/dyn/closer.cgi/skywalking/java-agent/8.14.0/apache-skywalking-java-agent-8.14.0.tgz
用SkyWalking为Java应用自动埋点
打开config/agent.config,配置接入点和令牌。
说明 请将和分别替换成控制台集群配置 > 接入点信息页面上SkyWalking客户端在相应地域的接入点和鉴权令牌。关于获取方法,请参见前提条件。
collector.backend_service=
采用以下方法之一配置应用名称(Service Name)。
重要 请将替换为您的应用名称。如果同时采用以下两种方法,则仅第二种方法(在启动命令行中添加参数)生效。
打开config/agent.config,配置应用名称。
agent.service_name=
在应用程序的启动命令行中添加-Dskywalking.agent.service_name参数。
java -javaagent: -Dskywalking.agent.service_name= -jar yourApp.jar
根据应用的运行环境,选择相应的方法来指定SkyWalking Agent的路径。