1.APM工具的选取

Apm监测工具很多,这里选用网上比较火的一款Skywalking。

Skywalking是一个应用性能监控(APM)系统,Skywalking分为服务端Oap、管理界面UI、以及嵌入到程序中的探针Agent部分,大概工作流程就是在程序中添加探针采集各种数据发送给服务端保存,然后在UI界面可以看到收集过来的各种监测数据,来完成它的核心使命:性能监控和分布式调用链追踪能力。下图是skywalking官方的一个图,也可以说明这三者之间的关联关系

2.服务端(OAP)和界面(UI)的安装

这里直接在apache地址:http://skywalking.apache.org/downloads/ 下载了一个6.6.0版本的zip文件,由于之前在本地的windows上安装过,发现安装包里面有两个启动文件,分别为:startup.bat和startup.sh,分别用于window上启动和linux启动,这里我直接将之前下载好的上传到linux上来安装。

上传后解压缩,就会得到以下截图的几个文件

进入到config配置目录下面,有一个名称叫application.yml的文件

对这个配置文件进行编辑 vim application.yml

我们直接定位到数据存储部分,也就是节点storage,官方文档里面也有说明,为了方便快速入门,配置文件默认采用的是H2存储,但是推荐使用ElasticSearch存储,由于之前我安装过Exceptionless,在这台机器上已经安装过elasticsearch(如果没有安装过可以网上找下,有很多这方面的文章),所以我这里将H2部分注释掉,然后将elasticsearch部分放开,并修改红色方框里的两个配置文件:

1

2

nameSpace: ${SW_NAMESPACE:"exceptionless"}

clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9300}

需要注意的是:第一个SW_NAMESPACE需要与ElasticSearch配置的cluster_name名称一致

启动skywalking会占用四个端口:8080,10800,11800,12800,由于我本机安装过apollo,8080ui端口已经被占用,所以这里我必须要先修改UI界面使用的8080端口才能启动它。

开始修改UI界面使用的8080端口(如果你的8080端口并没有被占用,可以跳过,不用修改)

回到配置目录的上一级:cd ..

可以看到一个webapp的文件夹

进入这个目录:cd webapp/

然后对webapp.yml文件进行修改

这里我将原来server界面下面的port从8080改到8088,然后保存

配置文件修改完了,开始启动skywalking的服务端和UI界面,启动脚本放在目录:apache-skywalking-apm-bin/bin 里面

上面有说到startup.bat和startup.sh分别用在windows上和linux上启动,这里用./startup.sh

启动命令执行完成之后可以看到OAP和Web两个项目启动成功的提示,也就是我们说的服务端和UI界面。

验证一下,通过配置的ip+8088端口(如果没有修改则是默认的8080)来访问一下界面,如图:

至此,我们准备工作做完了,下面我们在程序中安装探针,来采集数据.

3.安装探针(Agent)采集数据

由于Skywalking本身是采用java编写的,所以SkyApm-dotnet这个项目就是专门为 .NET 开发的探针,目前支持 ASP.NET Core 以及 ASP.NET,下面我们将SkyApm-dotnet无侵入式的集成到.Net Core实现的微服务项目中

第一步:使用下面的命令来进行 Agent 的安装,这里据说需要以管理员身份运行

1

dotnet tool install -g SkyAPM.DotNet.CLI

第二步:添加环境变量,可以直接在launchSettings.json文件中添加以下代码来设置

1

2

3

4

5

"environmentVariables": {

        "ASPNETCORE_ENVIRONMENT": "Development",

        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",

        "SKYWALKING__SERVICENAME": "Demo.MicroServer.UserService"

      }

第三步:在程序中安装NuGet包:SkyAPM.Agent.AspNetCore

第四步:在应用程序根目录下使用以下命令生成skyapm.json的配置文件,[service name]替换为服务的名称,[server]替换为Skywalking安装的计器ip

1

dotnet skyapm config [service name] [server]:11800

执行完成之后可以看到目录下面已经生成了一个skyapm.json的文件,将其属性复制到输出目录设置为如果较新则复制,我这里是用之前发布在github上的微服务框架中的一个实例来测试的,所有代码均已上传,需要的可以通过页面又上角Github地址获取代码

4.采集数据并查看

在Swagger中随便调用几个接口来测试数据的采集情况,然后到UI界面查看数据,流程顺利的话,可以看到数据已经都有采集到

 

