zoukankan      html  css  js  c++  java
  • .NET Core集成SkyWalking+SkyAPM-dotne实现分布式链路追踪

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

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

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

    一,SkyWalking安装

    打开链接https://archive.apache.org/dist/skywalking,目前SkyAPM-dotnet最大可支持8.x,图片是旧的,用的是7.0.0。

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

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

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

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

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

    在我写博客的这会,刚刚更新了1.1.0版本,.NET Core 3.1 + 1.0/1.1需要基于SkyWalking 8.x,8.x以前的版本会无法捕捉。

    新建配置文件skyapm.json,修改实际的ip地址,基于1.0/1.1需要修改HeaderVersions为sw8,ProtocolVersion为v8

     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

    ——我从来不水帖,我只是代码的搬运工。
  • 相关阅读:
    jQuery中的表单验证
    使用jQuery操作DOM对象
    jQuery中的事件和动画
    jQuery的选择器
    divise
    Word History airplay
    a前缀
    con词根
    vert词根
    quest词根
  • 原文地址:https://www.cnblogs.com/night-w/p/14102981.html
Copyright © 2011-2022 走看看