写点什么

SkyWalking 分布式系统追踪

作者:Rubble
  • 2022 年 4 月 06 日
  • 本文字数:1218 字

    阅读完需:约 4 分钟

官网: 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 目录下


./startup.sh
复制代码


访问 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 的方式可以低侵入的方式实现链路追踪,链路追踪是微服务治理的重要一环,进行日志查询,系统监控,性能分析的重要工具。

用户头像

Rubble

关注

还未添加个人签名 2021.06.01 加入

还未添加个人简介

评论

发布
暂无评论
SkyWalking 分布式系统追踪_4月日更_Rubble_InfoQ写作平台