net core下链路追踪skywalking安装和简单使用
当我们用很多服务时,各个服务间的调用关系是怎么样的?各个服务单调用的顺序\时间性能怎么样?服务出错了,到底是哪个服务引起的?这些问题我们用什么方案解决呢,以前的方式是各个系统自己单独做日志,出了问题从暴出问题的服务开始一个一个服务的排查,耗时耗力,有些日志不全的,还不一定查得出来。好在现在有Skywalking链路追踪系统,可以不用写任何代码,就追踪到各个服务间的调用关系和性能状态等。
本文将从0开始搭建两个webapi项目,使用Skywalking来追踪他们之间的调用关系及响应时间。开发环境为VisualStudio2019
1.1.安装skywalking
安装skywalking会遇到好多坑,首先安装不一定成功,访问8080端口监控页面会出现很多问题。即使监控页面正常了,netcore程序也有可能监控不到,因为链接11800会失败,多数因为skwwalking和elasticsearch版本的问题引起的。因为存储多数选择是elasticsearch,所以这里是以这个为主。像下面通过docker-compose来安装。
文件如下:
version: '3.3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
container_name: elasticsearch
restart: always
ports:
- 9200:9200
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms256m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
oap:
image: apache/skywalking-oap-server:7.0.0-es7
container_name: oap
depends_on:
- elasticsearch
links:
- elasticsearch
restart: always
ports:
- 11800:11800
- 12800:12800
environment:
SW_STORAGE: elasticsearch7
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
ui:
image: apache/skywalking-ui:7.0.0
container_name: ui
depends_on:
- oap
links:
- oap
restart: always
ports:
- 8080:8080
environment:
SW_OAP_ADDRESS: oap:12800
安装完后查看一下服务是否正常,三个程序分别是elastic、skwwalking、skwwalkingui:

1.2 查看elastic和监控页面是否正常,连接分别为 安装skwwalking服务器ip:9200、安装skwwalking服务器ip:8080,如果遇到端口占用,提前更换:


2.上netcore程序,这里先跑两个程序
2.1.新增第一个netcore程序,我这里是net5。

2.2 安装依赖 SkyAPM.Agent.AspNetCore,版本我选最好0.9.0。(有需要先保证安装服务正常,程序监控正常后再着手升级其他的各个版本。)

2.3 增加skyapm.json文件,记得属性 复制到输出目录里面设置 始终复制,防止配置文件修改不生效踩坑。这里需要注意的两个地方是1.ServiceName应该是当前程序的名字,Services是skwwalking服务器ip:11800。
{
"SkyWalking": {
"ServiceName": "SkyWalkingDemo",
"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": "skywalking服务器ip:11800",
"Timeout": 10000,
"ConnectTimeout": 10000,
"ReportTimeout": 600000
}
}
}
}
2.4 程序launchSettings.json里面加上一行 "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore" ,如果用的iis express启动一样需要加到iis express配置下面。如下:

2.5 运行起来后监控画面是这样的:

3 再新增一个程序,
3.1 新建程序步骤和2.1是一样的,后面设置不再赘述,启动的地址我改了,比较懒第一个启动后第二个的地址不能用一样的。程序如下:

3.2 这里新增了一个controller控制器做测试,比较随便代码如下,做什么很清楚了:

3.3 监控结果是这样的:



