在 ASP.NET Core 中集成 Skywalking APM

前言

大家好,今天给大家介绍一下如何在 ASP.NET Core 项目中集成 Skywalking,Skywalking 是 Apache 基金会下面的一个开源 APM 项目,有些同学可能会 APM 是干什么用的还不是太了解,那么下面我就简单的来说一下。

APM 全称是 (Application Performance Monitor)应用性能监测软件,主要是用来处理以及追踪分布式系统中的应用程序的性能问题,从而快速找出问题的根源,进而可以让开发者定位问题从而提升应用程序性能。

Skywalking 是一个APM系统,为微服务架构和云原生架构系统设计,它通过客户端探针自动收集追踪性能所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking 可以感知应用间关系和服务间关系,并进行相应的指标统计及展示。

.NET 探针

为了能够让APM的服务端正确的收集到追踪及分析所需的指标,就需要有客户端程序附属到你的应用程序上进行数据的上报,那么这个附属的程序就叫做探针(Agent)。

Skywalking 使用 Java 程序开发,默认提供了 Java 探针,那么在 .NET 系统中,就需要有 .NET 相关的探针才能够正确的将数据上报的服务端,所以 skywalking-netcore 这个项目就是专门为 .NET 开发的探针,目前支持 ASP.NET Core 以及 ASP.NET,下面我具体的来说一下这个项目吧。

.NET 探针项目:https://github.com/OpenSkywalking/skywalking-netcore

这个项目位于 OpenSkywalking 组织下是由 Skywalking 作者 吴晟 大佬发起的,主要开发者是 Lemon 同学,虽然我也是组织成员之一,但是只做了一些打杂的工作以及对 CAP 消息追踪的支持工作,感兴趣的同学欢迎 Github Star 一波...

好了,我们还是主要说一下怎么在 ASP.NET Core 中集成 Skywalking 吧。

ASP.NET Core 集成

在新版本的 Skywalking .NET Agent 中,我们实现了对 ASP.NET Core 应用程序无入侵的集成方式,这使得你可以更加方便的开启或者关闭探针数据的收集而不用修改任何代码。比如你可以在生产环境遇到性能问题时候启动它快速的定位问题,而在问题处理完成之后再关掉,非常的方便,下面我们来说一下集成的步骤。

Step 1

我们提供给了dotnet 的扩展 CLI 工具以供开发者使用从而进行集成,首先使用下面的命令来进行 Agent 的安装

dotnet tool install -g SkyWalking.DotNet.CLI

安装完成之后,你可以在命令行中使用 dotnet skywalking 或者是 dotnet-skywalking 提供的命令来安装 .NET Agent 到你的本机或者容器中。

// 注意需要在管理员权限下运行dotnet skywalking install

Step 2

接下来,我们需要向环境变量中添加几个参数:

Windows

set DOTNET_ADDITIONAL_DEPS=%PROGRAMFILES%\dotnet\x64\additionalDeps\skywalking.agent.aspnetcoreset ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyWalking.Agent.AspNetCore

Linux

export DOTNET_ADDITIONAL_DEPS=/usr/local/share/dotnet/x64/additionalDeps/skywalking.agent.aspnetcoreexport ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyWalking.Agent.AspNetCore

Step 3

然后,你需要给你要集成的应用取一个名字,例如我使用以下方式创建一个示例程序:

dotnet new mvc -n mvcdemo

以上命令会生成一个名为 mvcdemo 默认的 ASP.NET MVC 项目,我们需要给项目搞一个代号以便让服务端识别,就取代号名为 mvc_sample 吧,然后把这个代号使用下面的命令也添加到环境变量里面。

**Windows**set SKYWALKING__APPLICATIONCODE=mvc_sample**Linux**export SKYWALKING__APPLICATIONCODE=mvc_sample

Step 4

最后一步就是我们需要第一步的 CLI 工具生成一个配置文件,从而配置各种参数,使用以下命令生成一个配置文件:

// mvc_sample 为上面 step 3 的代号,  localhost:11800 为 Skywalking 服务端的地址dotnet skywalking config mvc_sample localhost:11800

