日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

PHP 服務實現(xiàn)性能剖析、跟蹤和可觀察性14444444444444】=102102102102102102102102102102102102102102102102實踐

來源: 責編: 時間:2024-06-11 17:52:20 269觀看
導讀簡介鏈路追蹤Tracing Analysis為分布式應用的開發(fā)者提供了完整的調用鏈路還原、調用請求量統(tǒng)計、鏈路拓撲、應用依賴分析等工具,可以幫助開發(fā)者快速分析和診斷分布式應用架構下的性能瓶頸,提高微服務時代下的開發(fā)診斷效

簡介

鏈路追蹤Tracing Analysis為分布式應用的開發(fā)者提供了完整的調用鏈路還原、調用請求量統(tǒng)計、鏈路拓撲、應用依賴分析等工具,可以幫助開發(fā)者快速分析和診斷分布式應用架構下的性能瓶頸,提高微服務時代下的開發(fā)診斷效率。bIW28資訊網(wǎng)——每日最新資訊28at.com

官方地址:https://github.com/openzipkin/zipkinbIW28資訊網(wǎng)——每日最新資訊28at.com

Zipkin運行架構

圖片圖片bIW28資訊網(wǎng)——每日最新資訊28at.com

產(chǎn)品架構(鏈路追蹤)

圖片圖片bIW28資訊網(wǎng)——每日最新資訊28at.com

鏈路追蹤的主要工作流程如下

  1. 客戶側的應用程序通過集成鏈路追蹤的多語言客戶端SDK上報服務調用數(shù)據(jù)。鏈路追蹤支持多種開源社區(qū)的SDK,且支持OpenTracing標準。
  2. 數(shù)據(jù)上報至鏈路追蹤控制臺后,鏈路追蹤組件進行實時聚合計算和持久化,形成鏈路明細、性能總覽、實時拓撲等監(jiān)控數(shù)據(jù)。您可以據(jù)此進行問題排查與診斷。
  3. 調用鏈數(shù)據(jù)可對接下游阿里云產(chǎn)品,例如LogSearch、CloudMonitor、MaxCompute等,用于離線分析、報警等場景。

業(yè)務場景

隨著業(yè)務越來越復雜,系統(tǒng)也隨之進行各種拆分,特別是隨著微服務架構和容器技術的興起,看似簡單的一個應用,后臺可能有幾十個甚至幾百個服務在支撐;一個前端的請求可能需要多次的服務調用最后才能完成;當請求變慢或者不可用時,我們無法得知是哪個后臺服務引起的,這時就需要解決如何快速定位服務故障點,zipkin分布式跟蹤系統(tǒng)就能很好的解決這樣的問題。bIW28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片bIW28資訊網(wǎng)——每日最新資訊28at.com

請求&響應

微服務架構下,一次請求后端會經(jīng)歷多個服務調用(所有請求鏈有相同的traceId和不同的spanId),都會沿著traceText帶到每一個服務中。bIW28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)是如何上報的?

直接上報數(shù)據(jù)

圖片圖片bIW28資訊網(wǎng)——每日最新資訊28at.com

bIW28資訊網(wǎng)——每日最新資訊28at.com

不通過Agent而直接上報數(shù)據(jù)的原理(傳統(tǒng)框架。PHP-FPM + Nginx模式)bIW28資訊網(wǎng)——每日最新資訊28at.com

  • ThinkPHP6.0
  • Laravel
  • Yii2.0

通過Agent上報數(shù)據(jù)

圖片圖片bIW28資訊網(wǎng)——每日最新資訊28at.com

通過Agent上報數(shù)據(jù)的原理(現(xiàn)代化框架。命令行模式)。bIW28資訊網(wǎng)——每日最新資訊28at.com

  • webman
  • Swoole

安裝

通過composer安裝:bIW28資訊網(wǎng)——每日最新資訊28at.com

composer require openzipkin/zipkin

