SkyWalking 分布式系统追踪

举报
琴岛蛏子 发表于 2022/03/20 23:59:19 2022/03/20
【摘要】 SkyWalking 分布式系统追踪官网: https://skywalking.apache.org/简书:https://www.jianshu.com/p/2fd56627a3cf文档:https://skywalking.apache.org/docs/SkyWalking ,它是一款优秀的国产 APM(Application Performance Management) 工具S...

SkyWalking 分布式系统追踪

官网: https://skywalking.apache.org/

简书:https://www.jianshu.com/p/2fd56627a3cf

文档:https://skywalking.apache.org/docs/

SkyWalking ,它是一款优秀的国产 APM(Application Performance Management) 工具

SkyWalking 8.x

frame-v8.jpg

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

image.png

启动采集端
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>

输出日志

image1.png

项目中加入feign的调用后查看,调用的关系,每个环节的耗时
image2.png

image3.png

kibana查看ES,有很多数据记录在ES中
image4.png

至此即完成链路追踪,性能检测,日志查询。

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。