Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控
在大型网站系统设计中,随着分布式架构,特别是微服务架构的流行,我们将系统解耦成更小的单元,通过不断的添加新的、小的模块或者重用已经有的模块来构建复杂的系统。随着模块的不断增多,一次请求可能会涉及到十几个甚至几十个服务的协同处理,那么如何准确快速的定位到线上故障和性能瓶颈,便成为我们不得不面对的棘手问题。
为解决分布式架构中复杂的服务定位和性能问题,Google在论文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》中提出了分布式跟踪系统的设计和构建思路。在这样的背景下,Apache SkyWalking创建于2015年,参考Dapper论文实现分布式追踪功能,并逐渐进化为一个完整功能的Application Performance Management系统,用于追踪、监控和诊断大型分布式系统,尤其是容器和云原生下的微服务系统。
今年初我在尝试使用.NET Core构建分布式追踪系统Butterfly时接触到SkyWalking团队,开始和SkyWalking团队合作探索SkyWalking对.NET Core的支持,并于4月发布SkyWalking .NET Core探针的第一个版本,同时我也有幸加入SkyWalking团队共同进行SkyWalking在多语言生态的推动。在.NET Core探针v0.1版本发布之后,得到了一些同学的尝鲜使用,也得到诸多改进的建议。经过几周的迭代,SkyWalking .NET Core探针于今天发布v0.2 release,在v0.1的基础上增加了稳定性和HttpClient及数据库驱动的追踪支持。
在使用SkyWalking对.NET Core应用追踪之前,我们需要先部署SkyWalking Collector收集分析Trace和Elasticsearch作为Trace数据存储。SkyWalking支持5.x的ES,所以我们需要下载安装对应版本的ES,并配置ES的cluster.name为CollectorDBCluster。然后部署SkyWalking 5.0 beta或更高版本(下载地址:http://skywalking.apache.org/downloads/)。更详细的Collector部署文档,请参考Deploy-backend-in-standalone-mode和Deploy-backend-in-cluster-mode。
最后我们使用示例项目来演示在.NET Core应用中使用SkyWalking进行追踪和监控,克隆SkyWalking-NetCore项目到本地
git clone https://github.com/OpenSkywalking/skywalking-netcore.git
进入skywalking-netcore目录
cd skywalking-netcore
还原nuget package:
dotnet restore
启动示例项目:
dotnet run -p sample/SkyWalking.Sample.Backend
dotnet run -p sample/SkyWalking.Sample.Frontend
访问示例应用 http://localhost:5001/api/values
打开SkyWalking WebUI即可看到我们的应用监控面板 http://localhost:8080
Dashboard视图

TopologyMap视图

Application视图

Trace视图

TraceDetails视图

- SkyWalking Github Repo: https://github.com/apache/incubator-skywalking
- SkyWalking-NetCore Github Repo: https://github.com/OpenSkywalking/skywalking-netcore
- 本文首发地址:个人博客-倾竹
Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控的更多相关文章
- SkyWalking 为.NET Core
SkyWalking 为.NET Core https://www.cnblogs.com/liuhaoyang/p/skywalking-dotnet-v02-release.html Apache ...
- Apache SkyWalking 告警配置指南
Apache SkyWalking Apache SkyWalking是分布式系统的应用程序性能监视工具(Application Performance Management,APM),专为微服务.云 ...
- 安装-apache skywalking (java 应用性能监控)
官网:http://skywalking.apache.org/ 服务器:10.30.31.28 centos 7 jdk 1.8.x ES 5.x 5.0.0-bet a2版本 . http://s ...
- .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...
- Apache SkyWalking
Apache SkyWalking 什么是 SkyWalking SkyWalking 是观察性分析平台和应用性能管理系统. 提供分布式追踪.服务网格遥测分析.度量聚合和可视化一体化解决方案. 支持J ...
- Apache SkyWalking的架构设计【译文】
Apache SkyWalking提供了一个功能强大并且很轻量级的后端.在此,将介绍为什么采用以下方式来设计它,以及它又是如何工作的. 架构图 对于APM而言,agent或SDKs仅是如何使用libs ...
- What is the difference between apache tomcat deployer and core version? - Stack Overflow
java - What is the difference between apache tomcat deployer and core version? - Stack Overflowhttps ...
- 问题排查之'org.apache.rocketmq.spring.starter.core.RocketMQTemplate' that could not be found.- Bean method 'rocketMQTemplate' in 'RocketMQAutoConfiguration' not loaded.
背景 今天将一个SpringBoot项目的配置参数从原有的.yml文件迁移到Apollo后,启动报错“Bean method 'rocketMQTemplate' in 'RocketMQAutoCo ...
- PWC6199:Generated servlet error:Only a type can be imported. org.apache.jasper.tagplugins.jstl.core.ForEach resolves to a package
<%@ import="org.apache.jasper.tagplugins.jstl.core.ForEach"%> 去掉这条语句,就不报错了.所以问题就出在这里 ...
随机推荐
- PLSQL 创建自定义函数注意事项
2017-6-8周四,今天遇到的需求是,从数据库中查找出某张表的某些数据,并将这些数据做简单的加减运算再得到结果集,没有思路,后来问辉哥,给我的建议是给这些运算封装成一个SQL函数,select选择字 ...
- Git的fast forward和no fast forward和 three way merge 以及squash(聚合)
github上上传了版本库https://github.com/ChuckGitMerge 包括merge和rebase 没时间画图,貌似也不太会用画图工具,先写了一个文字版本的 更新:2015年 ...
- linux 下查看wwn号
PC server主机与FC存储进行连接时,一般需要加装HBA卡,两者之间衔接的一个重要参数就是wwn号.redhat或suse下查看wwn号的方法如下.一.SuSE Linux 9查看 /proc/ ...
- Google揭开Mesa的神秘面纱——一个具备跨地域复制和近实时特性的可伸缩数据仓库
http://www.infoq.com/cn/news/2014/08/google-data-warehouse-mesa Google发表了一篇新的论文,该论文描述了他们内部所使用的一个被称为M ...
- eclipse web开发Server配置
用 Tomcat 和 Eclipse 开发 Web 应用程序:http://www.ibm.com/developerworks/cn/opensource/os-eclipse-tomcat/ Ec ...
- MySQL中的外键约束
- 前端工程化(二)---webpack配置
导航 前端工程化(一)---工程基础目录搭建 前端工程化(二)---webpack配置 前端工程化(三)---Vue的开发模式 前端工程化(四)---helloWord 继续上一遍的配置,本节主要记录 ...
- centOS7固定IP
接续安装完成centOS虚拟机后,重启完成后,会出现如下的界面: 这里,我们使用root帐号和已配置的root密码进行登陆,登陆完成后,输入如下命令,运行结果如下图: dhclient 通过上述命令, ...
- Diffie-Hellman密钥协商算法
一.概述 Diffie-Hellman密钥协商算法主要解决秘钥配送问题,本身并非用来加密用的:该算法其背后有对应数学理论做支撑,简单来讲就是构造一个复杂的计算难题,使得对该问题的求解在现实的时间内无法 ...
- spring中注解式事务不生效的问题
常用的解决方法可以百度,我针对我的问题描述一下 Mysql中InnoDB引擎才支持事务, MyISAM不支持事务. 当你尝试了各种方法解决spring中注解式事务不生效时, 一定要查看一下数据库中表的 ...