使用

創(chuàng)建Tracer

Tracer對象可以用來創(chuàng)建Span對象(記錄分布式操作時間)。Tracer對象還配置了上報數(shù)據(jù)的網(wǎng)關地址、本機IP、采樣頻率等數(shù)據(jù),您可以通過調整采樣率來減少因上報數(shù)據(jù)產(chǎn)生的開銷。bIW28資訊網(wǎng)——每日最新資訊28at.com

function create_tracing($endpointName, $ipv4){    $endpoint = Endpoint::create($endpointName, $ipv4, null, 2555);    /* Do not copy this logger into production.     * Read https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md#log-levels     */    $logger = new /Monolog/Logger('log');    $logger->pushHandler(new /Monolog/Handler/ErrorLogHandler());    $reporter = new Zipkin/Reporters/Http(/Zipkin/Reporters/Http/CurlFactory::create());    $sampler = BinarySampler::createAsAlwaysSample();    $tracing = TracingBuilder::create()        ->havingLocalEndpoint($endpoint)        ->havingSampler($sampler)        ->havingReporter($reporter)        ->build();    return $tracing;}

記錄請求數(shù)據(jù)

$rootSpan = $tracer->newTrace();$rootSpan->setName('encode');$rootSpan->start();try {  doSomethingExpensive();} finally {  $rootSpan->finish();}

以上代碼用于記錄請求的根操作,如果需要記錄請求的上一步和下一步操作,則需要傳入上下文。示例:bIW28資訊網(wǎng)——每日最新資訊28at.com

$span = $tracer->newChild($parentSpan->getContext());$span->setName('encode');$span->start();try {  doSomethingExpensive();} finally {  $span->finish();}

總體流程如下

Client Span                                                Server Span┌──────────────────┐                                       ┌──────────────────┐│                  │                                       │                  ││   TraceContext   │           Http Request Headers        │   TraceContext   ││ ┌──────────────┐ │          ┌───────────────────┐        │ ┌──────────────┐ ││ │ TraceId      │ │          │ X-B3-TraceId      │        │ │ TraceId      │ ││ │              │ │          │                   │        │ │              │ ││ │ ParentSpanId │ │ Inject   │ X-B3-ParentSpanId │Extract │ │ ParentSpanId │ ││ │              ├─┼─────────>│                   ├────────┼>│              │ ││ │ SpanId       │ │          │ X-B3-SpanId       │        │ │ SpanId       │ ││ │              │ │          │                   │        │ │              │ ││ │ Sampled      │ │          │ X-B3-Sampled      │        │ │ Sampled      │ ││ └──────────────┘ │          └───────────────────┘        │ └──────────────┘ ││                  │                                       │                  │└──────────────────┘                                       └──────────────────┘

webman應用

1. 開通ARMS

開通ARMS地址 https://arms.console.aliyun.com/ (一般有15天試用)bIW28資訊網(wǎng)——每日最新資訊28at.com

2. 獲得數(shù)據(jù)上報接入點url

進入 https://tracing.console.aliyun.com/#/globalSetting/cn-hangzhou/process 按照圖示獲得接入點url地址。bIW28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片bIW28資訊網(wǎng)——每日最新資訊28at.com

如果你的服務器在阿里云上可以用阿里云vpc網(wǎng)絡接入點,本示例用的是阿里云公網(wǎng)接入點。bIW28資訊網(wǎng)——每日最新資訊28at.com

安裝

通過composer安裝:bIW28資訊網(wǎng)——每日最新資訊28at.com

composer require openzipkin/zipkin

使用

1. 編寫中間件

鏈路監(jiān)控中間件 app/middleware/ArmsMiddleware.phpbIW28資訊網(wǎng)——每日最新資訊28at.com

