.NetCore从零开始使用Skywalking分布式追踪系统

本文从0开始搭建两个webapi项目,使用Skywalking来追踪他们之间的调用关系及响应时间。开发环境为VisualStudio2019

1:安装Skywalking,可参考:https://www.cnblogs.com/sunyuliang/p/11422576.html,本列中搭建好后的Skywalking服务器地址为:192.168.150.134

2:打开VS创建一个demo1的webapi项目。

       2.1:为项目添加NuGet程序包SkyAPM.Agent.AspNetCore的引用                    

  2.2,在项目根目录添加skyapm.json文件,并添加下以内容,其中的Servers结点的IP地址根据实际情况换成自己的服务器IP

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

  2.3: 修改skyapm.json文件的属性”复制到输入目录“ 修改为 ”如果较新则复制”

       2.4:展开项目的Properties,打开launchSettings.json文件,在其中的环境变量中加入 "SKYWALKING__SERVICENAME": "asp-net-core-frontend" 

                             640?wx_fmt=png

  2.5:到目前skywalking就已经成功引入到系统中了。接下来我们来验证一下是否正常,直接Ctrl+F5启动项目,访问https://localhost:44313/api/values

         640?wx_fmt=png

  2.6:访问Skywalking管理后台(记得替换一下IP)http://192.168.150.134:8080/trace 。手动选一下时间范围,结束时间选明天(选当时时间会搜索不到数据,不知道是时区还是skywalking的bug),点击搜索。可以看到本次访问的追踪信息已经同步到了Skywalking中。

               640?wx_fmt=png

 以上单个系统的追踪就完成了,接下来我们再创建一个项目,步骤和第2步基本一样,看看多系统的追踪,这个才是Skywalking的价值所在。

3:另外再打开一个VS创建一个demo02的webapi项目。

       3.1:为项目添加NuGet程序包SkyAPM.Agent.AspNetCore的引用     

640?wx_fmt=png

  3.2,在项目根目录添加skyapm.json文件,并添加下以内容,其中的Servers结点的IP地址根据实际情况换成自己的服务器IP。其中ServiceName结点设置为:Demo02

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

  3.3: 修改skyapm.json文件的属性”复制到输入目录“ 修改为 ”如果较新则复制”

       3.4:展开项目的Properties,打开launchSettings.json文件,在其中的环境变量中加入 "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore" 

                             640?wx_fmt=png

   3.5:在将ValuesController.cs中不加引用: using Microsoft.AspNetCore.Mvc; ,通过HttpClient依次调用Demo01的两个方法,里面的https://localhost:44313对应为我们的Demo01项目。具体Get方法代码如下:

        // GET api/values
[HttpGet]
public async Task<string> Get()
{
var client = new HttpClient();
await client.GetStringAsync("https://localhost:44313/api/values/1");
return await client.GetStringAsync("https://localhost:44313/api/values");
}

                               640?wx_fmt=png

        3.6:Ctrl+F5启动项目,访问http://localhost:21143/api/values

                                  640?wx_fmt=png

   3.7:访问Skywalking管理后台(记得替换一下IP)http://192.168.150.134:8080/trace 。手动选一下时间范围,结束时间选明天(选当时时间会搜索不到数据,不知道是时区还是skywalking的bug),点击搜索。可以看到本次访问两系统单的调用关系图已经同步到了Skywalking中

                                  640?wx_fmt=png

 以上多个系统间的追踪也就都完成了,完成不用写代码,配置一下就好了。

原文链接:https://www.cnblogs.com/sunyuliang/p/11424848.html


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

640?wx_fmt=jpeg

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

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

相关文章

P3723 [AH2017/HNOI2017]礼物(FFT)

