Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控
在大型網(wǎng)站系統(tǒng)設(shè)計中,隨著分布式架構(gòu),特別是微服務(wù)架構(gòu)的流行,我們將系統(tǒng)解耦成更小的單元,通過不斷的添加新的、小的模塊或者重用已經(jīng)有的模塊來構(gòu)建復(fù)雜的系統(tǒng)。隨著模塊的不斷增多,一次請求可能會涉及到十幾個甚至幾十個服務(wù)的協(xié)同處理,那么如何準(zhǔn)確快速的定位到線上故障和性能瓶頸,便成為我們不得不面對的棘手問題。
為解決分布式架構(gòu)中復(fù)雜的服務(wù)定位和性能問題,Google在論文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》中提出了分布式跟蹤系統(tǒng)的設(shè)計和構(gòu)建思路。在這樣的背景下,Apache SkyWalking創(chuàng)建于2015年,參考Dapper論文實現(xiàn)分布式追蹤功能,并逐漸進(jìn)化為一個完整功能的Application Performance Management系統(tǒng),用于追蹤、監(jiān)控和診斷大型分布式系統(tǒng),尤其是容器和云原生下的微服務(wù)系統(tǒng)。
今年初我在嘗試使用.NET Core構(gòu)建分布式追蹤系統(tǒng)Butterfly時接觸到SkyWalking團(tuán)隊,開始和SkyWalking團(tuán)隊合作探索SkyWalking對.NET Core的支持,并于4月發(fā)布SkyWalking .NET Core探針的第一個版本,同時我也有幸加入SkyWalking團(tuán)隊共同進(jìn)行SkyWalking在多語言生態(tài)的推動。在.NET Core探針v0.1版本發(fā)布之后,得到了一些同學(xué)的嘗鮮使用,也得到諸多改進(jìn)的建議。經(jīng)過幾周的迭代,SkyWalking .NET Core探針于今天發(fā)布v0.2 release,在v0.1的基礎(chǔ)上增加了穩(wěn)定性和HttpClient及數(shù)據(jù)庫驅(qū)動的追蹤支持。
在使用SkyWalking對.NET Core應(yīng)用追蹤之前,我們需要先部署SkyWalking Collector收集分析Trace和Elasticsearch作為Trace數(shù)據(jù)存儲。SkyWalking支持5.x的ES,所以我們需要下載安裝對應(yīng)版本的ES,并配置ES的cluster.name為CollectorDBCluster。然后部署SkyWalking 5.0 beta或更高版本(下載地址:http://skywalking.apache.org/downloads/)。更詳細(xì)的Collector部署文檔,請參考Deploy-backend-in-standalone-mode和Deploy-backend-in-cluster-mode。
最后我們使用示例項目來演示在.NET Core應(yīng)用中使用SkyWalking進(jìn)行追蹤和監(jiān)控,克隆SkyWalking-NetCore項目到本地
git clone https://github.com/OpenSkywalking/skywalking-netcore.git進(jìn)入skywalking-netcore目錄
cd skywalking-netcore還原nuget package:
dotnet restore啟動示例項目:
dotnet run -p sample/SkyWalking.Sample.Backend dotnet run -p sample/SkyWalking.Sample.Frontend訪問示例應(yīng)用?http://localhost:5001/api/values
打開SkyWalking WebUI即可看到我們的應(yīng)用監(jiān)控面板?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
相關(guān)文章:
ApacheSkyWalking APM 生態(tài)衍生多語言監(jiān)控, 支持 .NET Core
可觀測性與原生云監(jiān)控
聽云支持.NET Core的應(yīng)用性能監(jiān)控
原文地址: http://www.cnblogs.com/liuhaoyang/p/skywalking-dotnet-v02-release.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的Apache SkyWalking 为.NET Core带来开箱即用的分布式追踪和应用性能监控的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net core在网关中统一配置Swa
- 下一篇: .NET Core 跨平台执行命令、脚本