在大型网站系统设计中,随着分布式架构,特别是微服务架构的流行,我们将系统解耦成更小的单元,通过不断的添加新的、小的模块或者重用已经有的模块来构建复杂的系统。随着模块的不断增多,一次请求可能会涉及到十几个甚至几十个服务的协同处理,那么如何准确快速的定位到线上故障和性能瓶颈,便成为我们不得不面对的棘手问题。

为解决分布式架构中复杂的服务定位和性能问题,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.nameCollectorDBCluster。然后部署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视图

  1. SkyWalking Github Repo: https://github.com/apache/incubator-skywalking

  2. SkyWalking-NetCore Github Repo: https://github.com/OpenSkywalking/skywalking-netcore

相关文章:

  • ApacheSkyWalking APM 生态衍生多语言监控, 支持 .NET Core

  • 可观测性与原生云监控

  • 听云支持.NET Core的应用性能监控

原文地址: http://www.cnblogs.com/liuhaoyang/p/skywalking-dotnet-v02-release.html


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

Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控相关推荐

  1. 美女同事的烦恼:如何配置 Apache SkyWalking 告警?

    小婉 技术部基本上是一个和尚庙,女生非常少,即使有女生也略微有点抽象,小婉就不一样,她气质绝佳. 上午,同事小婉刚才从老板办公室里出来,看上去一脸不悦的样子.为了表示对同事的关(ba)心(gua),我 ...

  2. 实锤被抓包!字节跳动违反Apache 2.0许可证,在火山引擎里违规重新发布Apache SkyWalking!...

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 整理自:云头条 火山引擎公司的Application Performance Monitoring - Distrib ...

  3. 安装-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 ...

  4. Alibaba微服务整合SkyWalking实现应用性能监控

    1. 概述 SkyWalking是一个国产的开源框架,用于分布式系统应用程序的性能监控,专门为微服务.云原生架构和基于容器(Docker.K8s.Mesos)架构而设计,包括了分布式追踪.性能指标分析 ...

  5. Apache SkyWalking入门学习笔记

    文章目录 1.概念与设计 1.1 SkyWalking是什么 1.2 为什么使用SkyWalking和核心概念 1.3 架构 1.4 设计目标 1.5 探针Probe 2. 搭建服务 Quick St ...

  6. Apache SkyWalking的架构设计【译文】

    Apache SkyWalking提供了一个功能强大并且很轻量级的后端.在此,将介绍为什么采用以下方式来设计它,以及它又是如何工作的. 架构图 对于APM而言,agent或SDKs仅是如何使用libs ...

  7. Apache SkyWalking Java Agent 05-插件加载机制(下)

    基于 SkyWalking Java Agent 8.8.0 版本 上一篇文章中我们重点分析了自定义类加载器 AgentClassLoader.initDefaultLoader() 部分,Agent ...

  8. 火山引擎被谴责不尊重开源规则,非法重新发布Apache SkyWalking

     关注ITValue,看企业级最新鲜.最价值报道! 钛媒体App 1月29日消息,火山引擎不尊重开源规则,非法重新发布Apache SkyWalking 的消息受到业界关注.Apache SkyWal ...

  9. Apache Skywalking 视频教程

    Apache Skywalking 原创视频教程,于2018年在哔哩哔哩平台发布.持续更新中. Skywalking 定位于一款专为微服务.云原生架构和基于容器(Docker.K8s.Nesos)架构 ...

最新文章

  1. 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)
  2. 【一步步学小程序】3. 使用自定义组件(component)
  3. 15 个 JavaScript Web UI 库
  4. ASP.NET用户登录模块代码
  5. linux网络设备驱动结构体,Linux网络设备驱动之设备驱动的注册与注销(二)
  6. Excel 设定密码保护特定的内容
  7. ngnix之lnmp环境搭建及Dvbbs搭建
  8. Docker最全教程之Ubuntu下安装Docker(十五)
  9. Bootstrap表单
  10. html基本标签练习
  11. c语言sizeof输出单位,急,求大神!C语言中sizeof问题
  12. java发送电子邮件以qq邮箱为例
  13. 老年人健康管理系统技术开发
  14. 【爱心】JAVA表白代码——属于程序员的浪漫
  15. 树莓派 python驱动蜂鸣器
  16. 会matlab的简历怎么写,算法工程师简历项目经验填写样本
  17. 【imx6ul】imx6ul上电boot rom启动过程
  18. printf()中%n格式说明符
  19. 数据库,计算机网络、操作系统刷题笔记20
  20. ChatGPT真的像媒体宣传的那样“四平八稳”吗?

热门文章

  1. 7.16 10.19-10.22
  2. java多线程编程——锁优化
  3. 第 133 章 FAQ
  4. 使用WebSocket绕过广告屏蔽插件
  5. JQuery上传插件Uploadify使用详解
  6. wpf 可以取消的单选checkbox
  7. DateOnly和TimeOnly类型居然不能序列化!!! .Net 6下实现自定义JSON序列化
  8. 【DotNetMLLearn】.NET Core 人工智能系列-.NET Interactive环境介绍
  9. 宠粉老鱼皮带你 “入坑” GitHub!
  10. 如何在 C# 中使用 Exceptionless