基于SkyWalking的分布式跟蹤系統(tǒng) - 微服務監(jiān)控

上一篇文章我們搭建了基于SkyWalking分布式跟蹤環(huán)境,今天聊聊使用SkyWalking監(jiān)控我們的微服務(DUBBO)

服務案例

假設你有個訂單微服務娄猫,包含以下組件

  • MySQL數(shù)據(jù)庫分表分庫(2臺)
  • 生產(chǎn)者(2臺) dubbo-provider
  • 消費者 dubbo-consumer

網(wǎng)絡拓撲圖如下


image

生產(chǎn)者的關鍵代碼

@Service
public class OrderServiceImpl implements OrderService {

    @Autowired
    protected OrderMapper orderMapper;

    @Override
    public OrderVO getById(long id) {
        OrderVO orderVO = new OrderVO();
        Order order = orderMapper.selectById(id);
        BeanUtils.copyProperties(order,orderVO);
        return orderVO;
    }
}

消費者的關鍵代碼

@RestController
public class OrderController {

    @Reference(retries = 0)
    private OrderService orderService;

    @GetMapping("/order/{id}")
    public OrderVO getOrder(@PathVariable long id){
        return orderService.getById(id);
    }

}

監(jiān)控啟動

  • 使用 javaagent 啟動生產(chǎn)者

    -javaagent:E:\訊飛開發(fā)工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-provider -Dskywalking.collector.backend_service=192.168.136.129:11800

    -javaagent:E:\訊飛開發(fā)工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-provider2 -Dskywalking.collector.backend_service=192.168.136.129:11800

  • 啟動消費者
    -javaagent:E:\訊飛開發(fā)工具\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=dubbo-consumer -Dskywalking.collector.backend_service=192.168.136.129:11800

  • 模擬請求
    在瀏覽器訪問http://localhost:9090/order/1184489161562816511,多次調用使負載生效;修改訂單id參數(shù)翘狱,讓調用覆蓋不同的數(shù)據(jù)庫

  • 效果查看
    訪問skywalking監(jiān)控地址http://192.168.136.129:8080/查看監(jiān)控效果

    image

    儀表盤
    image

    網(wǎng)絡拓撲圖
    image

    錯誤日志
    image

    Trace查詢

日志集成

這部分我們先看下調用鏈的原理:

  • 請求到來生成一個全局TraceID坯约,通過TraceID可以串聯(lián)起整個調用鏈熊咽,一個TraceID代表一次請求。
  • 除了TraceID外闹丐,還需要SpanID用于記錄調用父子關系横殴。每個服務會記錄下Parent id和Span id,通過他們可以組織一次完整調用鏈的父子關系卿拴。
  • 要查看某次完整的調用則只要根據(jù)TraceID查出所有調用記錄衫仑,然后通過Parent id和Span id組織起整個調用父子關系。

正是由于TraceID如此重要堕花,所以我們希望這個調用鏈的TraceID能輸出在日志文件中文狱,一旦觀察到有異常調用,我們在日志分析平臺直接搜索TraceID即可將關聯(lián)的日志全部檢索出來航徙,大大提高我們解決問題的效率如贷。

集成過程(log4j2)

  • 引入日志包log4j2

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    
  • 引入SW工具包

     <!--SW trace 跟蹤-->
    <dependency>
        <groupId>org.apache.skywalking</groupId>
        <artifactId>apm-toolkit-log4j-2.x</artifactId>
        <version>6.4.0</version>
    </dependency>
    
  • 修改日志顯示格式 log4j2.xml
    %d [%traceId] %-5p %c{1}:%L - %m%n

  • 啟動應用,觀察控制臺


    image

    剛啟動時候獲取不到TraceID,所以TID顯示為N/A到踏,啟動完成后調用請求再次觀察控制臺杠袱,發(fā)現(xiàn)所有鏈路上的日志都打上了TraceID。


    image

很簡單的幾步就讓你的微服務加上了調用鏈監(jiān)控窝稿,你還不趕緊試試楣富?

相關文章:
基于SkyWalking的分布式跟蹤系統(tǒng) - 環(huán)境搭建

SpringBoot2.1.9+dubbo2.7.3+Nacos1.1.4構建你的微服務體系

歡迎關注我的個人公眾號:JAVA日知錄

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市伴榔,隨后出現(xiàn)的幾起案子纹蝴,更是在濱河造成了極大的恐慌,老刑警劉巖踪少,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塘安,死亡現(xiàn)場離奇詭異,居然都是意外死亡援奢,警方通過查閱死者的電腦和手機兼犯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人切黔,你說我怎么就攤上這事砸脊。” “怎么了纬霞?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵凌埂,是天一觀的道長。 經(jīng)常有香客問我诗芜,道長瞳抓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任绢陌,我火速辦了婚禮挨下,結果婚禮上,老公的妹妹穿的比我還像新娘脐湾。我一直安慰自己臭笆,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布秤掌。 她就那樣靜靜地躺著愁铺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪闻鉴。 梳的紋絲不亂的頭發(fā)上茵乱,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機與錄音孟岛,去河邊找鬼瓶竭。 笑死,一個胖子當著我的面吹牛渠羞,可吹牛的內容都是我干的斤贰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼次询,長吁一口氣:“原來是場噩夢啊……” “哼荧恍!你這毒婦竟也來了?” 一聲冷哼從身側響起屯吊,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤送巡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后盒卸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骗爆,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年蔽介,在試婚紗的時候發(fā)現(xiàn)自己被綠了淮腾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糟需。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谷朝,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情武花,我是刑警寧澤圆凰,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站体箕,受9級特大地震影響专钉,放射性物質發(fā)生泄漏。R本人自食惡果不足惜累铅,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一跃须、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧娃兽,春花似錦菇民、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至玛荞,卻和暖如春娇掏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背勋眯。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工婴梧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人客蹋。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓塞蹭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嚼酝。 傳聞我的和親對象是個殘疾皇子浮还,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內容