国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0

這篇具有很好參考價值的文章主要介紹了分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

分布式鏈路追蹤–SkyWalking

? 微服務的出現(xiàn),的確解決了一些業(yè)務痛點,但是也造成了新的問題比如隨著調用鏈的拉長,如果想要知道請求為什么這么慢,這個請求到底經(jīng)歷了哪些環(huán)節(jié),又依賴了哪些東西,在微服務架構中定位這些問題并且解決是比較麻煩的。

? 什么是調用鏈呢?

? A服務調用B服務也可以說是一個調用鏈,即使是同一個服務中的一個方法調用到另一個方法,也可以說是一個調用鏈。

? 以前單體應用中,排查問題往往只需要到這臺應用的服務,查看日志基本就能把問題解決了。但是在微服務系統(tǒng)中,一般是分布式部署的,這也就給排查增加了難度,如果把一臺臺服務器登錄上找問題,既麻煩又耗時。

? 為了解決這些問題,業(yè)內已經(jīng)有了分布式鏈路追蹤的解決方案,比如使用ZipKin、SkyWalking等。

SkyWalking介紹

? SkyWalking是基于OpenTracing實現(xiàn)的開源項目,2017年12月8日已進入Apache孵化器。

? 是一個APM(應用性能監(jiān)控)系統(tǒng),專為微服務、云原生架構和基于容器(Docker、k8s、Mesos)架構而設計。通過探針收集應用的指針,并進行分布式鏈路追蹤。SkyWalking會感知服務之間的調用鏈路關系,形成相應的統(tǒng)計數(shù)據(jù)。它的特性如下:

  • 支持警告
  • 采用探針技術,對業(yè)務代碼零侵入
  • 支持自動及手動探針
  • 輕量高效,不需要大數(shù)據(jù)平臺
  • 多種監(jiān)控手段,多語言自動探針
  • 可視化后臺
  • 模塊化

SkyWalking的整體架構:

  • 探針(agent):負責數(shù)據(jù)收集,包含了Tracing和Metrics的數(shù)據(jù)
  • 可觀測性能分析平臺(OAP):接收探針發(fā)送的數(shù)據(jù),并使用分析引擎進行數(shù)據(jù)整合、運算,然后把數(shù)據(jù)存儲到對應的存儲介質(可用H2或Elasticsearch等)上,還為UI后臺提供接口
  • UI:調用OAP的接口,提供可視化界面展示

Elasticsearch下載安裝

那么SkyWalking的存儲介質,筆者這s選擇使用Elasticsearch,先到Elasticsearch的官網(wǎng)下載。

windows版本下載地址,選擇下載了一個7.0.0版本的。

這里筆者就使用windows版本了,需要linux版本或其他可以自行查閱資料。

下載解壓后,到config/elasticsearch.yml中修改下集群名:

cluster.name: my-application

后直接到bin目錄下,執(zhí)行elasticsearch.bat即可執(zhí)行es服務,默認端口9200

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

啟動完畢后,訪問下localhost:9200,得到如下信息即是安裝成功

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

完成后,再去安裝SkyWalking。注意這里cluster.name是my-application。后面skywalking需要用。

SkyWalking下載安裝

下載地址:https://skywalking.apache.org/downloads/

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

下載過慢或者下載無反應的,可以嘗試使用國內鏡像地址去下載,https://mirrors.cloud.tencent.com/apache/skywalking

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

筆者使用7.0.0版本的,地址在這里:https://www.apache.org/dyn/closer.cgi/skywalking/7.0.0/apache-skywalking-apm-es7-7.0.0.tar.gz

這里提供下網(wǎng)盤資源:

鏈接:https://pan.baidu.com/s/1lQoMDFIH3PYGCla3PtIIRg
提取碼:2a96

下載解壓后,得到如下目錄:

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

  • agent:探針相關,代理模塊
  • bin:oapService和webappService的啟動腳本,也有兩個腳本合并的腳本start.bat,linux系統(tǒng)啟動.sh的文件
  • config:數(shù)據(jù)收集器、存儲、告警等配置信息
  • logs:collector和web-ui的日志
  • webapp:SkyWalking展示的UIjar文件和配置文件

