1. 程式人生 > >Apache SkyWalking 為.NET Core帶來開箱即用的分散式追蹤和應用效能監控

Apache SkyWalking 為.NET Core帶來開箱即用的分散式追蹤和應用效能監控

在大型網站系統設計中,隨著分散式架構,特別是微服務架構的流行,我們將系統解耦成更小的單元,通過不斷的新增新的、小的模組或者重用已經有的模組來構建複雜的系統。隨著模組的不斷增多,一次請求可能會涉及到十幾個甚至幾十個服務的協同處理,那麼如何準確快速的定位到線上故障和效能瓶頸,便成為我們不得不面對的棘手問題。

今年初我在嘗試使用.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-modeDeploy-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

Dashboard檢視

TopologyMap檢視

Application檢視

Trace檢視

TraceDetails檢視

相關推薦

Apache SkyWalking .NET Core帶來開箱分散式追蹤應用效能監控

在大型網站系統設計中,隨著分散式架構,特別是微服務架構的流行,我們將系統解耦成更小的單元,通過不斷的新增新的、小的模組或者重用已經有的模組來構建複雜的系統。隨著模組的不斷增多,一次請求可能會涉及到十幾個甚至幾十個服務的協同處理,那麼如何準確快速的定位到線上故障和效能瓶頸,便成為我們不得不面對的棘手問題。

SkyWalking .NET Core

使用 HR 同學 sca 個人博客 應用監控 topology 為我 api SkyWalking 為.NET Core https://www.cnblogs.com/liuhaoyang/p/skywalking-dotnet-v02-release.html Apac

開箱~基於.NET Core的統一應用邏輯分層框架設計

目前公司系統多個應用分層結構各不相同,給運維和未來的開發帶來了巨大的成本,分層架構看似很簡單,但保證整個研發中心都使用統一的分層架構就不容易了。 那麼如何保證整個研發中心都使用統一的分層架構,以達到提高編寫程式碼效率、保證工程統一性的目的? 這裡給出個人的規劃設計,希望對你有所啟發。 1.分層目

[Hei-Ocelot-Gateway ].Net Core Api閘道器Ocelot的開箱版本