上面的命令会在你的项目文件夹下生成一个名为 skywalking.json 的json文件,里面是配置信息,你可以酌情修改,如下:

skywalking.json

{  "SkyWalking": {    "ApplicationCode": "Frontend",    "SpanLimitPerSegment": 300,    "Sampling": {      "SamplePer3Secs": -1},    "Logging": {      "Level": "Information",      "FilePath": "logs\\SkyWalking-{Date}.log"},    "Transport": {      "Interval": 3000,      "PendingSegmentLimit": 30000,      "PendingSegmentTimeout": 1000,      "gRPC": {        "Servers": "localhost:11800",        "Timeout": 2000,        "ConnectTimeout": 10000}}}
}

以上,就是所有的配置工作,接下来就可以开始启动了。

启动你的项目

启动很简单,按照你习惯的常规方式使用 dotnet run 或者 dotnet mvcdemo.dll 来运行你的项目即可。

然后你就可以去 Skywalking 服务端 UI 上面看到 API 的追踪信息了。

下面是Skywalking的几个追踪界面截图,大家可以用 UI 上大致了解下:

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

最后

最后当然是广告时间,哈哈哈~~~

你还在为了解消息队列的复杂机制而苦恼吗?

你还在为找不到一个顺手的 EventBus 搜遍百度谷歌吗?

你还在为项目中遇到的分布式事务问题而抱头痛哭吗?

不要慌,不要急,有了她,让你少掉发!早下班!

她就是 CAP:https://github.com/dotnetcore/CAP

一个分布式事务解决方案,同时具有 EventBus 的所有功能,什么?你说价格?不要99,也不要9块9,免费开源MIT,重要的是有 手把手视频,

有了她,让你多些时间陪陪家人,会会朋友,做做大保健~

如果你觉得这个开源项目还不错,给个Github Star 支持一下那就太好了。

原文地址:https://www.cnblogs.com/savorboard/p/asp-net-core-skywalking.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YbtOJ-大收藏家【分层图,最大流】

正题 题目链接:https://www.ybtoj.com.cn/contest/117/problem/2 题目大意 nnn个人,每人有aia_iai​个属于自己的物品。mmm次交换依次进行,每次xi,yix_i,y_ixi​,yi​两个人可以决定拿不拿自己的一个物品进行交换。 求111号人最后能拿到最多多少种物品…

2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛 Fishing Master

文章目录题意:题解:代码:题意: 你在钓鱼,每次钓鱼固定时间为k(必定钓上一条鱼),池塘一共n条鱼,钓上鱼后要煮,每条鱼煮的时间不相同,可以在煮鱼的…

NWERC 2018——B.Brexit Negotiations

Brexit Negotiations 有向无环图,很容易想到拓扑排序,很明显我们需要把权值大的点放在最前面,然后就想到搞个优先队列,每次拓扑排序的时候出权值大的点,但是发现答案是不对的。 正向建图拓扑排序能够保证小的点一定最后…

.NET运行时中的监测和可观测性

今年5月份的时候研究分布式追踪的问题知道了的拦截方式比较零散, 刚好8月份的时候看到这篇文章,这个文章总结的比较完整。存档了很久,趁今天有空翻译给大家。原文地址,校验:张蘅水.NET是一个托管运行时,这意…

YbtOJ#532-往事之树【广义SAM,线段树合并】

正题 题目链接:https://www.ybtoj.com.cn/problem/532 题目大意 给出nnn个点的一个TrieTrieTrie树,定义SxS_xSx​表示节点xxx代表的字符串 求max{∣LCP(Sx,Sy)∣∣LCS(Sx,Sy)∣}(x≠y)max\{|LCP(S_x,S_y)||LCS(S_x,S_y)|\}(x\neq y)max{∣LCP(Sx​,Sy​)∣∣LCS(S…

【并查集】公司搬迁

