自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何定位微服務(wù)異常之鏈路跟蹤APM工具

網(wǎng)絡(luò) 通信技術(shù)
微服務(wù)框架落地后,分布式部署架構(gòu)帶來的問題就會迅速凸顯出來。尤其線上出現(xiàn)問題,不知道如何排查,問題出現(xiàn)在哪個(gè)服務(wù)?如何快速定位問題?如何跟蹤業(yè)務(wù)調(diào)用鏈路?如何分析解決業(yè)務(wù)瓶頸?今天老顧來跟小伙伴們看看如何解決以上問題。

 [[335812]]

目錄

  • 前言
  • 什么是鏈路跟蹤
  • 技術(shù)架構(gòu)
  • 下載啟動SkyWalking
  • JavaAgent服務(wù)器探針
  • ServiceTopology監(jiān)控
  • Trace監(jiān)控
  • Jvm監(jiān)控
  • 服務(wù)告警
  • 總結(jié)

前言

微服務(wù)框架落地后,分布式部署架構(gòu)帶來的問題就會迅速凸顯出來。尤其線上出現(xiàn)問題,不知道如何排查,問題出現(xiàn)在哪個(gè)服務(wù)?如何快速定位問題?如何跟蹤業(yè)務(wù)調(diào)用鏈路?如何分析解決業(yè)務(wù)瓶頸?今天老顧來跟小伙伴們看看如何解決以上問題。

什么是鏈路追蹤

微服務(wù)架構(gòu)是通過業(yè)務(wù)來劃分服務(wù)的,使用REST調(diào)用。對外暴露的一個(gè)接口,可能需要很多個(gè)服務(wù)協(xié)同才能完成這個(gè)接口功能,如果鏈路上任何一個(gè)服務(wù)出現(xiàn)問題或者網(wǎng)絡(luò)超時(shí),都會形成導(dǎo)致接口調(diào)用失敗。隨著業(yè)務(wù)的不斷擴(kuò)張,服務(wù)之間互相調(diào)用會越來越復(fù)雜。

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

上圖中,user調(diào)用A,A會調(diào)用C,C再調(diào)用E;這條調(diào)用鏈路,我們還能夠看清楚;但是一旦微服務(wù)很多,調(diào)用依賴復(fù)雜就看不清楚了,如下圖

 

[[335813]]

 

上圖是不是看到后,有密集恐懼癥,像個(gè)線團(tuán),一團(tuán)亂麻;如果這個(gè)時(shí)候出現(xiàn)了調(diào)用異常,那我們依據(jù)調(diào)用接口入口,一步步、一個(gè)服務(wù)一個(gè)服務(wù)的去跟蹤調(diào)試;這個(gè)流程會把人搞瘋的,也許1個(gè)小時(shí)后,也不知道什么問題;就像我們以前找線頭,然后一步步的去重新卷圈。

面對以上情況,我們就需要一些可以幫助理解系統(tǒng)行為、用于分析性能問題的工具,以便發(fā)生故障的時(shí)候,能夠快速定位和解決問題,這就是所謂的 APM(應(yīng)用性能管理)。

什么是 SkyWalking

Skywalking是一款國內(nèi)開源的應(yīng)用性能監(jiān)控工具,支持對分布式系統(tǒng)的監(jiān)控、跟蹤和診斷。目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking。SkyWalking也是Apache的孵化項(xiàng)目之一,擁有頂級二級域名。

它提供了如下的主要功能特性:

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

功能特性:

  • 多種監(jiān)控手段,語言探針和服務(wù)網(wǎng)格(Service Mesh)
  • 多語言自動探針,Java,.NET Core 和 Node.JS
  • 輕量高效,不需要大數(shù)據(jù)
  • 模塊化,UI、存儲、集群管理多種機(jī)制可選
  • 支持告警
  • 優(yōu)秀的可視化方案

技術(shù)架構(gòu)

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

上圖看了是不是比較亂,其實(shí)Skywalking總體可以分為四部分:

1、Skywalking Agent:使用Javaagent做字節(jié)碼植入,無侵入式的收集,并通過HTTP或者gRPC方式發(fā)送數(shù)據(jù)到Skywalking Collector。

2、Skywalking Collector :鏈路數(shù)據(jù)收集器,對agent傳過來的數(shù)據(jù)進(jìn)行整合分析處理并落入相關(guān)的數(shù)據(jù)存儲中。