<?php/** * @desc 全鏈路監(jiān)控中間件 * @author Tinywan(ShaoBo Wan) * @date 2021/12/6 14:06 */declare(strict_types=1);namespace app/middleware;use Monolog/Handler/ErrorLogHandler;use Monolog/Logger;use support/Log;use think/facade/Db;use Webman/MiddlewareInterface;use Webman/Http/Response;use Webman/Http/Request;use Zipkin/Reporters/Http;use Zipkin/TracingBuilder;use Zipkin/Samplers/BinarySampler;use Zipkin/Endpoint;use Workerman/Timer;use const Zipkin/Tags/SQL_QUERY;class ArmsMiddleware implements MiddlewareInterface{    /**     * @desc: 方法描述     * @param Request $request     * @param callable $next     * @return Response     * @author Tinywan(ShaoBo Wan)     */    public function process(Request $request, callable $next) : Response    {        static $tracing = null, $tracer = null;        if (!$tracing) {            $endpoint = Endpoint::create('開源技術小棧', $request->getRealIp(), null, 2555);            $logger = new Logger('log');            $logger->pushHandler(new ErrorLogHandler());            $reporter = new Http(['endpoint_url' => config('security')['endpoint_url']]);            $sampler = BinarySampler::createAsAlwaysSample();            $tracing = TracingBuilder::create()                ->havingLocalEndpoint($endpoint)                ->havingSampler($sampler)                ->havingReporter($reporter)                ->build();            $tracer = $tracing->getTracer();            // 55秒上報一次,盡量將上報對業(yè)務的影響減少到最低            Timer::add(55, function () use ($tracer) {                $tracer->flush();            });            register_shutdown_function(function () use ($tracer) {                $tracer->flush();            });        }        $rootSpan = $tracer->newTrace();        $rootSpan->setName($request->controller."::".$request->action);        $rootSpan->start();        $request->rootSpan = $rootSpan;        $request->tracer = $tracer;        $result = $next($request);        // 統(tǒng)計sql(日志在內存)        if (class_exists(Db::class)) {            $logs = Db::getDbLog(true);            if (!empty($logs['sql'])) {                foreach ($logs['sql'] as $sql) {                    $sqlSpan = $tracer->newChild($rootSpan->getContext());                    $sqlSpan->setName(SQL_QUERY);                    $sqlSpan->start();                    $sqlSpan->tag('db.statement', $sql);                    $sqlSpan->finish();                }            }        }        $rootSpan->finish();        return $result;    }}

2. 配置中間件

在 config/middleware.php 中添加全局中間件如下:bIW28資訊網(wǎng)——每日最新資訊28at.com

return [    '' => [        /app/middleware/ArmsMiddleware::class,    ],    ...];

3. 查看監(jiān)控

訪問地址 https://tracing.console.aliyun.com/ ,效果類似如下:bIW28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片bIW28資訊網(wǎng)——每日最新資訊28at.com

接口監(jiān)控

圖片圖片bIW28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)庫監(jiān)控

圖片 圖片 bIW28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-93091-0.htmlPHP 服務實現(xiàn)性能剖析、跟蹤和可觀察性14444444444444】=102102102102102102102102102102102102102102102102實踐

聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 震驚!用 Suspense 解決請求依賴的復雜場景居然這么簡單!

下一篇: 嚴重!Spring AOP Bug導致切面重復執(zhí)行

標簽:
  • 熱門焦點
  • K60 Pro官方停產(chǎn) 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經(jīng)透露了,Redmi K60 Pro已經(jīng)停產(chǎn)且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產(chǎn)之后
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺競技

    旗艦機基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據(jù)博主數(shù)碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學習反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無法成功對代碼進行反混淆,尤其是使用自定義混淆器對其進行混淆時。什么是混
  • 量化指標是與非:挽救被量化指標扼殺的技術團隊

    作者 | 劉新翠整理 | 徐杰承本文整理自快狗打車技術總監(jiān)劉新翠在WOT2023大會上的主題分享,更多精彩內容及現(xiàn)場PPT,請關注51CTO技術棧公眾號,發(fā)消息【W(wǎng)OT2023PPT】即可直接領取
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發(fā)某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 慕巖炮轟抖音,百合網(wǎng)今何在?

    來源:價值研究所 作者:Hernanderz&ldquo;難道就因為自己的一個產(chǎn)品牛逼了,從客服到總裁,都不愿意正視自己產(chǎn)品和運營上的問題,選擇逃避了嗎?&rdquo;這一番話,出自百合網(wǎng)聯(lián)合創(chuàng)
  • 華為Mate60標準版細節(jié)曝光:經(jīng)典星環(huán)相機模組回歸

    這段時間以來,關于華為新旗艦的爆料日漸密集。據(jù)此前多方爆料,今年華為將開始恢復一年雙旗艦戰(zhàn)略,除上半年推出的P60系列外,往年下半年的Mate系列也將
  • iQOO 11S或7月上市:搭載“雞血版”驍龍8Gen2 史上最強5G Soc

    去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,iQOO 11不僅全球首發(fā)2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競屏,同時在快充
  • 最薄的14英寸游戲筆記本電腦 Alienware X14已可以購買

    2022年1月份在國際消費電子展(CES2022)上首次亮相的Alienware新品——Alienware X14現(xiàn)在已經(jīng)可以購買了,這款筆記本電腦被譽為世界上最薄的 14 英寸游戲筆
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美91精品| 香蕉成人啪国产精品视频综合网| 狠狠干综合网| 国模叶桐国产精品一区| 黄色影院成人| 亚洲国产成人久久| 亚洲日本电影| 一区二区三区欧美激情| 一区二区黄色| 午夜精品福利一区二区三区av | 欧美日韩国产黄| 欧美日韩亚洲精品内裤| 欧美视频在线不卡| 国产免费观看久久| 黄色国产精品| 亚洲日韩第九十九页| 亚洲精品欧美精品| 亚洲性图久久| 性亚洲最疯狂xxxx高清| 久久久久久久久久看片| 免费国产一区二区| 欧美日韩国产高清| 国产精品一区在线观看你懂的| 国产亚洲人成a一在线v站| 在线成人亚洲| 一区二区三区国产在线观看| 先锋资源久久| 蜜臀久久99精品久久久画质超高清| 欧美国产欧美综合| 国产精品看片你懂得| 国外成人免费视频| 欲色影视综合吧| 一本色道久久综合亚洲精品小说 | 欧美中文字幕在线视频| 久久国产一区二区| 欧美国产一区二区| 国产精品一区二区女厕厕| 激情五月婷婷综合| 99日韩精品| 欧美综合二区| 欧美片第一页| 国产一区二区三区四区| 亚洲美女黄色片| 欧美在线一级va免费观看| 欧美黑人多人双交| 国产日韩综合一区二区性色av| 在线欧美不卡| 亚洲影院在线| 欧美成人在线网站| 国产欧美日韩精品丝袜高跟鞋| 欧美日韩dvd在线观看| 国产精品xnxxcom| 亚洲成人直播| 欧美亚洲专区| 欧美伦理影院| 国产精品日韩欧美| 91久久视频| 小黄鸭精品aⅴ导航网站入口| 欧美jizz19性欧美| 国产午夜精品全部视频在线播放| 亚洲理论在线观看| 久久先锋影音| 久久精品女人的天堂av| 欧美日韩一区二区在线视频| 日韩一区二区精品视频| 在线激情影院一区| 久久久久久一区二区三区| 国产精品日韩精品| 亚洲国产欧美在线人成| 性久久久久久久久| 国产精品久久久999| 亚洲国产精品久久久久秋霞不卡 | 在线成人h网| 国产一区二区三区在线观看精品| 国产在线观看91精品一区| 亚洲高清av在线| 亚洲手机视频| 久久av一区二区| 国产一区观看| 久久一区二区三区四区| 国产日韩专区| 欧美不卡一卡二卡免费版| 久久久久综合| 久久精品30| 久久国产黑丝| 久久gogo国模啪啪人体图| 亚洲韩国精品一区| 激情久久久久| 国产一区二区三区免费不卡| 国产精品捆绑调教| 国产精品自拍一区| 久久夜色精品国产欧美乱极品| 久久久久久久久久看片| 国产精品每日更新| 国产精品麻豆va在线播放| 国产精品久久久久久久app| 国产精品久在线观看| 免费日韩成人| 性色av香蕉一区二区| 蜜桃久久精品乱码一区二区| 亚洲欧美日韩中文播放| 久久久久免费观看| 久久精品二区| 久久综合久久综合九色| 性一交一乱一区二区洋洋av| 亚洲高清不卡| 一区二区三区偷拍| 久久精品麻豆| 欧美日韩一区国产| 激情视频一区| 亚洲综合导航| 欧美色欧美亚洲另类二区| 另类天堂视频在线观看| 久久精品中文字幕免费mv| 国产午夜精品久久久久久久| 久久精品99国产精品日本| 极品日韩av| 欧美激情一区二区三区四区 | 伊人蜜桃色噜噜激情综合| 欧美黄色大片网站| 亚洲欧美激情一区| 在线日本成人| 欧美偷拍另类| 久久久精品免费视频| 亚洲精品一二三| 国产精品日韩欧美一区| 久久香蕉国产线看观看av| 日韩一级网站| 国产夜色精品一区二区av| 欧美国产亚洲精品久久久8v| 亚洲尤物视频网| 亚洲大胆人体在线| 国产精品成人一区二区三区吃奶| 久久久999| 亚洲特色特黄| 在线日韩中文| 国产精品系列在线| 欧美大片国产精品| 欧美一区二区三区免费视频| 亚洲国产综合在线| 国产嫩草影院久久久久| 欧美成人国产一区二区| 先锋亚洲精品| 亚洲精品一区久久久久久| 国产偷国产偷精品高清尤物| 欧美精品在线看| 久久久夜精品| 亚洲在线日韩| 亚洲精品日韩激情在线电影 | 激情综合网激情| 国产精品国产福利国产秒拍| 蜜臀99久久精品久久久久久软件| 亚洲一级在线观看| 亚洲激情综合| 国内伊人久久久久久网站视频| 欧美日韩一区二区三区四区在线观看 | 久久国产精彩视频| 中文久久乱码一区二区| 在线观看91精品国产入口| 国产精品免费在线| 欧美日本久久| 蜜臀av一级做a爰片久久| 欧美一区二区三区在线观看| 夜夜嗨网站十八久久| 在线观看精品视频| 国产区亚洲区欧美区| 欧美午夜精品一区| 六十路精品视频| 久久国产精品99国产精| 亚洲视频免费| 亚洲免费久久| 亚洲国产激情| 激情综合自拍| 国产亚洲综合在线| 国产精品一区二区三区久久久| 欧美精品乱人伦久久久久久| 久久免费黄色| 久久av一区二区三区| 西西裸体人体做爰大胆久久久| 一区二区三区久久| 日韩视频一区二区三区在线播放免费观看| 在线观看亚洲| 精久久久久久| 韩国av一区二区三区| 国产亚洲精品v| 国产欧美日韩中文字幕在线| 国产精品久久| 国产精品theporn88| 欧美日韩午夜| 欧美日韩在线视频一区| 欧美日本久久| 欧美日韩色综合| 欧美特黄一级大片| 欧美日韩免费高清| 欧美美女bb生活片| 欧美日本国产一区| 91久久精品国产| 亚洲激情视频网| 亚洲另类视频| 夜夜嗨av一区二区三区| 99亚洲伊人久久精品影院红桃| 亚洲人午夜精品| 亚洲日本精品国产第一区| 亚洲三级国产|