题目大意 给出n,a,b和n个数,有两个集合A,B,如果x放在A中则a-x必须存在且在A中,B同理,问你是否有合法方案 解题思路 不难发现,如果a-x或b-x存在,那么和x必须在同一个集合(若x放A中b-x放B中则不…

牛客练习赛 71 AC

A - 回文数 回文数条件:奇数个数的个数最多有一个 如果0的数量是0,那么直接先找到奇数个数的数是谁,然后正序输出一半逆序输出一半即可。 如果0的数量不是0,只需要找到一个偶数个个数的数放置第一个即可(只需要放一个…

开源文件服务器file-service介绍

File-service一个基于ASP.NET Core的可伸缩、通用的文件服务器。通常后端项目可能会有头像、图片、音频、视频等上传/下载需求,这些需求都可以抽象为文件服务。功能特点支持Linux(推荐)、Windows可伸缩式架构,支持部署1-N台文件服…

【二分】走亲戚

题目大意 平面上有n个点,给出m个询问,每个询问要回答从x轮流往右往左去到最远的点,最后到达的点 解题思路 对于每个询问,每次二分左右可以到多远,直到不能动为止 考虑时间,对于重复走一个范围的&#xf…

CF1375F-Integer Game【交互】

正题 题目链接:https://www.luogu.com.cn/problem/CF1375F 题目大意 给出a,b,ca,b,ca,b,c。先手每次指定一个数kkk,然后后手指定一个数字加上kkk,若有相同的数则先手胜利,操作次数超过100010001000后后手胜。后手不能两次操作同一个数。 你…

Stars(树状数组)

题意: m个星星,一个星星的等级取决于有多少其他星星的横纵坐标不大于它,如果有x个,该星星等级为x 问各个等级的星星有多少个? (题目会按照y的升序给出星星坐标) 题解: 树状数组入…

AtCoder Regular Contest 105 部分 NIM游戏

TESyyds,本来以为又要3:1,结果创造历史!!!非常激动啊好久好久没看过让二追三了。 无缝衔接回旋踢,qa插眼we。送给雷达哥 A - Fourtune Cookies 签到题 #define IO ios::sync_with_stdio(false);cin.tie(…

【状压DP】作业

题目大意 有n个数,让你对其排列,令排列后的第i个数字为sis_isi​,该排列要满足: ∀i∈[1,n),si≤si1\forall i\in [1,n),s_i\leq s_{i1}∀i∈[1,n),si​≤si1​∀i∈[1,n),∣(min(si,si1),max(si,si1))∩{sj∣k>i}∣≤bi\fora…

Lost Cows(树状数组)

试题链接 题意: 求出一个1到n的排列,这个排列只告诉了你从第二个数字开始的比这个数字小的数的个数。 题解: 如果一个数p,p的前面有m个比他小的数,后面有n个比他小的数,那p的位置…

P2611-[ZJOI2012]小蓝的好友【Treap,扫描线】

正题 题目链接:https://www.luogu.com.cn/problem/P2611 题目大意 r∗cr*cr∗c的网格上有nnn个标记点,然后求有多少个矩形包含至少一个标记点。 1≤r,c≤4104,1≤n≤1051\leq r,c\leq 4\times 10^4,1\leq n\leq 10^51≤r,c≤4104,1≤n≤105 保证数据随机 解题思路…

上学要迟到了【最短路转化】

上学要迟到了 题目 牛牛早上起床一看,自己睡过了,赶紧起床准备去学校,他去学校只有两种方式,坐公交车和步行,牛牛去学校是一条直线,这条直线上总共有 nnn 个车站,车站之间的距离都是相等的&am…

Microsoft Tech Summit 2018 课程简述:利用 Windows 新特性开发出更好的手绘视频应用...

概述Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行,这也会是国内举办的最后一届 Tech Summit,2019 年开始会以 Microsoft Ignite Tour 的形式出现,大家可以在官网查看本次会议信息:https:/…

牛牛和牛可乐的赌约

来源:牛客网: 牛牛和牛可乐的赌约 时间限制:C/C 2秒,其他语言4秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 牛可乐发明了一种n面骰子(点数分别从1{}1到{}nn&…

【结论】友谊序列

题目大意 有两个大小为n的数组a,b(所有数互不相等,且大于0),a,b中的数组成集合S,问可以构成aixorbj∈Sa_i\ xor\ b_j\in Sai​ xor bj​∈S的数对(i,j)的方案数的奇偶性 解题思路 若aixorbjaka_i\ xor\ b_ja_kai​ x…