3、Storage:Skywalking的存儲,在6.x版本中支持以ElasticSearch(推薦)、Mysql、TiDB、H2、作為存儲介質(zhì)進(jìn)行數(shù)據(jù)存儲。

4、UI :Web可視化平臺,用來展示落地的數(shù)據(jù)。

下載并啟動 SkyWalking

官方已經(jīng)為我們準(zhǔn)備好了編譯過的服務(wù)端版本,現(xiàn)在最新版本為6.4.0

下載地址為 http://skywalking.apache.org/downloads/

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

配置 SkyWalking

下載完成后解壓縮

  1. # tar -xvf apache-skywalking-apm-6.4.0.tar 
  2. # mv apache-skywalking-apm-bin /usr/local/skywalking 
  3. # cd /usr/local/skywalking 

修改配置

  1. # cd config 

# vim application.yml@

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

配置存儲方式,默認(rèn)H2,官方推薦elasticsearch

這里需要做三件事:

  1. 注釋 H2 存儲方案
  2. 啟用 ElasticSearch 存儲方案
  3. 修改 ElasticSearch 服務(wù)器地址
  1. clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200} 

啟動 SkyWalking

修改完配置后,進(jìn)入 skywalking\bin 目錄,運(yùn)行startup.bat啟動服務(wù)端

通過瀏覽器訪問 http://localhost:8080 出現(xiàn)如下界面即表示啟動成功

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

默認(rèn)的用戶名密碼為:admin/admin,登錄成功后,效果如下圖

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

Java Agent 服務(wù)器探針

agent簡單的理解就是放一個(gè)插件,隨著應(yīng)用程序啟動,監(jiān)控?cái)?shù)據(jù)、收集數(shù)據(jù)、發(fā)送數(shù)據(jù)的作用。

探針文件在skywalking/agent目錄下

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

啟動方式

在以前啟動應(yīng)用程序時(shí),加上一些參數(shù)

  1. java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar  
  2.  -Dskywalking.agent.service_name=shop-goods-provider  
  3.  -Dskywalking.collector.backend_service=localhost:11800  
  4.  -jar yourApp.jar 

參數(shù)含義:

  • -javaagent:用于指定探針路徑
  • -Dskywalking.agent.service_name:用于重寫 agent/config/agent.config 配置文件中的服務(wù)名
  • -Dskywalking.collector.backend_service:用于重寫 agent/config/agent.config 配置文件中的服務(wù)地址

啟動后,訪問鏈接,就會發(fā)現(xiàn) Service 與 Endpoint 已經(jīng)成功檢測到了

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

表示 SkyWalking 鏈路追蹤配置成功。

Service Topology監(jiān)控

調(diào)用鏈路監(jiān)控可以從兩個(gè)角度去看待。我們先從整體上來認(rèn)識一下我們所監(jiān)控的系統(tǒng)。

通過給服務(wù)添加探針并產(chǎn)生實(shí)際的調(diào)用之后,我們可以通過Skywalking的前端UI查看服務(wù)之間的調(diào)用關(guān)系。

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

從圖中可以看到:

有兩個(gè)服務(wù)節(jié)點(diǎn):provider & consumer

有一個(gè)數(shù)據(jù)庫節(jié)點(diǎn):localhost【mysql】

consumer消費(fèi)了provider提供出來的接口。

一個(gè)系統(tǒng)的拓?fù)鋱D讓我們清晰的認(rèn)識到系統(tǒng)之間的應(yīng)用的依賴關(guān)系以及當(dāng)前狀態(tài)下的業(yè)務(wù)流轉(zhuǎn)流程。

細(xì)心的小伙伴們可能發(fā)現(xiàn)圖示節(jié)點(diǎn)consumer上有一部分是紅色的,紅色是什么意思呢?

紅色代表當(dāng)前流經(jīng)consumer節(jié)點(diǎn)的請求有一斷時(shí)間內(nèi)是響應(yīng)異常的。當(dāng)節(jié)點(diǎn)全部變紅的時(shí)候證明服務(wù)現(xiàn)階段內(nèi)就徹底不可用了。運(yùn)維人員可以通過Topology迅速發(fā)現(xiàn)某一個(gè)服務(wù)潛在的問題,并進(jìn)行下一步的排查并做到預(yù)防。

Skywalking Trace監(jiān)控

Skywalking通過業(yè)務(wù)調(diào)用監(jiān)控進(jìn)行依賴分析,提供給我們了服務(wù)之間的服務(wù)調(diào)用拓?fù)潢P(guān)系、以及針對每個(gè)endpoint的trace記錄。

