1. 程式人生 > >Skywalking Node.js 現支援 Egg 框架呼叫鏈追蹤

Skywalking Node.js 現支援 Egg 框架呼叫鏈追蹤

是專門為微服務架構和雲原生架構系統而設計的能夠支援分散式鏈路追蹤的APM系統。通過給應用載入探針的方式收集應用呼叫鏈路資訊,Skywalking後臺對採集的呼叫鏈路資訊進行分析,感知應用間關係和服務間關係以及生成相應的服務指標。目前Apache Skywalking (Incubating)已支援Java,.Net Core 和 Node.js 語言的監控,並保證多個語言系統之間能夠分散式呼叫鏈路不斷。

探針是Skywalking為Node.js應用提供的自動探針,主要用於監控使用Node.js的編寫的服務端應用,Skywalking Node.js探針已支援多個外掛,例如Http,Mysql等,Node.js探針計劃在未來的幾個版本中提供更加多的外掛。目前Node.js探針開始收集支援元件或者框架的,如果有想讓Skywalking Node.js探針支援的框架或者元件,可以在issue下留下框架或元件名字以及測試demo,將盡最大可能地提供可支援的外掛,同時也歡迎各位提出意見以及改進。

廢話不多說,是時候展現真正的技術了。本次準備的共分為兩部分:單應用和多應用,單應用測試功能,多應用主要測試跨應用的呼叫鏈功能。

採用了框架編寫,並使用了egg mysql 外掛,業務流程相對簡單,主要的執行流程為:Controller mdash; Service mdash; Mysql,以下是通過Skywalking Node.js探針監控上報資料的截圖:總覽圖:拓撲圖:服務檢視:應用檢視:呼叫鏈:Span資訊:

在面對跨應用場景,測試demo共分為兩個工程:egg-projectA和egg-projectB,其中egg-projectA工程通過http client呼叫egg-projectB提供的服務,egg-projectA和egg-projectB分別呼叫資料庫一次,下圖為Skywalking UI的資料截圖總覽圖:拓撲圖:egg-projectA服務圖egg-projectB服務圖egg-projectA應用圖egg-projectB應用圖Trace圖Span圖

從兩個demo效果可以看出,Skywalking Node.js探針目前已經支援egg framework追蹤,並且在多個egg應用之間可以進行跨應用追蹤。在後續版本中,Skywalking Node.js 探針將會根據社群的反饋持續改進。

介紹完demo效果之後,簡單介紹下如何安裝Node.js探針作為文章的結束。Skywalking Node.js 探針考慮到減少對應用系統的侵入性,所以採用了hook模式,這樣使得Skywalking Node.js探針在安裝變得非常簡單,並且能夠做到最大程度上的不對應用原始碼進行修改。安裝Skywalking Node.js 探針只需要簡單的兩步:第一步:下載探針

$npminstallskywalking-nodejs--save第二步:安裝探針注意:在應用啟動入口的第一行,新增下面這些配置:

如果您在使用Skywalking Node.js探針有任何問題,可以通過以下方式聯絡我們:1. 提交issue2. 發郵件給[email protected]