使用Skywalking分布式链路追踪系统
使用Skywalking分布式链路追踪系统
https://www.cnblogs.com/sunyuliang/p/11424848.html
当我们用很多服务时,各个服务间的调用关系是怎么样的?各个服务单调用的顺序\时间性能怎么样?服务出错了,到底是哪个服务引起的?这些问题我们用什么方案解决呢,以前的方式是各个系统自己单独做日志,出了问题从暴出问题的服务开始一个一个服务的排查,耗时耗力,有些日志不全的,还不一定查得出来。好在现在有Skywalking链路追踪系统,可以不用写任何代码,就追踪到各个服务间的调用关系和性能状态等。
本文将从0开始搭建两个webapi项目,使用Skywalking来追踪他们之间的调用关系及响应时间。开发环境为VisualStudio2019
1:安装Skywalking,可参考:https://www.cnblogs.com/sunyuliang/p/11422576.html,本列中搭建好后的Skywalking服务器地址为:192.168.150.134


{
"SkyWalking": {
"ServiceName": "Demo01",
"Namespace": "",
"HeaderVersions": [
"sw6"
],
"Sampling": {
"SamplePer3Secs": -1,
"Percentage": -1.0
},
"Logging": {
"Level": "Debug",
"FilePath": "logs/skyapm-{Date}.log"
},
"Transport": {
"Interval": 3000,
"ProtocolVersion": "v6",
"QueueSize": 30000,
"BatchSize": 3000,
"gRPC": {
"Servers": "192.168.150.134:11800",
"Timeout": 10000,
"ConnectTimeout": 10000,
"ReportTimeout": 600000
}
}
}
}

2.3: 将skyapm.json文件的属性”复制到输出目录“ 修改为 ”如果较新则复制”
2.4:展开项目的Properties,打开launchSettings.json文件,在其中的环境变量中加入 "SKYWALKING__SERVICENAME": "asp-net-core-frontend"

2.5:到目前skywalking就已经成功引入到系统中了。接下来我们来验证一下是否正常,直接Ctrl+F5启动项目,访问https://localhost:44313/api/values

2.6:访问Skywalking管理后台(记得替换一下IP)http://192.168.150.134:8080/trace 。手动选一下时间范围,结束时间选明天(选当时时间会搜索不到数据,不知道是时区还是skywalking的bug),点击搜索。可以看到本次访问的追踪信息已经同步到了Skywalking中。

以上单个系统的追踪就完成了,接下来我们再创建一个项目,步骤和第2步基本一样,看看多系统的追踪,这个才是Skywalking的价值所在。


{
"SkyWalking": {
"ServiceName": "Demo02",
"Namespace": "",
"HeaderVersions": [
"sw6"
],
"Sampling": {
"SamplePer3Secs": -1,
"Percentage": -1.0
},
"Logging": {
"Level": "Debug",
"FilePath": "logs/skyapm-{Date}.log"
},
"Transport": {
"Interval": 3000,
"ProtocolVersion": "v6",
"QueueSize": 30000,
"BatchSize": 3000,
"gRPC": {
"Servers": "192.168.150.134:11800",
"Timeout": 10000,
"ConnectTimeout": 10000,
"ReportTimeout": 600000
}
}
}
}

3.3: 将skyapm.json文件的属性”复制到输出目录“ 修改为 ”如果较新则复制”
3.4:展开项目的Properties,打开launchSettings.json文件,在其中的环境变量中加入 "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"

3.5:在ValuesController.cs中添加引用: System.Net.Http ,通过HttpClient依次调用Demo01的两个方法,里面的https://localhost:44313对应为我们的Demo01项目。具体Get方法代码如下:

// GET api/values
[HttpGet]
public async Task<string> Get()
{
var client = new HttpClient();
await client.GetStringAsync("https://localhost:44313/api/values/1");
return await client.GetStringAsync("https://localhost:44313/api/values");
}


3.6:Ctrl+F5启动项目,访问http://localhost:21143/api/values

3.7:访问Skywalking管理后台(记得替换一下IP)http://192.168.150.134:8080/trace 。手动选一下时间范围,结束时间选明天(选当时时间会搜索不到数据,不知道是时区还是skywalking的bug),点击搜索。可以看到本次访问两系统单的调用关系图已经同步到了Skywalking中