我們在之前看到consumer節(jié)點(diǎn)服務(wù)中發(fā)生了錯(cuò)誤,讓我們一起來定位下錯(cuò)誤是發(fā)生在了什么地方又是什么原因呢?

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

在每一條trace的信息中都可以看到當(dāng)前請求的時(shí)間、GloableId、以及請求被調(diào)用的時(shí)間。我們分別看一看正確的調(diào)用和異常的調(diào)用。

Trace調(diào)用鏈路監(jiān)控

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

上圖展示的是一次正常的響應(yīng),這條響應(yīng)總耗時(shí)19ms;可以詳細(xì)點(diǎn)擊每個(gè)span查看詳細(xì)信息

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

Service JVM信息監(jiān)控

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

Skywalking還可以監(jiān)控到Service運(yùn)行時(shí)的CPU、堆內(nèi)存、非堆內(nèi)存使用率、以及GC情況。這些信息來源于JVM。

Skywalking 服務(wù)告警

上面我們提到了通過查看拓?fù)鋱D以及調(diào)用鏈路可以定位問題,可是運(yùn)維人員又不可能一直盯著這些數(shù)據(jù),那么我們就需要告警能力,在異常達(dá)到一定閾值的時(shí)候主動的提示我們?nèi)ゲ榭聪到y(tǒng)狀態(tài)。

在Sywalking 6.x版本中新增了對服務(wù)狀態(tài)的告警能力。它通過webhook的方式讓我們可以自定義我們告警信息的通知方式。諸如:郵件通知、微信通知、短信通知等。

告警的規(guī)則配置。在alarm-settings.xml中可以配置告警規(guī)則,告警規(guī)則支持自定義。

 

如何定位微服務(wù)異常之鏈路跟蹤APM工具

 

1、service_resp_time_rule:告警規(guī)則名稱 ***_rule (規(guī)則名稱可以自定義但是必須以’_rule’結(jié)尾

2、indicator-name:指標(biāo)數(shù)據(jù)名稱: 定義參見http://t.cn/EGhfbmd

3、op: 操作符: > , < , = 【當(dāng)然你可以自己擴(kuò)展開發(fā)其他的操作符】

4、threshold:目標(biāo)值:指標(biāo)數(shù)據(jù)的目標(biāo)數(shù)據(jù) 如sample中的1000就是服務(wù)響應(yīng)時(shí)間,配合上操作符就是大于1000ms的服務(wù)響應(yīng)

5、period: 告警檢查周期:多久檢查一次當(dāng)前的指標(biāo)數(shù)據(jù)是否符合告警規(guī)則

6、counts: 達(dá)到告警閾值的次數(shù)

7、silence-period:忽略相同告警信息的周期

8、message:告警信息

文件結(jié)尾有最后一個(gè)webhooks屬性:服務(wù)告警通知服務(wù)地址

  1. webhooks: 
  2. # - http://127.0.0.1/notify/ 
  3. # - http://127.0.0.1/go-wechat/ 

總結(jié)

本文簡單了介紹了Skywalking簡單的知識,可以通過Skywalking,可以讓我們方便的查看微服務(wù)架構(gòu)中系統(tǒng)瓶頸以及性能問題等。小伙伴們可以去嘗試操作一下哦,謝謝!!!

 

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2020-05-26 11:59:30

日志鏈路微服務(wù)架構(gòu)

2023-12-15 09:57:13

微服務(wù)鏈路服務(wù)

2023-07-07 07:27:14

全鏈路虎牙APM

2023-08-24 22:13:31

2023-11-09 15:06:13

微服務(wù)開發(fā)工具

2023-11-21 09:35:49

全量部署微服務(wù)

2018-07-12 09:59:39

microServicmockautoTest

2020-09-11 09:44:04

微服務(wù)分布式鏈路

2023-08-02 11:39:11

鏈路追蹤技術(shù)微服務(wù)

2018-03-13 16:42:26

分布式服務(wù)跟蹤

2022-02-15 17:56:19

SpringBoot日志

2023-06-01 10:34:14

2022-07-06 19:00:00

微服務(wù)框架鏈路

2024-07-02 10:58:53

2023-04-18 17:24:08

光纖網(wǎng)絡(luò)

2011-03-30 16:22:15

POS接口路由器

2022-09-24 13:21:34

Java服務(wù)異常

2021-03-06 08:05:54

工具DevOpsLighthouse

2009-07-07 17:22:34

光纖鏈路測試故障
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號