![Containerizing ASP.net core API Gateways](https://img2020.cnblogs.com/blog/641760/202008/641760-20200816225054695-1519401431.png) # 寫在前面 很多neter都有在用[O

Dora.Interception,.NET Core度身打造的AOP框架:全新的版本

分享 ide 1.0 nuget hub tex 普通 inb .class Dora.Interception 1.0(Github地址:可以訪問GitHub地址:https://github.com/jiangjinnan/Dora)推出有一段時間了,最近花了點時間將它

在Linux環境下使用Apache部署ASP.NET Core

tgt tab dot sce aaa target 部署 AI startup 在前幾篇文章中我們一起探討了如何在Linux環境中安裝ASP.NET Core運行時環境及將ASP.NET Core項目部署在Jexus中,這篇文章中我們將探討如何將ASP.NET Core部

CamStar insitexmlclient重新封裝.net Core類庫

工作原因經常使用camstar的 InsiteXMLClient類庫做二次開發,但是隻能在4.X環境下使用,對於日益繁榮的.net core生態,花費了些時間把原有的類庫重新封裝為.net core 類庫,並在實際環境中測試通過。 1.類庫不再使用camstar的命名方式,介面統一以I開頭 2.把原有的依

Dora.Interception,.NET Core度身打造的AOP框架 [1]:更加簡練的程式設計體驗

很久之前開發了一個名為Dora.Interception的開源AOP框架(github地址:https://github.com/jiangjinnan/Dora,如果你覺得這個這框架還有那麼一點價值,請不吝多點一顆星),最近對它作了一些改進(包括程式設計模式和效能,目前版本升級到2.1.2)。一直以來我對軟

Dora.Interception,.NET Core度身打造的AOP框架 [2]:以約定的方式定義攔截器

上一篇《更加簡練的程式設計體驗》提供了最新版本的Dora.Interception程式碼的AOP程式設計體驗,接下來我們會這AOP框架的程式設計模式進行詳細介紹,本篇文章著重關注的是攔截器的定義。採用“基於約定”的Interceptor定義方式是Dora.Interception區別於其他AOP框架的一個顯著

Dora.Interception,.NET Core度身打造的AOP框架 [3]:多樣化攔截器應用方式

Dora.Interception,為.NET Core度身打造的AOP框架 [3]:多樣化攔截器應用方式 在《以約定的方式定義攔截器》中,我們通過對攔截器的介紹了Dora.Interception的兩種攔截機制,即針對介面的“例項攔截”針對虛方法的“型別攔截”。我們介紹了攔截器的本質以及基於約

Dora.Interception,.NET Core度身打造的AOP框架 [5]:輕鬆地實現與其他AOP框架的整合

  Dora.Interception,為.NET Core度身打造的AOP框架 [5]:輕鬆地實現與其他AOP框架的整合 這裡所謂的與第三方AOP框架的整合不是說改變Dora.Interception現有的程式設計,而是恰好相反,即在不改變現有程式設計模式下采用第三方AOP框架或

Dora.Interception,.NET Core度身打造的AOP框架 [4]:與依賴註入框架的無縫集成

add type() style 約定 star sea 進行 builder bject   Dora.Interception最初的定位就是專門針對.NET Core的AOP框架,所以在整個叠代過程中我大部分是在做減法。對於.NET Core程序開發來說,依賴註入已經

.NET Core專案定義Item Template

作為這個星球上最強大的IDE,Visual Studio不僅僅提供了很多原生的特性,更重要的是它是一個可定製的IDE,比如自定義Project Template和Item Template就是一個非常有用的擴充套件點。這裡我們主要關注Item Template,它時我們可以在“Add new Item”對話方

[C#]使用 Jenkins + TFS .Net Core 實現持續整合/部署

在前後端分離開發的專案當中為了避免重複構建釋出,我們需要部署一個持續釋出環境,而目前的開發環境伺服器都是基於 CentOS 的,因此每次在本地釋出之後還需要打包,上傳,部署,十分繁瑣。故這裡採用了比較成熟的Jenkins 作為持續部署環境。 為了方便安裝,我們這裡使用了 Docker 來進行安裝,至於 Doc

使用xUnit.net core程式進行單元測試(3)

測試的分組 開啟Game.Tests裡面的BossEnemyShould.cs, 為HaveCorrectPower方法新增一個Trait屬性標籤: [Fact] [Trait("Category", "Enemy")] public v

使用xUnit.net core程式進行單元測試(4)

資料驅動的測試 開啟PlayerCharacterShould.cs 新增幾個Fact測試方法: [Fact] public void TakeZeroDamage() { _sut.TakeDamage(

使用xUnit.net core程式進行單元測試 -- Assert

Assert Assert做什麼?Assert基於程式碼的返回值、物件的最終狀態、事件是否發生等情況來評估測試的結果。Assert的結果可能是Pass或者Fail。如果所有的asserts都pass了,那麼整個測試就pass了;如果有任何assert fail了,那麼測試就fail了。 xUnit提供

使用xUnit.net core程式進行單元測試(1)

導讀 為什麼要編寫自動化測試程式(Automated Tests)? 可以頻繁的進行測試 可以在任何時間進行測試,也可以按計劃定時進行,例如:可以在半夜進行自動測試。 肯定比人工測試要快。 可以更快速的發現錯誤。 基本上是非常可靠的。 測試程式碼與生產程式碼緊密結合。 使得開發團隊更具有幸

Jenkins 結合 Docker .NET Core 專案實現低配版的 CI&CD

隨著專案的不斷增多,最開始單體專案手動執行 docker build 命令,手動釋出專案就不再適用了。一兩個專案可能還吃得消,10 多個專案每天讓你構建一次還是夠嗆。即便你的專案少,每次花費在釋出上面的時間累計起來都夠你改幾個 BUG 了。 所以我們需要自動化這個流程,讓專案的釋出和測試不再這麼繁瑣。在這裡我

如何使用Swagger.NET Core 3.0應用新增JWT授權說明文件

簡介 本教程採用WHY-WHAT-HOW黃金圈思維模式編寫,黃金圈法則強調的是從WHY為什麼學,到WHAT學到什麼,再到HOW如何學。從模糊到清晰的學習模式。大家的時間都很寶貴,我們做事前先想清楚為什麼要做,學完能達到什麼樣的目標,然後我們再考慮要達到這個目的,通過什麼樣的方法來實現。 嘗試一些事,遭遇失敗