1. 程式人生 > >SkyWalking 為.NET Core

SkyWalking 為.NET Core

使用 HR 同學 sca 個人博客 應用監控 topology 為我 api

SkyWalking 為.NET Core

https://www.cnblogs.com/liuhaoyang/p/skywalking-dotnet-v02-release.html

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
本文首發地址:個人博客-傾竹

SkyWalking 為.NET Core