P3723 [AH2017/HNOI2017]礼物 式子化简 ∑i1n(xi−yj)2\sum_{i 1} ^{n} (x_i- y_j) ^2\\ i1∑n​(xi​−yj​)2 我们对第一个手环ccc&#xff0c;相当于(xic−yi)2(x_i c - y_i) ^ 2(xi​c−yi​)2&#xff0c;对第二个手环ccc相当于(xi−yi−c)2(x_i - y_i - c) ^2(xi​−…

CF623E Transforming Sequence(多项式/倍增fft/动态规划)

CF623E Transforming Sequence 经典的倍增NTT题目&#xff0c;但是由于万恶的模数导致这道题变成了倍增MTT 要求n个数前缀或严格递增的序列个数&#xff0c;一共有k位。 然后我们考虑进行dp&#xff0c;然后我的思路就是fi,jf_{i,j}fi,j​表示前i位在k位中有j位的方案数&…

2019-02-26-算法-进化(字符串转换成整数)

题目描述&#xff1a; 请你来实现一个 atoi 函数&#xff0c;使其能将字符串转换成整数。 首先&#xff0c;该函数会根据需要丢弃无用的开头空格字符&#xff0c;直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时&#xff0c;则将该符号与之后…

通过Service访问应用 (1)

目录通过Service访问应用 通过Pod IP访问应用 通过ClusterIP Service在集群内部访问 通过Service访问应用通过之前的操作&#xff0c;应用部署完成了&#xff0c;我们的Demo网站已经成功启动了&#xff0c;那么如何访问网站呢&#xff1f;通过Pod IP访问应用我们可以通过Pod IP…

P4239 任意模数多项式乘法逆(多项式/ MTT)

P4239 任意模数多项式乘法逆 这个题目简直就是毒瘤&#xff0c;不过还好我们可以使用vector封装要不然真的没法看&#xff0c;现在我们就会用vector封装MTT了&#xff0c;然后有一个代码细节就是这里的求逆还是在模意义下的&#xff0c;所以我们还是需要求逆。 #include<b…

多项式求逆模板(NTT + mod)

【模板】多项式乘法逆 /*Author : lifehappy */ #include <bits/stdc.h>using namespace std;typedef long long ll;const int N 1e6 10, mod 998244353, G 3;int r[N], n;ll a[N], b[N], c[N];ll quick_pow(ll a, int n) {ll ans 1;while(n) {if(n & 1) ans …

2019-02-26-算法-进化(回文数)

题目描述&#xff1a; 判断一个整数是否是回文数。回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 示例 1: 输入: 121 输出: true示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为…

POJ1742 Coins(DP)

Coins 思路 没分析复杂度写了个二进制拆分&#xff0c;然后做010101背包O(nlog(c)m)>10e7了O(nlog(c)m) > 10e7了O(nlog(c)m)>10e7了&#xff0c;所以还是想办法优化吧。 我们引入一个needneedneed数组&#xff0c;need[j]need[j]need[j]表示&#xff0c;在枚举到第…

13张PPT带你了解主动式消息队列处理集群

前言偷偷和你们说&#xff0c;我搞了一份内部资料&#xff0c;该内部资料共有13张PPT&#xff0c;据作者透露&#xff0c;该PPT至少花了整整1周时间才编写完成&#xff0c;其内容简洁明了&#xff0c;内容深度足够&#xff0c;易于初学者理解&#xff0c;也给深度开发人员分享了…

CF773F Test Data Generation(倍增FFT/动态规划)

CF773F Test Data Generation https://www.luogu.com.cn/problem/CF773F 这个题还是挺巧妙的&#xff0c;最后需要我们求解的实际上值域为a选择奇数个数最大数是奇数的方案数&#xff0c;然后这个东西显然包含了3个信息&#xff0c;值域、个数、最后一个数的奇偶性&#xff0c…

2019-02-27-算法-进化(寻找两个有序数组的中位数)

题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数&#xff0c;并且要求算法的时间复杂度为 O(log(m n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 [1, 3] nums2 [2]则中位数是 2.0示例 2: nums1 [1, 2]…

