博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.Net Core使用Skywalking实现分布式链路追踪
阅读量:4034 次
发布时间:2019-05-24

本文共 2564 字,大约阅读时间需要 8 分钟。

介绍

Skywalking 是 Apache 基金会下面的一个开源 APM 项目,是一套(APM)分布式追踪系统,提供了很多数据存储列如:Mysql,H2,Elasticsearch7 等。其中APM 全称是应用性能监测软件,主要是用来处理以及追踪分布式系统中的应用程序的性能问题,从而快速找出问题的根源,进而可以让开发者定位问题从而提升应用程序性能。

当我们用很多服务相互调用时,各个服务单调用的顺序\时间性能怎么样?这些问题我们怎么监测,以前的方式是各个系统自己单独做日志,出了问题在一个一个服务的排查,有点刀耕火种的感觉。好在现在有Skywalking链路追踪系统,可以不用写任何代码,就追踪到各个服务间的调用关系和性能状态等。

ASP.NET Core 集成

1、安装Skywalking,搭建好后的Skywalking服务器地址为:127.0.0.1:11800

2、新建项目SkyWalkingA,为项目添加NuGet程序包SkyAPM.Agent.AspNetCore的引用

3、在项目根目录添加skyapm.json文件

{  "SkyWalking": {    "ServiceName": "WebApplication4",    "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": "127.0.0.1:11800",        "Timeout": 10000,        "ConnectTimeout": 10000,        "ReportTimeout": 600000      }    }  }}

4、打开launchSettings.json文件,在其中的环境变量中加入 "SKYWALKING__SERVICENAME"

{  "$schema": "http://json.schemastore.org/launchsettings.json",  "iisSettings": {    "windowsAuthentication": false,    "anonymousAuthentication": true,    "iisExpress": {      "applicationUrl": "http://localhost:20467",      "sslPort": 0    }  },  "profiles": {    "IIS Express": {      "commandName": "IISExpress",      "launchBrowser": true,      "launchUrl": "api/values",      "environmentVariables": {        "ASPNETCORE_ENVIRONMENT": "Development",        "SKYWALKING__SERVICENAME": "WebApplication4",        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"      }    },    "WebApplication4": {      "commandName": "Project",      "launchBrowser": true,      "launchUrl": "api/values",      "applicationUrl": "http://localhost:5000",      "environmentVariables": {        "ASPNETCORE_ENVIRONMENT": "Development",        "SKYWALKING__SERVICENAME": "WebApplication4",        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"      }    }  }}

5、新建项目SkyWalkingB,重复上面步骤2、3、4

在A项目访问B项目

// GET api/values        [HttpGet]        public async Task
>> Get() { var client = new HttpClient(); await client.GetStringAsync("http://localhost:20467/api/values/1"); await client.GetStringAsync("http://localhost:20467/api/values"); return new string[] { "value1", "value2" }; }

跑起来,可以看到对应的链路调用关系

源码地址:

https://github.com/conanl5566/mydemo/tree/master/SkyWalking

转载地址:http://zfudi.baihongyu.com/

你可能感兴趣的文章
linux insmod error -1 required key invalid
查看>>
linux kconfig配置
查看>>
linux不同模块completion通信
查看>>
linux printf获得时间戳
查看>>
C语言位扩展
查看>>
linux dump_backtrace
查看>>
linux irqdebug
查看>>
git 常用命令
查看>>
linux位操作API
查看>>
snprintf 函数用法
查看>>
uboot.lds文件分析
查看>>
uboot start.s文件分析
查看>>
没有路由器的情况下,开发板,虚拟机Ubuntu,win10主机,三者也可以ping通
查看>>
本地服务方式搭建etcd集群
查看>>
安装k8s Master高可用集群
查看>>
忽略图片透明区域的事件(Flex)
查看>>
忽略图片透明区域的事件(Flex)
查看>>
AS3 Flex基础知识100条
查看>>
Flex动态获取flash资源库文件
查看>>
flex中设置Label标签文字的自动换行
查看>>