成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Uber分布式追蹤系統(tǒng)Jaeger使用介紹和案例【PHP Hprose Go】

April / 1169人閱讀

摘要:簡單理解一個完整的調(diào)用鏈包含無限極分類追蹤對象,一個代表了一個服務或者流程在系統(tǒng)中的執(zhí)行過程,如,,等執(zhí)行過程。無限極分類服務與服務之間使用無限極分類的方式,通過頭部或者請求地址傳輸?shù)阶畹蛯樱瑥亩颜麄€調(diào)用鏈串起來。

原文:Uber分布式追蹤系統(tǒng)Jaeger使用介紹和案例【PHP Hprose Go】

前言

? 隨著公司的發(fā)展,業(yè)務不斷增加,模塊不斷拆分,系統(tǒng)間業(yè)務調(diào)用變得越復雜,對定位線上故障帶來很大困難。整個調(diào)用鏈不透明,猶如系統(tǒng)被蒙上一塊黑紗,當線上遇到故障時,整個技術(shù)部就陷入痛苦的漩渦。這時候分布式追蹤系統(tǒng)應運而生,如揭開了黑紗,讓陽光照進黑暗。

分布式系統(tǒng)調(diào)用過程

opentracing 協(xié)議

?opentracing是一套分布式追蹤協(xié)議,與平臺,語言無關(guān),統(tǒng)一接口,方便開發(fā)接入不同的分布式追蹤系統(tǒng)。

簡單理解opentracing

一個完整的opentracing調(diào)用鏈包含 Trace + span + 無限極分類

Trace:追蹤對象,一個Trace代表了一個服務或者流程在系統(tǒng)中的執(zhí)行過程,如:test.com,redis,mysql等執(zhí)行過程。一個Trace由多個span組成

span:記錄Trace在執(zhí)行過程中的信息,如:查詢的sql,請求的HTTP地址,RPC調(diào)用,開始、結(jié)束、間隔時間等。

無限極分類:服務與服務之間使用無限極分類的方式,通過HTTP頭部或者請求地址傳輸?shù)阶畹蛯?,從而把整個調(diào)用鏈串起來。

相關(guān)文檔

官方文檔

OpenTracing語義規(guī)范(中文版)

OpenTracing語義慣例

opentracing文檔中文版 ( 翻譯 ) 吳晟

分布式追蹤系統(tǒng)Jaeger

?Jaeger是Uber開發(fā)的一套分布式追蹤系統(tǒng),已在Uber大規(guī)模使用。并在2017-9-13 加入CNCF 開源組織。使用Jaeger可以非常直觀的展示整個分布式系統(tǒng)的調(diào)用鏈,由此可以很好發(fā)現(xiàn)和解決問題:

作用

分布式環(huán)境下信息傳播

分布式交易監(jiān)控

展示跨進程調(diào)用鏈

性能優(yōu)化

定位問題

特性

使用udp傳輸數(shù)據(jù),相對于HTTP,優(yōu)點在于,不用擔心Jaeger服務宕機或者網(wǎng)絡傳輸有問題而影響正常的業(yè)務。缺點就是丟包,影響了整條調(diào)用鏈。

數(shù)據(jù)通過Thrift進行序列化,和json對比

接口 Thrift/byte json/byte 節(jié)省
接口1 987 2396 約1.5倍
接口2 1212 2916 約1.4倍
接口3 12830 18893 約40%
接口4 17158 22465 約24%
接口5 11025 14282 約23%

?從中可以看出thrift相對json減少了不少空間。在我們采集公司接口的數(shù)據(jù)大小都集中在10~20k,所以使用thrift會更有優(yōu)勢。

采集策略

Jaeger 官方提供了多種采集策略,使用者可以按需選擇使用

ConstSampler,全量采集

ProbabilisticSampler ,概率采集,默認萬份之一

RateLimitingSampler ,限速采集,每秒只能采集一定量的數(shù)據(jù)

RemotelyControlledSampler ,一種動態(tài)采集策略,根據(jù)當前系統(tǒng)的訪問量調(diào)節(jié)采集策略

客戶端

Go

Java

node

python

php

官方提供了 go,java,node,python客戶端,其他客戶端還在開放中,php客戶端為個人開發(fā)【歡迎star】

部署 快速部署 ------ All in one Docker image

?all-in-one 是Uber官方打包好的鏡像,可以直接部署使用,但是只能用于測試環(huán)境,不能用于線上,因為它把數(shù)據(jù)放入了內(nèi)存。

docker run -d -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 -p5775:5775/udp -p6831:6831/udp -p6832:6832/udp 
  -p5778:5778 -p16686:16686 -p14268:14268 -p9411:9411 jaegertracing/all-in-one:latest

通過 http://localhost:16686 可以在瀏覽器查看 Jaeger的后臺

官方提供的使用例子,需要go環(huán)境
go get github.com/uber/jaeger
cd $GOPATH/src/github.com/uber/jaeger
make install_examples
cd examples/hotrod
go run ./main.go all

http://localhost:8080 瀏覽器打開查看

cassandra + docker 部署,單機模式

docker run -itd
--name=cassandra -p9042:9042
-v /data/cassandra:/var/lib/cassandra
cassandra

