官网: https://skywalking.apache.org/
简书:https://www.jianshu.com/p/2fd56627a3cf
文档:https://skywalking.apache.org/docs/
SkyWalking ,它是一款优秀的国产 APM(Application Performance Management) 工具
SkyWalking 8.x
tar 包下载: https://skywalking.apache.org/downloads/ SkyWalking APM Distribution 选择版本 v8.5.0 for H2/MySQL/TiDB/InfluxDB/ElasticSearch 7
启动服务:OAPServerStartUp 配置文件 config/application.yml 默认存储 h2,修改存储为 elasticsearch7,以及 ES7 服务地址。skywalking-webapp 配置文件 webapp/webapp.yml 默认端口 localhost:8080
selector: ${SW_STORAGE:elasticsearch7}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
复制代码
安装 bin 目录下
访问 UI localhost:8080
启动采集端 java -jar 方式通过修改启动脚本启动,示例
java agent技术原理及简单实现
nohup java -javaagent:/data/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -
Dskywalking.agent.service_name=${SERVER_NAME} -Dskywalking.collector.backend_service=127.0.0.1:11800 -
jar -Xms1024m -Xmx1024m -Djava.security.egd=file:/dev/./urandom $JAR_FILE --spring.application.
name=${SERVER_NAME} --spring.profiles.active=${ACTIVE} --server.port=${PORT}> /data/logs/${SERVER_NAME}
/console.log 2>&1&
复制代码
idea 中启动,修改 VM options,示例如下
-DSW_AGENT_NAME=skywalking-consumer ##
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 ##
-javaagent:~\skywalking\apache-skywalking-apm-bin-es7\agent\skywalking-agent.
jar ##agent
复制代码
日志中打印 traceId 增加[%traceId]
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.5.0</version>
</dependency>
复制代码
修改 logback.xml 中的 Appender 的 Pattern
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level logger_name:%logger{36} - [%tid] - message:%msg%n</pattern>
</layout>
</encoder>
复制代码
输出日志
项目中加入 feign 的调用后查看,调用的关系,每个环节的耗时
kibana 查看 ES,有很多数据记录在 ES 中
至此即完成链路追踪,性能检测,日志查询。
号外:docker 安装
docker pull apache/skywalking-oap-server:8.5.0-es7
复制代码
docker run --name skywalking --net esnet -d -e SW_STORAGE=elasticsearch7 \
-e SW_STORAGE_ES_CLUSTER_NODES=localhost:9200 apache/skywalking-oap-server:8.5.0-es7
复制代码
总结:
skywalking 通过 agent 的方式可以低侵入的方式实现链路追踪,链路追踪是微服务治理的重要一环,进行日志查询,系统监控,性能分析的重要工具。
评论