说完了,这里只是一个简单的安装和演示,有实际需要需要自己再做进一步的研究,因为实际项目需要的可多了。
net core下链路追踪skywalking安装和简单使用的更多相关文章
- spring cloud 服务链路追踪 skywalking 6.1
随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务.互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发.可能使用不同的编程语言来实现.有可能布在了 ...
- mac下的git的安装与简单的配置
git 本地操作 git 简单介绍 .Git是分布式的SCM,SVN是集中式的 2.Git每一个历史版本号存储完整的文件,SVN存储文件差异 3.Git可离线完毕大部分操作,SVN则相反 4.Git有 ...
- Windows下node-gyp查找VS安装路径简单解析
node-gyp的作用我已经不想赘述了,这里给一个我之前文章的链接:cnblogs看这里,知乎看这里.本文主要从源码入手,介绍node-gyp查找VisualStudio的过程 为了方便我们研究nod ...
- Windows Server 2003下DHCP服务器的安装与简单配置图文教程
在前面的内容中,我们提到了DHCP这个词,为什么要用到DHCP呢,企业里如果有100台计算机,那样,我们一台台的进行配置Ip,我想还是可以的,因为少嘛,如果成千上万台,那我们也去一台台的配置,我相信这 ...
- Centos7下关于memcached的安装和简单使用
在这里,由于用编译安装memcached服务端过于复杂,因此我选用依赖管理工具 yum 来实现 memcached 的服务端安装: [root@localhost /]# yum install -y ...
- .NET Core集成SkyWalking+SkyAPM-dotne实现分布式链路追踪
.NET Core集成SkyWalking+SkyAPM-dotnet实现分布式链路追踪 SkyWalking是一款APM(应用性能管理),其他的还有Cat.Zipkin.Pinpoint等. 随着微 ...
- NET Core微服务之路:实战SkyWalking+Exceptionless体验生产环境下的追踪系统
前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的问题: 从APM上说,知道某个节点出现异常,或延迟过过高,却不能及时知道日志反馈情况,总不可能去相应的节点 ...
- NET Core微服务之路:SkyWalking+SkyApm-dotnet分布式链路追踪系统的分享
对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk或splunk进行定位及分析问题,更有甚者直接远程服务器,直接操作查看日志,那么,随着业务越来越复杂,企业应用也进入了分布式服务化的 ...
- .NET6接入Skywalking链路追踪完整流程
一.Skywalking介绍 Skywalking是一款分布式链路追踪组件,什么是链路追踪? 随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务.互联网应用构建在不同的软 ...
- Skywalking 链路追踪
Skywalking 根据官方的解释,Skywalking是一个可观测性平台(Observability Analysis Platform简称 OAP)和应用性能管理系统(Application P ...
随机推荐
- Informix日志报错:Could not do a physical-order read to fetch netxt row
jmeter请求接口,1线程不报错,2线程及以上报错"无法执行查询",看后台日志,报错Could not do a physical-order read to fetch net ...
- GWD:基于高斯Wasserstein距离的旋转目标检测 | ICML 2021
论文详细描述了当前旋转目标检测的主要问题,提出将旋转回归目标定义为高斯分布,使用Wasserstein距离度量高斯分布间的距离用于训练.目前,常规目标检测也有很多将回归转化为概率分布函数的做法,本 ...
- KingbaseES V8R6运维案例之---数据库resetwal后启动失败
KingbaseES V8R6运维案例之---数据库resetwal后启动失败 案例说明: KingbaseES V8R6集群触发failover切换后,原主库自动recovery失败,现在需要将原主 ...
- KingbaseES 配置 Hugepage
前言 大页的作用是为了提升内存管理的效率,减少内存管理资源消耗(节省pagetable的开销),特别是对于大内存的情况,同时,由于hugepage相对与4k的页面,它更不容易被交换出内存,因此,它的作 ...
- KingbaseES 的oracle兼容性参数
KingbaseES用户可通过设置相关的数据库兼容参数,部分或全部启用Oracle兼容特性. 常用的兼容性参数有以下这些: 参数名称 参数说明 ora_forbid_func_polymorphism ...
- [Unity] 为什么文件名和类名需要相同
挂载脚本时文件名和类名的关联方式 写过Unity脚本的人应该都知道,挂载脚本的文件名和类名必须相同 今天写新功能的时候偶然发现了这个规则的底层逻辑 并且发现这个规则并非必须的,实际上Unity是根据脚 ...
- Jetty的模块
查看模块的列表,执行如下命令: java -jar $JETTY_HOME/start.jar --list-modules 启用模块,比如http模块,执行如下命令: java -jar $JETT ...
- OpenHarmony 3.2 Beta多媒体系列——音视频播放gstreamer
一. 简介 多媒体播放框架主要的实现在PlayerServer服务中,这个服务提供了媒体播放框架所需要的实现环境,继续跟踪代码分析发现,PlayerServer主要通过gstreamer适配层,对 ...
- C语言 06 无符号数
所有的数据底层都是采用二进制来进行保存的. 第一位用于保存符号位. 如果不考虑这个符号位,那么所有的数都是按照正数来表示. 比如考虑了符号位的 char 类型: 考虑符号表示范围:-128 ~ 127 ...
- Windows wsl2安装Docker
wsl2的Ubuntu安装好后,就可以安装Docker了. 由于众所周知的原因,国内访问国外的某些网站会访问不了或者访问极慢,Docker的安装网站就在其中. 所以推荐使用阿里的镜像进行安装. 1.使 ...