以上多个系统间的追踪也就都完成了,完全不用写代码,配置一下就好了。
使用Skywalking分布式链路追踪系统的更多相关文章
- NET Core微服务之路:SkyWalking+SkyApm-dotnet分布式链路追踪系统的分享
对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk或splunk进行定位及分析问题,更有甚者直接远程服务器,直接操作查看日志,那么,随着业务越来越复杂,企业应用也进入了分布式服务化的 ...
- SkyWalking+SkyApm-dotnet分布式链路追踪系统
SkyWalking+SkyApm-dotnet分布式链路追踪系统 对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk或splunk进行定位及分析问题,更有甚者直接远程服务器,直接操 ...
- 基于zipkin分布式链路追踪系统预研第一篇
本文为博主原创文章,未经博主允许不得转载. 分布式服务追踪系统起源于Google的论文“Dapper, a Large-Scale Distributed Systems Tracing Infras ...
- zipkin分布式链路追踪系统
基于zipkin分布式链路追踪系统预研第一篇 分布式服务追踪系统起源于Google的论文“Dapper, a Large-Scale Distributed Systems Tracing Inf ...
- 分布式链路追踪系统Sleuth和ZipKin
1.微服务下的链路追踪讲解和重要性 简介:讲解什么是分布式链路追踪系统,及使用好处 进行日志埋点,各微服务追踪. 2.SpringCloud的链路追踪组件Sleuth 1.官方文档 http://cl ...
- 在spring boot中三分钟上手apache顶级分布式链路追踪系统skywalking
原文:https://juejin.im/post/5cd10e81e51d453b560f2d53 skywalking在apache里全票通过成为了apache顶级链路追踪系统 项目地址:gith ...
- 微服务架构学习与思考(09):分布式链路追踪系统-dapper论文学习
一.技术产生的背景 1.1 背景 先来了解一下分布式链路追踪技术产生的背景. 在现在这个发达的互联网世界,互联网的规模越来越大,比如 google 的搜索,Netflix 的视频流直播,淘宝的购物等. ...
- Laravel + go-micro + grpc 实践基于 Zipkin 的分布式链路追踪系统 摘自https://mp.weixin.qq.com/s/JkLMNabnYbod-b4syMB3Hw?
分布式调用链跟踪系统,属于监控系统的一类.系统架构逐步演进时,后期形态往往是一个平台由很多不同的服务.组件构成,用户请求过来后,可能会经过其中多个服务,如图 不过,出问题时往往很难排查,如整个请求变慢 ...
- 【Springboot】实例讲解Springboot整合OpenTracing分布式链路追踪系统(Jaeger和Zipkin)
1 分布式追踪系统 随着大量公司把单体应用重构为微服务,对于运维人员的责任就更加重大了.架构更复杂.应用更多,要从中快速诊断出问题.找到性能瓶颈,并不是一件容易的事.因此,也随着诞生了一系列面向Dev ...
随机推荐
- tomcat学习之路
一:介绍目录文件夹 bin文件夹:放置可执行文件 startup.bat:脚本文件,windows环境,起服务 shutdown.bat:脚本文件,windows环境,关闭 startup.sh:脚本 ...
- spark调优——算子调优
算子调优一:mapPartitions 普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作.如果是普通的map算子,假设一个partition ...
- Common Substrings POJ - 3415 (后缀自动机)
Common Substrings \[ Time Limit: 5000 ms\quad Memory Limit: 65536 kB \] 题意 给出两个字符串,要求两个字符串公共子串长度不小于 ...
- linux学习12 bash的常见特性及文本查看命令实战
一.回顾 1.FHS,命令及bash命令历史 a.FHS: /bin,/sbin,/lib,/lib64,/etc /home,/root /boot /media,/mnt /proc,/sys / ...
- python3 安装 pillow报错
前言 最近要使用pillow库, 来训练验证码模型, 但是死活都安装不上 环境 docker中安装, python3 尝试安装 pip install pillow easy_install Pill ...
- 统计学基础知识(一)---描述统计学(Descriptive Statistics)
描述统计学(Descriptive Statistics):将数据的信息以表格, 图形或数值的形式进行汇总. 数据类型:分为定量数据(数值型数据)和定性数据(类别型数据).数值型数据又可以分为连续型和 ...
- 数据结构HashMap哈希表原理分析
先看看定义:“散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度. 哈希 ...
- nginx.conf 配置解析之 events配置
worker_connections 1024; 定义每个work_process同时开启的最大连接数,即允许最多只能有这么多连接. accept_mutex on; 当某一个时刻只有一个网络连接请求 ...
- Dynamic_Rankings(动态区间第k大)
ZOJ - 2112 \[ \ \] (那些说这道题是树状数组套主席树的人一定对主席树有误解!) 这里我们用树状数组套线段树来解决来写 首先 , 我们需要有n棵线段树(不是\(n^2\)空间,别慌) ...
- bzoj5461 Minimax 题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5461 看到题目,必将m种权值离散化. 首先是一个显然的dp设计. 设$f(i,j)$表示第i个节点 ...