基本工作都已经完成,这个里面还有很多玩法,快动手试试吧。

在微服务框架Demo.MicroServer中添加SkyWalking+SkyApm-dotnet分布式链路追踪系统相关推荐

  1. 微服务框架Demo.MicroServer运行手册

    一.背景说明: 之前分享过一个微服务开发框架, "分享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionl ...

  2. 微服务启动顺序_微服务框架Demo.MicroServer运行手册

    一.背景说明: 之前分享过一个微服务开发框架, "享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionle ...

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

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

  4. 微服务链路追踪_.NET Core微服务:分布式链路追踪系统分享

    (给DotNet加星标,提升.Net技能) 转自:另一个老李 cnblogs.com/SteveLee/p/10463200.html 对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过e ...

  5. asp 采集系统_在微服务框架中添加SkyWalking+SkyApm-dotnet分布式链路追踪系统

    1.APM工具的选取 Apm监控工具很多,这里选用网上比较火的一款Skywalking. Skywalking是一个应用性能监控(APM)系统,Skywalking分为服务端Oap.管理界面UI.以及 ...

  6. 在spring boot中三分钟上手apache顶级分布式链路追踪系统skywalking

    skywalking在apache里全票通过成为了apache顶级链路追踪系统 项目地址:github.com/apache/skyw- 官方文档:github.com/apache/skyw- 虽然 ...

  7. python的flask微服务-flask微服务框架的初步接触

    测试2个关联的系统接口时,经常会遇到被测试系统或被测app的处理内部处理流程会依赖另一个系统的接口返回结果,这时, 常用的做法就是写一个模拟测试桩,用作返回请求时的结果.java可以用servicel ...

  8. pigx框架费用_【开源项目】一篇文章搞掂:Pig微服务框架

    1.项目开发环境和运行步骤 1.1.项目开发环境 Idea:2018.1.6 Maven:3.5.3 JDK:1.8.0_172 MySQL:5.7.19(之前安装8.0.11会运行失败) Redis ...

  9. 企业级微服务框架落地

    根据康威定律,当互联网公司业务和团队发展到一定规模,微服务架构是一种必然的演化趋势.我们看看唯品会对微服务框架体系的建设及实践. 先来看一下唯品会微服务基础中台架构的设计思路.围绕微服务,唯品会自主研 ...

最新文章

  1. NO29 用户提权sudo配置文件详解实践--志行为审计
  2. linux查询数据库sql,SQL Server 跨数据库查询
  3. Windows API 的数据类型与 Delphi 数据类型对照表
  4. 程序员该知道的7个必经阶段
  5. Java经典实例:比较浮点数
  6. HDU 6340 Problem I. Delightful Formulas(伯努利数 + 积性函数反演)
  7. shell中单引号双引号反引号的区别
  8. 【python技能树】python编码规范
  9. freeswitch安装步骤(源码编译安装)
  10. PJzhang:kali linux安装网易云音乐、Visual Studio Code、skype
  11. bugku秋名山老司机
  12. poi excel下载
  13. 都匀三中2021高考成绩查询,2017年黔南州高考各县市600分以上人数统计表,都匀市仅排第九。...
  14. ASP.NET 母版页(嵌套、访问母版页的控件和属性)
  15. SpringBoot之静态资源访问配置
  16. Spring为什么需要使用三级缓存?
  17. Markdown 5分钟的语法课
  18. 劲爆!开源芯片死结打开了?道翰天琼认知智能机器人平台API接口大脑为您揭秘
  19. 用Feed43为任意网站定制RSS feed教程~
  20. 怎么去水印不破坏原图?这4个方法,无痕去除图片水印

热门文章

  1. SQLServer2008-镜像数据库实施手册(双机)SQL-Server2014同样适用
  2. Mysql中explain命令查看语句执行概况
  3. 静态成员变量和静态成员函数(static)
  4. 遭遇“烧钱瓶颈” 优酷成本结构堪忧
  5. [转贴]犯贱报(一张浓缩大学生活的..)
  6. 个人电脑的楷模:新款IMac G5
  7. linux df命令功能,Linux df命令简要介绍
  8. Teams App如何选择用户
  9. CC框架实践(1):实现登录成功再进入目标界面功能
  10. linux笔记 3-4 SMTP,.配置电子邮件传输