進入容器建立表空間

按照官方腳本整理了一份建表語句jaeger_tables,進入cassandra,執(zhí)行語句即可創(chuàng)建所需的表。

keyspaces:jaeger_v1_dc

運行 jaeger-query

docker run -itd --network=bridge
--name=jaeger-query
-p16686:16686
jaegertracing/jaeger-query
/go/bin/query-linux
--span-storage.type=cassandra
--cassandra.keyspace=jaeger_v1_dc
--cassandra.servers={{ cassandra }}:9042
--query.static-files=/go/jaeger-ui/

運行 jaeger-collector

docker run -itd --network=bridge
--name=jaeger-collector
-p14267:14267
-p14268:14268
-p9411:9411
jaegertracing/jaeger-collector
/go/bin/collector-linux
--span-storage.type=cassandra
--cassandra.keyspace=jaeger_v1_dc
--cassandra.servers={{ cassandra }}:9042

運行 jaeger-agent

docker run
-itd --network=bridge
--name=jaeger-agent
-p5775:5775/udp
-p6831:6831/udp
-p6832:6832/udp
-p5778:5778/tcp
jaegertracing/jaeger-agent
/go/bin/agent-linux --collector.host-port={{ jaeger-collector }}:14267

跨語言調(diào)用案例

php

Hprose

Go【beego】

beego

install beego

go get github.com/astaxie/beego

Download trace_example

git clone [email protected]:jukylin/trace_example.git
cd  trace_example
bee run trace_example
PHP

install jaeger-php

Run Hprose.php

cd vendor/jukylin/jaeger-php/example
php Hprose.php
Trace Result View

PS

優(yōu)步分布式追蹤技術(shù)再度精進

Jaeger還在發(fā)展中,官方也希望得到社區(qū)的支持。

Jaeger和Jaeger-php,在公司測試環(huán)境運行了1個多月,于2017-10-18發(fā)布上線。

選擇好采集策略,日志數(shù)據(jù)會爆炸性增長。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30681.html

相關(guān)文章

  • 開放布式追蹤(OpenTracing)入門與 Jaeger 實現(xiàn)

    摘要:是推出的一款開源分布式追蹤系統(tǒng),兼容。借助阿里云日志服務的海量數(shù)據(jù)處理能力,讓您享受在分布式追蹤領(lǐng)域給您帶來便捷的同時無需過多關(guān)注后端存儲系統(tǒng)的問題。部分僅提供查詢展示的功能,對分析問題排查問題支持不足。 摘要: 分布式系統(tǒng)的運維挑戰(zhàn) 容器、Serverless 編程方式的誕生極大提升了軟件交付與部署的效率。在架構(gòu)的演化過程中,可以看到兩個變化: 應用架構(gòu)開始從單體系統(tǒng)逐步轉(zhuǎn)變?yōu)槲⒎?..

    shadowbook 評論0 收藏0
  • 這么多監(jiān)控組件,總有一款適合你

    摘要:典型實現(xiàn)不同的監(jiān)控模塊,側(cè)重于不同領(lǐng)域,有著不同的職責。指標收集方面,支持多樣化的組件將被優(yōu)先下使用。以上談了這么多,僅僅是聊了一下收集方面而已。 更多文章,請移步微信公眾號《小姐姐味道》 mp原文 https://mp.weixin.qq.com/s?__...監(jiān)控是分布式系統(tǒng)的必備組件,能夠起到提前預警、問題排查、評估決策等功效,乃行走江湖、居家必備之良品。 監(jiān)控系統(tǒng)概要 功能劃分...

    simon_chen 評論0 收藏0
  • 這么多監(jiān)控組件,總有一款適合你

    摘要:典型實現(xiàn)不同的監(jiān)控模塊,側(cè)重于不同領(lǐng)域,有著不同的職責。指標收集方面,支持多樣化的組件將被優(yōu)先下使用。以上談了這么多,僅僅是聊了一下收集方面而已。 更多文章,請移步微信公眾號《小姐姐味道》 mp原文 https://mp.weixin.qq.com/s?__...監(jiān)控是分布式系統(tǒng)的必備組件,能夠起到提前預警、問題排查、評估決策等功效,乃行走江湖、居家必備之良品。 監(jiān)控系統(tǒng)概要 功能劃分...

    wpw 評論0 收藏0
  • 華爾街見聞基于istio的服務網(wǎng)格實踐

    摘要:,托管于騰訊云容器平臺容器編排工具。適配我們目前的服務部署在騰訊云托管,節(jié)點使用核的網(wǎng)絡增強型機器,所有的后端服務都以部署,集群外部署高可用支持集群內(nèi)服務發(fā)現(xiàn),數(shù)據(jù)庫以為主,消息隊列采用。 距離2017年的見聞技術(shù)架構(gòu)調(diào)整接近2年,隨著業(yè)務線的發(fā)展,見聞技術(shù)部的項目數(shù)量、項目架構(gòu)類型、基礎設施規(guī)模、服務變更頻率都在不斷地增長,帶給SRE的挑戰(zhàn)是如何能更快地助力于開發(fā)人員更快更穩(wěn)定地部署...

    stonezhu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<