.NET Core集成SkyWalking+SkyAPM-dotnet实现分布式链路追踪

SkyWalking是一款APM(应用性能管理),其他的还有Cat、Zipkin、Pinpoint等。

随着微服务架构的流行,一次请求会涉及多个服务的调用,并且服务本身也可能会依赖其他服务,整个请求路径会构成一个调用链,当某个节点发生异常时,整个调用链的稳定性都会受到影响,SkyWalking可以帮助理解系统行为和分析性能问题。SkyWalking包括了分布式追踪、性能指标分析、应用和服务依赖分析等。
虽然目前市面许多APM系统,但目前.NET上只有SkyWalking可用,通过使用SkyAPM-dotnet,感觉大佬们无私的奉献。

一,SkyWalking安装

打开链接https://archive.apache.org/dist/skywalking,由于目前SkyAPM-dotnet最大仅支持7.0.0,因此最多仅能选择这个版本。

选择此包进行下载,由于7.0.0版本目前还无镜像,下载较慢,可以通过百度网盘的离线下载功能进行下载,速度会快一点。默认占用8080, 10800, 11800, 12800端口。

下载完成后,解压,windows下,打开apache-skywalking-apm-bin\bin\startup.bat,会弹出两个框:

浏览器打开http://localhost:8080/,出现SkyWalking管理界面既视为启动成功,关闭上面两框则会关闭SkyWalking服务。

二,.NET Core项目集成SkyAPM-dotnet

新建一个web项目,安装nuget包SkyAPM.Agent.AspNetCore

在我写博客的这会,刚刚更新了1.1.0版本,我用.NET Core 3.1试了1.1.0和1.0.0版本,虽然没有报错,但一直没捕捉到链接请求,最后用了0.9.0,有兴趣的博友们可以自己慢慢尝试。

新建配置文件skyapm.json,修改实际的ip地址

 1 {
2 "SkyWalking": {
3 "ServiceName": "asp-net-core-aspnetcore",
4 "Namespace": "",
5 "HeaderVersions": [
6 "sw6"
7 ],
8 "Sampling": {
9 "SamplePer3Secs": -1,
10 "Percentage": -1.0
11 },
12 "Logging": {
13 "Level": "Information",
14 "FilePath": "logs/skyapm-{Date}.log"
15 },
16 "Transport": {
17 "Interval": 3000,
18 "ProtocolVersion": "v6",
19 "QueueSize": 30000,
20 "BatchSize": 3000,
21 "gRPC": {
22 "Servers": "192.168.1.148:11800",
23 "Timeout": 10000,
24 "ConnectTimeout": 10000,
25 "ReportTimeout": 600000
26 }
27 }
28 }
29 }

新增环境变量 "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES":"SkyAPM.Agent.AspNetCore"

可修改launchSettings.json文件

也可在Program.cs中配置

 Environment.SetEnvironmentVariable("ASPNETCORE_HOSTINGSTARTUPASSEMBLIES", "SkyAPM.Agent.AspNetCore");

到此,配置完成,启动项目。

浏览器访问http://localhost:8080/,打开追踪Tab,时间范围那有点bug,需要调整下结束时间,不然数据出不来。

详细的各位博友慢慢研究。附上SkyApm-dotnet示例代码:https://github.com/SkyAPM/SkyAPM-dotnet/tree/master/sample