config/application.yml中修改配置

storage:
  selector: ${SW_STORAGE:elasticsearch7}

修改elsticsearch的nameSpace和ClusterNodes,這里nameSpace是前面配置的es的集群名稱

storage:
  selector: ${SW_STORAGE:elasticsearch7}
  elasticsearch7:
    nameSpace: ${SW_NAMESPACE:"my-application"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}

注意:SkyWalking默認使用的端口是8080、11800、12800,如有占有,可去config/application.ymlwebapp/application.yml中修改

啟動

執(zhí)行startup.bat啟動

訪問localhost:8080即可進入skywalking的可視化界面

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

IDEA使用agent

IDEA使用agent主要使用于本地開發(fā)環(huán)境,需要又agent文件夾,然后加上啟動參數(shù)即可。

找到兩個springboot微服務項目,然后在它們的IDEA啟動配置中,增加參數(shù):

transaction的

-javaagent:D:\env\envir\skywalking7\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=transaction-distribution
-Dskywalking.collector.backend_service=localhost:11800

order的

-javaagent:D:\env\envir\skywalking7\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=transaction-order
-Dskywalking.collector.backend_service=localhost:11800
  • D:\env\envir\skywalking7\agent\skywalking-agent.jar`是agent的目錄路徑
  • service_name:服務名稱
  • backend_service:skywalking的服務地址(端口是11800)

完事兒后,啟動它們。

調用一個接口,執(zhí)行它們。

拓撲圖

到skywalking的拓撲圖頁面

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

可以看到真題的技術架構及調用關系。

追蹤

到skywalking的追蹤頁面

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

可以看到所有的執(zhí)行記錄,并且將這些詳細到:發(fā)生在哪個類哪個方法中,如執(zhí)行sql查詢的那條,點擊后,我們甚至可以看到sql的執(zhí)行信息。

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

還可知接口的執(zhí)行時間分布,以及采用的技術

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

如上圖:/createOrder接口總執(zhí)行2.4s,/distribution是使用feign調用的,且執(zhí)行了1s左右。

忽略端點

有時可能不需要采集某個端點的數(shù)據(jù),如心跳之類的請求,不是那么重要??梢栽O置忽略它們,意味著包含這些路徑的追蹤信息不會被agent發(fā)送到collector中。

  1. 將skywalking中的agent/optional-pluginsapm-trace-ignore-plugin-7.0.0.jar拷貝至我們的agent/plugins

  2. 在IDEA中做啟動配置,我們模擬將/createOrder/distribution接口忽略

    -javaagent:D:\env\envir\skywalking7\agent\skywalking-agent.jar
    -Dskywalking.agent.service_name=transaction-distribution
    -Dskywalking.collector.backend_service=localhost:11800
    -Dskywalking.trace.ignore_path=/createOrder
    
    -javaagent:D:\env\envir\skywalking7\agent\skywalking-agent.jar
    -Dskywalking.agent.service_name=transaction-order
    -Dskywalking.collector.backend_service=localhost:11800
    -Dskywalking.trace.ignore_path=/distribution
    

ignore_path這個參數(shù)可以支持表達式:

/path/*、path/**、/path/?

?表示匹配任意單字符,*表示匹配0個或任意數(shù)量字符,**表示匹配0或更多的目錄

配置后,在調用匹配規(guī)則的接口路徑時,agent就不會再采集這些接口的數(shù)據(jù)了。

除此外還有另一種方式

同樣是需要先將skywalking中的agent/optional-pluginsapm-trace-ignore-plugin-7.0.0.jar拷貝至我們的agent/plugins

然后去配置agent/config/agent.config文件忽略端點,服務每次啟動都會去讀取這個配置文件。

trace.ignore_path==${SW_AGENT_TRACE_IGNORE_PATH:/createOrder, /distribution}

告警

告警功能是skywalking的一大特色。Skywalking會定時把采集到的數(shù)據(jù)和配置的告警規(guī)則進行對比,如果滿足閾值條件,則會出發(fā)警告。

Skywalking允許用戶基于webhook(網(wǎng)絡鉤子)的規(guī)范,自定義觸發(fā)告警之后的邏輯,如發(fā)短信、發(fā)郵件、電話、公眾號通知等。

Skywalking程序路徑下的config/alarm-settings.yml文件就是告警的規(guī)則。

rules:
  service_resp_time_rule: # 服務響應時間規(guī)則
    metrics-name: endpoint_percent # 名稱
    threshold: 75	# 閾值
    op: <		# 小于
    period: 10	# 間隔時間
    count: 3	# 次數(shù)
    silence-period: 10 # 告警發(fā)送多少分鐘內警告不會重復發(fā)送
    message: Successful rate of endpoint {name} is lower than 75%
#webhooks:
#  - http://127.0.0.1/notify/
#  - http://127.0.0.1/go-wechat/

webhooks中就是觸發(fā)警告后,需要執(zhí)行的操作。

我們可以自己做個觸發(fā)鉤子后的執(zhí)行操作接口

  • 來個告警信息類
public class AlarmMessage {
    
    private Integer scopeId;    // 作用域
    private String name;        // 目標作用域下的實體名稱
    private Integer id0;        // 作用域下的實體ID,與名稱相匹配
    private Integer id1;
    private String ruleName;    // alarm-setting.yml中的配置規(guī)則
    private String alarmMessage;   // 告警信息
    private Long startTime;     // 告警產生時間
    
    // get.set.toString()方法省略
    
}
  • 做個接口
@RequestMapping("/notify")
public void alarm(@RequestBody List<AlarmMessage> alarmMessages) {
    alarmMessages.forEach(value -> System.out.println(value.toString()));
}
  • 修改config/alarm-settings.yml配置文件,增加鉤子的后續(xù)執(zhí)行。
webhooks:
  - http://127.0.0.1:9002/notify

重啟skywalking及兩個微服務項目,多次調用/createOrder接口(模擬的超時報錯),這里記得把忽略的端點給放開,否則skywalking是發(fā)不了告警的。

可看到告警一欄中的

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

看到控制臺打印的數(shù)據(jù):

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

性能分析

Skywalking的性能分析能幫助用戶很容易找到性能問題,并且不需要代碼埋點等操作。Skywalking的性能分析是對業(yè)務周期性保存快照操作,資源消耗小。

到Skywalking UI的性能剖析窗口,點擊新建任務,如創(chuàng)建/createOrder接口的任務。

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

然后可以調用幾次/createOrder接口,刷新頁面,選中剛剛創(chuàng)建的任務,右側出現(xiàn)createOrder的信息,選中,點擊分析按鈕。

分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0,skywalking,SpringBoot,Java,分布式,java,skywalking

調用/createOrder的流程,使用的技術,服務名,耗時,棧信息等一覽無余。

點擊查看能看到這個步驟的詳細信息,執(zhí)行的具體操作,拋出的異常。

Tomcat或Jar包使用agent

IDEA中使用agent一般用于本地開發(fā)環(huán)境,若正式環(huán)境,一般使用Tomcat或jar包的方式啟動應用。

Linux系統(tǒng)Tomcat使用agent

linux系統(tǒng)中修改tomcat的bin/catalina.sh文件,加入代碼

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/root/agent/skywalking-agent.jar -Dskywalking.agent.service_name=transaction-distribution -Dskywalking.collector.backend_service=localhost:11800";
export CATALINA_OPTS

Windows系統(tǒng)Tomcat使用agent

windows系統(tǒng)中修改tomcat的bin/catalina.bat文件setlocal下,加入代碼

set CATALINA_OPTS="-javaagent:D:\env\envir\skywalking7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=transaction-distribution -Dskywalking.collector.backend_service=localhost:11800";

jar包使用agent

啟動時的命令

java -javaagent:D:\env\envir\skywalking7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=transaction-distribution -Dskywalking.collector.backend_service=localhost:11800 -jar transaction-distribution.jar

配置賬號密碼登錄

Skywalking的功能很強大,能看到項目中的很多隱私信息(項目架構、調用鏈路、sql語句等),自然不希望其他無關人員能看到。那么通常設置賬號密碼的方式。

在skywalking6.x版本中能配置,但是在7.x版本中被移除了,作者提出可以使用nginx配置賬號和密碼:

使用nginx配置賬號密碼登錄主要是依靠ngx_http_auth_basic_module模塊。

下面是用nginx的增強版,OpenResty配置賬號和密碼登錄。OpenResty的安裝可以自行查閱資料。

安裝和配置

  • 安裝hptpasswd工具
yum install -y httpd-tools
  • 使用htpasswd生成用戶名和密碼
htpasswd -b -c /usr/local/openresty/passwd wlh wlh

-b參數(shù):用戶創(chuàng)建passwdfile,如果passwdfile存在,那么它會重寫

-c參數(shù):允許命令行中一起輸入賬號和密碼

  • 到OpenResty的安裝目錄,修改nginx/conf/nginx.conf配置文件,修改server中的內容就行了
server{
  listen	80;
  server_name	localhost;
  location / {
  		auth_basic "Please input password";	# 提示信息
  		auth_basic_user_file	/user/local/openrestry/passwd;	# 存放賬號密碼的文件
  		proxy_pass	http://localhost:8080;	# 代理到8080端口
  }

}

最后linux系統(tǒng)記得放開需要的端口。重啟OpenResty然后訪問主機http://192.168.1.41(默認80端口),就會彈框提示需要輸入賬號和密碼了。文章來源地址http://www.zghlxwxcb.cn/news/detail-729521.html

到了這里,關于分布式鏈路追蹤--SkyWalking7.0.0+es7.0.0的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【SkyWalking】分布式環(huán)境下的鏈路追蹤技術

    【SkyWalking】分布式環(huán)境下的鏈路追蹤技術

    SkyWalking解決了什么問題?-----》微服務架構中,各個服務之間調用關系錯綜復雜,所以需要一個能捋清復雜情況下調用關系的解決方案,這就是SkyWalking,目前最強大的鏈路追蹤技術; 要使用SkyWalking,需要給我們的項目中綁定一個agent探針,綁定后,SkyWalking就會將你項目整體

    2023年04月08日
    瀏覽(26)
  • 基于Spring Cloud Alibaba+Skywalking的分布式鏈路追蹤設計

    胡弦,視頻號2023年度優(yōu)秀創(chuàng)作者,互聯(lián)網(wǎng)大廠P8技術專家,Spring Cloud Alibaba微服務架構實戰(zhàn)派(上下冊)和RocketMQ消息中間件實戰(zhàn)派(上下冊)的作者,資深架構師,技術負責人,極客時間訓練營講師,四維口袋KVP最具價值技術專家,技術領域專家團成員,2021電子工業(yè)出版社年度優(yōu)

    2024年04月22日
    瀏覽(42)
  • 分布式系統(tǒng)中的分布式鏈路追蹤與分布式調用鏈路

    本文分享自天翼云開發(fā)者社區(qū)《分布式系統(tǒng)中的分布式鏈路追蹤與分布式調用鏈路》,作者:c****w 在分布式系統(tǒng)中,由于服務間的調用關系復雜,需要實現(xiàn)分布式鏈路追蹤來跟蹤請求在各個服務中的調用路徑和時間消耗。這對問題排查和性能監(jiān)控都很重要。 常用的分布式鏈

    2024年01月19日
    瀏覽(29)
  • 分布式鏈路追蹤專欄,Spring Cloud Sleuth:分布式鏈路追蹤之通信模型設計

    分布式鏈路追蹤專欄,Spring Cloud Sleuth:分布式鏈路追蹤之通信模型設計

    Spring Cloud Sleuth ?賦予分布式跟蹤的 ?Spring Boot? 自動配置的一鍵解決方案。 Spring Cloud Sleuth? 是基于 ?Brave? 的封裝,也是很多公司采用開源加自研的最佳解決方案。 那么從作為架構師或者技術專家如何去借鑒優(yōu)秀框架的設計理念和思想,本次? Chat? 將開啟作者既分布式鏈路

    2024年01月19日
    瀏覽(27)
  • 【SkyWalking】分布式服務追蹤與調用鏈系統(tǒng)

    【SkyWalking】分布式服務追蹤與調用鏈系統(tǒng)

    SkyWalking是一個開源的觀測平臺,官網(wǎng):Apache SkyWalking; 可監(jiān)控: 分布式追蹤調用鏈 、jvm內存變化、監(jiān)控報警、查看服務器基本配置信息。 在整個skywalking的系統(tǒng)中,有三個角色: 1.skywalking agent?和業(yè)務系統(tǒng)(jar)關聯(lián)在一起 ,負責收集各種監(jiān)控數(shù)據(jù); 2.skywalking oapservice負責處

    2024年02月11日
    瀏覽(28)
  • 鏈路追蹤詳解(三):分布式鏈路追蹤標準的演進

    鏈路追蹤詳解(三):分布式鏈路追蹤標準的演進

    目錄 Google Dapper Twitter Zipkin Uber Jaeger OpenTracing 和 OpenCensus OpenTelemetry 小結 分布式鏈路追蹤是現(xiàn)代云計算和微服務架構中一個關鍵技術,可以讓開發(fā)者和運維團隊理解和監(jiān)控服務請求在復雜系統(tǒng)中的完整流轉路徑。分布式鏈路追蹤技術的發(fā)展經(jīng)歷了從早期的專有解決方案到現(xiàn)代

    2024年02月05日
    瀏覽(33)
  • Docker安裝Skywalking APM分布式追蹤系統(tǒng)

    Skywalking是一個應用性能管理(APM)系統(tǒng),具有服務器性能監(jiān)測,應用程序間調用關系及性能監(jiān)測等功能,Skywalking分為服務端、管理界面、以及嵌入到程序中的探針部分,由程序中的探針采集各類調用數(shù)據(jù)發(fā)送給服務端保存,在管理界面上可以查看各類性能數(shù)據(jù)。本文介紹服務端

    2024年02月12日
    瀏覽(23)
  • 進階分布式鏈路追蹤

    進階分布式鏈路追蹤

    ? ? ? ? ? ? ? ? ? ? ? ? https://item.jd.com/14337086.html?編輯https://item.jd.com/14337086.html “ RocketMQ 消息中間件實戰(zhàn)派上下冊”是我既“ Spring Cloud Alibaba 微服務架構實戰(zhàn)派上下冊”之后,又一本歷時超過 1 年半的巨無霸技術實戰(zhàn)類型的書籍。 為了提高讀者閱讀本書的體驗性,本書

    2024年02月02日
    瀏覽(21)
  • 分布式鏈路追蹤概述

    分布式鏈路追蹤概述

    隨著系統(tǒng)設計變得日趨復雜,越來越多的組件開始走向分布式化,如微服務、分布式數(shù)據(jù)庫、分布式緩存等,使得后臺服務構成了一種復雜的分布式網(wǎng)絡。往往前端的一個請求需要經(jīng)過多個微服務、跨越多個數(shù)據(jù)中心才能最終獲取到結果,如下圖 并且隨著業(yè)務的不斷擴張,服

    2024年02月13日
    瀏覽(25)
  • 分布式鏈路追蹤

    分布式鏈路追蹤

    隨著互聯(lián)網(wǎng)業(yè)務快速擴展,軟件架構也日益變得復雜,為了適應海量用戶高并發(fā)請求,系統(tǒng)中越來越多的組件開始走向分布式化,如單體架構拆分為微服務、服務內緩存變?yōu)榉植际骄彺?、服務組件通信變?yōu)榉植际较ⅲ@些組件共同構成了繁雜的分布式網(wǎng)絡。 在大型系統(tǒng)的微

    2024年02月16日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包