.Net Core 三大Redis客户端对比和使用心得

前言稍微复杂一点的互联网项目&#xff0c;技术选型都可能会涉及Redis&#xff0c;.NetCore的生态越发完善&#xff0c;支持.NetCore的Redis客户端越来越多&#xff0c;下面三款常见的Redis客户端&#xff0c;相信大家平时或多或少用到一些&#xff0c;结合平时对三款客户端的使…

2020第十一届蓝桥杯软件类省赛第二场C/C++ 大学 B 组(题解)

试题 A: 门牌制作 问题描述 小蓝要为一条街的住户制作门牌号。 这条街一共有 2020 位住户&#xff0c;门牌号从 1 到 2020 编号。 小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符&#xff0c;最后根据需要将字 符粘贴到门牌上&#xff0c;例如门牌 1017 需要依次粘贴字符 …

队长开卖自家产“翠香”猕猴桃

猕猴桃品种有很多&#xff0c;但不是所有的果子都叫翠香。这两天我在公众号里卖了这个翠香猕猴桃&#xff0c;可能是有同学以为是做广告卖水果&#xff0c;其实是家里的亲戚猕猴桃成熟了&#xff0c;辛苦一年下来地里一共结了3000斤猕猴桃&#xff0c;遇到了一个难题就是如何把…

Java修炼之路——基础篇——Java集合类

集合类的全景图 常用集合类特性 1. Collection&#xff1a;每个位置对应一个元素1.1: List 存放有序元素&#xff0c;允许重复元素&#xff0c;允许元素为null1.1.1: ArrayList&#xff1a;内部结构为数组&#xff1b;初始容量为10&#xff1b;插入、删除的移动速度慢&#x…

1575 Gcd and Lcm

1575 Gcd and Lcm ∑i1n∑j1i∑k1ilcm(gcd(i,j),gcd(i,k))设f(n)∑i1n∑j1nlcm(gcd(i,n),gcd(j,n))f(p)3p2−3p1f(pk)(2k1)(p2k−p2k−1)pk−1\sum_{i 1} ^{n} \sum_{j 1} ^{i} \sum_{k 1} ^{i} lcm(gcd(i, j), gcd(i, k))\\ 设f(n) \sum_{i 1} ^{n} \sum_{j 1} ^{n} lcm…

UVA12298 Super Poker II(多项式/背包问题)

UVA12298 Super Poker II 这应该是最水的背包问题了吧 然后有一个小问题就是这道题没有给模数&#xff0c;然后答案会爆int&#xff0c;所以我们需要MTT&#xff0c;然后开long long就好了&#xff0c;或者直接fft&#xff0c;有可能会爆精度。

Java修炼之路——基础篇——Java集合类详解1

SynchronizedList和Vector的区别 java.util.Vector java.util.Collections.$SynchronizedList Vector用同步方法&#xff0c;SynchronizedList用同步代码块&#xff0c;SynchronizedList可以指定锁定的对象 SynchronizedList有很好的扩展和兼容功能&#xff0c;能把所有List的子…

小卓.NET中文编程特点介绍

大家好&#xff0c;我在介绍一下我的全新编程语言&#xff0d;卓语言。小卓编程是卓语言的一个开发工具&#xff0c;可以在里面实现绘图、动画、事件响应等等功能。关于中文编程&#xff0c;一直以来都有争议。我针对以往中文编程的缺点而开发了一种全新的编程语言。首先 &…

P5748 集合划分计数(贝尔数/多项式)

P5748 集合划分计数 求解从1到1e5的所有贝尔数&#xff0c;我们可以利用生成函数求解&#xff0c;就是利用指数型生成函数求解 代码细节&#xff1a; 首先虽然exe^xex代表全是1&#xff0c;但是多项式下面还有阶乘逆元的系数&#xff0c;然后乘完之后&#xff0c;我们还有乘…