.NET Core集成SkyWalking+SkyAPM-dotne实现分布式链路追踪的更多相关文章

  1. NET Core微服务之路:SkyWalking+SkyApm-dotnet分布式链路追踪系统的分享

    对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk或splunk进行定位及分析问题,更有甚者直接远程服务器,直接操作查看日志,那么,随着业务越来越复杂,企业应用也进入了分布式服务化的 ...

  2. 分布式链路追踪自从用了SkyWalking,睡得真香!

    本篇文章介绍链路追踪的另外一种解决方案Skywalking,文章目录如下: 什么是Skywalking? 上一篇文章介绍了分布式链路追踪的一种方式:Spring Cloud Sleuth+ZipKin ...

  3. 分布式链路追踪体验-skywalking入门使用

    背景 旁友,你的线上服务是不是偶尔来个超时,或者突然抖动一下,造成用户一堆反馈投诉.然后你费了九牛二虎之力,查了一圈圈代码和日志才总算定位到问题原因了.或者公司内部有链路追踪系统,虽然可以很轻松地通过 ...

  4. SkyWalking+SkyApm-dotnet分布式链路追踪系统

    SkyWalking+SkyApm-dotnet分布式链路追踪系统 对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk或splunk进行定位及分析问题,更有甚者直接远程服务器,直接操 ...

  5. 使用Skywalking分布式链路追踪系统

    使用Skywalking分布式链路追踪系统 https://www.cnblogs.com/sunyuliang/p/11424848.html 当我们用很多服务时,各个服务间的调用关系是怎么样的?各 ...

  6. .NET Core 中的日志与分布式链路追踪

    目录 .NET Core 中的日志与分布式链路追踪 .NET Core 中的日志 控制台输出 非侵入式日志 Microsoft.Extensions.Logging ILoggerFactory IL ...

  7. spring cloud 2.x版本 Sleuth+Zipkin分布式链路追踪

    前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...

  8. 个推基于 Zipkin 的分布式链路追踪实践

    作者:个推应用平台基础架构高级研发工程师 阿飞   01业务背景   随着微服务架构的流行,系统变得越来越复杂,单体的系统被拆成很多个模块,各个模块通过轻量级的通信协议进行通讯,相互协作,共同实现系统 ...

  9. 分布式链路追踪之Spring Cloud Sleuth+Zipkin最全教程!

    大家好,我是不才陈某~ 这是<Spring Cloud 进阶>第九篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得 ...

随机推荐

  1. mdp文件-Chapter2-NVT.mdp

    这是mdp文件系列的第二篇,介绍nvt平衡中要使用的mdp文件. 先上代码,nvt.mdp 1 title = OPLS Lysozyme NVT equilibration 2 define = - ...

  2. http 响应 ngx_http_send_header ngx_http_output_filter

    在解析完  http 请求报文后, 需要发出响应报文, 那么ngx 框架 提供了那些通用接口呢?如果自己设计将所用的模块的响应接口合并起来 你会怎么设计呢?? 响应头过滤函数主要的用处就是处理HTTP ...

  3. linx 内核 并发与同步 1

    内核并发来源: 1.硬件中断和异常:中断服务程序和被中断的进程可能发生并发访问资源 2.软中断和tasklet,软中断和taklet随时都可能倍调度执行,从而打断当前正在执行 进程的上下文. 3.内核 ...

  4. MVCC(转)

    什么是 MVCC MVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(包括 MySQL.Oracle.PostgreSQL 等)引擎 ...

  5. UI自动化中无头浏览器的应用

    因为某次工作中写了个脚本要来回跑,还要在本机上做很多其他的事情,所以就上网找了个方法,无头浏览器,这样就不会浏览器来回弹出来,执行用例还会很快. 废话不多说,直接放代码: #coding=utf-8 ...

  6. 使用@Validated校验数据(除数据库做辅助)

    一.controller层 /** * 使用@Validated来进行校验 * @author HuangJingNa * @date 2019年12月23日 下午6:02:20 * * @param ...

  7. Python_PyQt5_打开文件并修改字体

    在同文件夹下新建一个 测试文档.txt  再运行下面代码,可以实现效果 代码 1 #!Python3 2 # -*- coding:utf-8 -*- 3 4 """ 5 ...

  8. 信息收集之——旁站、C段

    旁站的概念 ​旁站指的是同一服务器上的其他网站,很多时候,有些网站可能不是那么容易入侵.那么,可以查看该网站所在的服务器上是否还有其他网站.如果有其他网站的话,可以先拿下其他网站的webshell,然 ...

  9. bWAPP----SQL Injection (GET/Search)

    SQL Injection (GET/Search) 输入单引号 报错,在%'附近出错,猜测参数被 '%  %'这种形式包裹,没有任何过滤,直接带入了数据库查询 输入order by查询列 union ...

  10. FL Studio乐理教程之和弦进行

    和弦级数 在一个调内,分别由调内7个音为根音组成的和弦总共有7个,每个和弦依次为1-7级和弦.例如在C大调内,以C为根音建立和弦,就是一级和弦,以D为根音建立和弦,即是二级和弦,以此类推. 图1:1- ...