.NetCore从零开始使用Skywalking分布式追踪系统
将本文从0开始搭建两个webapi项目,使用Skywalking来追踪他们之间的调用关系及响应时间。开发环境为VisualStudio2019
1:安装Skywalking,可参考:https://www.cnblogs.com/sunyuliang/p/11422576.html,本列中搭建好后的Skywalking服务器地址为:192.168.150.134
2:打开VS创建一个demo1的webapi项目。
2.1:为项目添加NuGet程序包SkyAPM.Agent.AspNetCore的引用
2.2,在项目根目录添加skyapm.json文件,并添加下以内容,其中的Servers结点的IP地址根据实际情况换成自己的服务器IP
{ "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的价值所在。
3:另外再打开一个VS创建一个demo02的webapi项目。
3.1:为项目添加NuGet程序包SkyAPM.Agent.AspNetCore的引用
3.2,在项目根目录添加skyapm.json文件,并添加下以内容,其中的Servers结点的IP地址根据实际情况换成自己的服务器IP。其中ServiceName结点设置为:Demo02
{ "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中不加引用: using Microsoft.AspNetCore.Mvc; ,通过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中
以上多个系统间的追踪也就都完成了,完成不用写代码,配置一下就好了。
原文链接:https://www.cnblogs.com/sunyuliang/p/11424848.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
.NetCore从零开始使用Skywalking分布式追踪系统相关推荐
- Linux下安装 SkyWalking 分布式追踪系统
Linux下安装 SkyWalking 分布式追踪系统 1.SkyWalking简介 1.1 SkyWalking介绍 SkyWalking项目是由华为大牛吴晟开源的个人项目,目前已经加入Apache ...
- Apache skywalking分布式追踪系统
apm性能调用别人 和zipking差不多,链路追踪工具: 安装部署 下载 https://skywalking.apache.org/downloads/ https://mirrors.bfsu. ...
- 从零开始使用Skywalking分布式链路追踪系统
当我们用很多服务时,各个服务间的调用关系是怎么样的?各个服务单调用的顺序\时间性能怎么样?服务出错了,到底是哪个服务引起的?这些问题我们用什么方案解决呢,以前的方式是各个系统自己单独做日志,出了问题从 ...
- 40张图看懂分布式追踪系统原理及实践
前言 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成.这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用,哪些模块,哪些节点及调 ...
- 传递给系统调用的数据区域太小怎么解决_40张图看懂分布式追踪系统原理及实践...
作 者:码海 原文链接:https://mp.weixin.qq.com/s/U-8ttlVCfYtjEPOWKBHONA 前言 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互 ...
- 传递给系统调用的数据区域太小怎么解决_一口气说出“分布式追踪系统”原理!...
" 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成. 图片来自 Pexels 这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用 ...
- 厉害!40 张图看懂分布式追踪系统原理及实践
作者 | 码海 来源 | 码海 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成. 这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些 ...
- 分布式追踪系统的对比、实现与使用—NodeTracing
前言 现状 各类trace解决方案 各大厂商trace系统对比 NodeTracing概览 NodeTracing使用 下载 快速开始&单例启动 生产部署&集群启动 安装自动探针 探针 ...
- 这些图让你看懂分布式追踪系统原理及实践
前言 在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成.这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用,哪些模块,哪些节点及调 ...
最新文章
- c7pro android7,三星c7pro和iphone7哪个值得买?三星Galaxy c7 pro和苹果iphone7区别对比详细评测...
- python3中文手册-Python3.4中文手册 chm版
- Linux内核ARM构架中原子变量的底层实现研究
- 03_Influxdb数据库的简单操作
- Python实现双端队列
- Maven构建项目 — 知识点梳理
- ubuntu启动配置ftp服务端
- 第一次作业:对于Linux2.6.0源码中进程模型的分析
- 第一篇论文:改进TCP及UDP的性能分析及比较
- matlab_一组数据元素随机排列
- ofbiz webservice 例解
- brew下载资源失败解决办法
- 找不到Office安装路径,如何导入MathType
- 电脑开机出现奇怪字符_电脑开机黑屏怎么办出现英文字符
- java http ipv6_Java支持IPv6研究
- firefox windows旧版本下载
- 通过js实现切换背景颜色
- 美国专利法中对于发生在专利公开日和授权日之间的侵权行为考量
- 时空AI核心技术:时空知识图谱 | 维智科技
- opera for windows 上的阿里旺旺调用