精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PHP 服務實現性能剖析、跟蹤和可觀察性實踐

開發 前端
數據上報至鏈路追蹤控制臺后,鏈路追蹤組件進行實時聚合計算和持久化,形成鏈路明細、性能總覽、實時拓撲等監控數據。您可以據此進行問題排查與診斷。

簡介

鏈路追蹤Tracing Analysis為分布式應用的開發者提供了完整的調用鏈路還原、調用請求量統計、鏈路拓撲、應用依賴分析等工具,可以幫助開發者快速分析和診斷分布式應用架構下的性能瓶頸,提高微服務時代下的開發診斷效率。

官方地址:https://github.com/openzipkin/zipkin

Zipkin運行架構

圖片圖片

產品架構(鏈路追蹤)

圖片圖片

鏈路追蹤的主要工作流程

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

業務場景

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

圖片圖片

請求&響應

微服務架構下,一次請求后端會經歷多個服務調用(所有請求鏈有相同的traceId和不同的spanId),都會沿著traceText帶到每一個服務中。

數據是如何上報的?

直接上報數據

圖片圖片

不通過Agent而直接上報數據的原理(傳統框架。PHP-FPM + Nginx模式)

  • ThinkPHP6.0
  • Laravel
  • Yii2.0

通過Agent上報數據

圖片圖片

通過Agent上報數據的原理(現代化框架。命令行模式)。

  • webman
  • Swoole

安裝

通過composer安裝:

composer require openzipkin/zipkin

使用

創建Tracer

Tracer對象可以用來創建Span對象(記錄分布式操作時間)。Tracer對象還配置了上報數據的網關地址、本機IP、采樣頻率等數據,您可以通過調整采樣率來減少因上報數據產生的開銷。

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;
}

記錄請求數據

$rootSpan = $tracer->newTrace();
$rootSpan->setName('encode');
$rootSpan->start();

try {
  doSomethingExpensive();
} finally {
  $rootSpan->finish();
}

以上代碼用于記錄請求的根操作,如果需要記錄請求的上一步和下一步操作,則需要傳入上下文。示例:

$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天試用)

2. 獲得數據上報接入點url

進入 https://tracing.console.aliyun.com/#/globalSetting/cn-hangzhou/process 按照圖示獲得接入點url地址。

圖片圖片

如果你的服務器在阿里云上可以用阿里云vpc網絡接入點,本示例用的是阿里云公網接入點。

安裝

通過composer安裝:

composer require openzipkin/zipkin

使用

1. 編寫中間件

鏈路監控中間件 app\middleware\ArmsMiddleware.php

<?php
/**
 * @desc 全鏈路監控中間件
 * @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秒上報一次,盡量將上報對業務的影響減少到最低
            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);

        // 統計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 中添加全局中間件如下:

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

3. 查看監控

訪問地址 https://tracing.console.aliyun.com/ ,效果類似如下:

圖片圖片

接口監控

圖片圖片

數據庫監控

圖片圖片

責任編輯:武曉燕 來源: 開源技術小棧
相關推薦

2024-03-27 14:43:07

.NET Core后端監控可觀測性

2021-07-12 11:24:00

流利說可觀察性平臺阿里云

2025-05-07 11:54:05

2025-05-14 18:05:05

DataStream大數據可觀察性

2021-06-06 22:39:48

網絡安全監控網絡攻擊

2022-08-12 06:26:54

微服務架構

2021-01-26 09:11:16

數字體驗DEM網絡可觀察性

2023-06-12 16:45:20

數據管理

2024-06-18 10:16:49

2021-10-26 10:26:25

云計算云計算環境云應用

2023-02-23 19:28:09

ODD測試

2023-08-24 08:00:00

開發Java可觀察性

2021-06-27 17:18:23

網絡可觀察性網絡網絡運營

2021-11-14 22:14:08

人工智能機器學習工具

2022-07-18 13:37:56

云計算云原生可觀察性

2023-02-21 08:00:00

2023-11-17 08:00:54

Tetragon執行工具

2022-12-29 10:16:12

觀察性系統監視

2025-07-18 10:00:00

云計算架構存儲

2021-09-26 09:50:21

開發技能程序
點贊
收藏

51CTO技術棧公眾號

欧美男女性生活在线直播观看| 久久蜜桃一区二区| 国内精品久久影院| 美女又爽又黄视频毛茸茸| 最新日韩精品| 亚洲色图欧美在线| 精品国产_亚洲人成在线| 欧美一区二区三区网站| 欧美mv日韩| 亚洲国产成人精品一区二区| 嫩草av久久伊人妇女超级a| 成人av黄色| 久久久噜噜噜久噜久久综合| 成人网页在线免费观看| 日韩精品――中文字幕| 日本久久综合| 亚洲国产欧美在线成人app| 成人亚洲精品777777大片| 日韩免费影院| 欧美激情一区不卡| 国产日韩三区| 国产免费视频一区二区三区| 亚洲女同在线| 欧美二区乱c黑人| 日韩一级片在线免费观看| 中文字幕视频精品一区二区三区| 欧美视频一区二区三区| 三上悠亚久久精品| 超碰人人在线| 国产精品国产精品国产专区不蜜| 极品尤物一区二区三区| 精品乱子伦一区二区| 日本va欧美va欧美va精品| 久久久久久久久久久国产| 亚洲一级理论片| 亚欧日韩另类中文欧美| 精品国产一区二区亚洲人成毛片| 五月天中文字幕在线| 日韩中文影院| 色先锋aa成人| 日韩少妇内射免费播放18禁裸乳| 亚洲第一图区| 亚洲人成电影网站色mp4| 婷婷久久五月天| 黄色av网站在线| 久久免费视频色| 欧美成人蜜桃| 三区在线观看| 2020国产精品自拍| 精品福利影视| 亚洲 精品 综合 精品 自拍| 成人av网站免费| 国产高清在线一区| 亚洲精品国偷拍自产在线观看蜜桃| 久久成人18免费观看| 国产精品综合网站| 在线观看中文字幕码| 日本欧美韩国一区三区| 国产精品99蜜臀久久不卡二区| 久久久久亚洲av成人毛片韩| 91久久黄色| 性色av香蕉一区二区| 日本三级网站在线观看| 亚洲激情av| 91sa在线看| www.国产com| 久久久噜噜噜| 国产精品美乳一区二区免费| 亚洲天堂手机版| 久久成人精品无人区| 亚洲a∨日韩av高清在线观看| 国产精品亚洲lv粉色| 国产精品一区二区在线播放| av一区二区三区在线观看| 亚洲欧美另类日韩| 91免费国产在线观看| 视频在线99re| 91在线中文| 亚洲成人动漫精品| 熟女人妇 成熟妇女系列视频| 激情久久99| 日韩一区二区视频| 亚洲调教欧美在线| 精品久久久久中文字幕小说| 日韩一级裸体免费视频| 国产盗摄x88av| 99精品国产一区二区青青牛奶| 欧美中文字幕在线| 在线观看色网站| 成人在线视频首页| 欧洲久久久久久| 国产精品久久久久久福利| 亚洲一区二区av在线| 欧洲av无码放荡人妇网站| 六九午夜精品视频| 精品国产免费视频| 91视频免费看片| 亚洲日本视频| 国产精品一区久久久| 亚洲欧美高清视频| 日本一二三不卡| 日韩专区第三页| 日本欧美韩国| 亚洲国产精品免费| 手机在线中文字幕| 国产色综合网| 亚洲一区二区在线播放| 欧美3p视频在线观看| 亚洲人成小说网站色在线| www.com毛片| 国产精选久久| 伊人一区二区三区久久精品| 国产在线一二区| 久久99精品国产| 欧美亚洲爱爱另类综合| 自拍亚洲图区| 欧美视频自拍偷拍| 欧美亚一区二区三区| 欧美午夜精品| 国产精品无av码在线观看| 午夜影院在线视频| 亚洲黄色免费网站| 最新天堂中文在线| 啪啪亚洲精品| 国外成人性视频| 亚洲AV无码成人片在线观看| 中文字幕av资源一区| 四虎永久在线精品无码视频| 91精品短视频| 欧美成人亚洲成人| 亚洲中文一区二区三区| 久久久久久夜精品精品免费| 九色自拍视频在线观看| 免费一级欧美在线大片| 日韩视频在线免费| 中文字幕av久久爽| 国产农村妇女毛片精品久久麻豆 | 欧洲美女7788成人免费视频| 国产白浆在线观看| **性色生活片久久毛片| 人人干人人干人人| 成人综合一区| 国产精品久久久久久久天堂 | 97se亚洲国产综合自在线不卡| 永久免费看av| 蜜桃精品视频| 欧美国产日本在线| 亚洲乱色熟女一区二区三区| 亚洲精品国产高清久久伦理二区| 亚洲免费黄色录像| 91中文字幕精品永久在线| 国产欧美日韩中文字幕| 在线观看完整版免费| 欧美性猛交xxxxxx富婆| 快灬快灬一下爽蜜桃在线观看| 久久综合伊人| 日韩欧美一区二区三区久久婷婷| 美脚恋feet久草欧美| 亚洲人成五月天| 亚洲av综合一区| 国产精品国模大尺度视频| 天堂视频免费看| 中文字幕一区二区三区乱码图片| 91在线视频导航| 色综合999| 亚洲第一网站免费视频| √资源天堂中文在线| 久久久三级国产网站| 亚洲老女人av| 中文精品久久| 国产欧美日韩伦理| 欧美人与性动交xxⅹxx| 中文字幕成人精品久久不卡| 91久久国语露脸精品国产高跟| 国产精品电影一区二区三区| 性一交一黄一片| 日韩视频不卡| 亚洲黄色一区二区三区| 国产欧美88| 91精品国产高清| 国产免费av高清在线| 在线成人免费观看| 日本在线视频免费观看| 欧美激情中文字幕一区二区| 一级片免费在线观看视频| 亚洲毛片视频| 亚洲日本一区二区三区在线不卡| 精品一区二区三区亚洲| 91高清视频免费| 97超碰人人在线| 亚洲成人在线网| 国产精品成人久久久| 亚洲最大色网站| 中文字幕成人动漫| 国产成人自拍网| 三级a在线观看| 欧美日韩综合| 亚洲成人在线视频网站| 97se亚洲| 国产在线精品成人一区二区三区| 不卡的av影片| 日韩中文字幕在线免费观看| a天堂视频在线| 欧美自拍偷拍一区| 日本一本高清视频| 成人欧美一区二区三区小说| 菠萝菠萝蜜网站| 国产精品一区在线| 日本激情视频在线播放| 99精品国产一区二区青青牛奶 | 日韩视频不卡| 日本xxx免费| 欧美综合在线视频观看| 国产亚洲自拍偷拍| 国产亚洲字幕| 国产成人小视频在线观看| 黄色成人在线网| 久久人人爽人人爽爽久久| 黄色av免费在线观看| 亚洲第一级黄色片| 国产wwwxxx| 欧美日韩国产综合视频在线观看| 九九热在线视频播放| 一区二区三区.www| 成人在线观看小视频| 国产亚洲人成网站| 人人妻人人澡人人爽人人精品| 国产精品中文欧美| 亚洲视频一二三四| 蜜桃视频免费观看一区| 情侣黄网站免费看| 国产美女一区| 日韩少妇内射免费播放18禁裸乳| 欧美午夜电影在线观看| 成人高清dvd| 中文字幕人成人乱码| 中文字幕欧美人与畜| 日韩精品免费一区二区三区| 欧美日韩最好看的视频| 亚洲第一福利社区| 欧美xxxx黑人又粗又长精品| 日韩福利视频一区| 欧美成人一区二区在线| 精品一区三区| 四虎永久在线精品免费一区二区| 欧美美女在线观看| 日本不卡二区高清三区| 国产精品片aa在线观看| 日韩av在线一区二区三区| 国精一区二区| 亚洲国产精品综合| 久久精品国产68国产精品亚洲| 亚洲欧美日韩不卡一区二区三区| 日韩久久精品| 黄色网址在线免费看| 一区二区三区四区日韩| 欧美日韩午夜爽爽| 在线观看日韩av电影| 乱人伦xxxx国语对白| 羞羞答答国产精品www一本| 欧美精品色婷婷五月综合| 日本不卡在线视频| 午夜啪啪小视频| 国产剧情一区在线| 欧美性生交xxxxx| 91日韩精品一区| 性欧美精品男男| 亚洲丝袜美腿综合| 免费中文字幕在线观看| 精品福利视频导航| 日本中文字幕在线观看视频| 欧美三区在线观看| 精品人妻无码一区二区| 亚洲国产第一页| 国产小视频在线播放| 日韩专区中文字幕| 欧美大片黄色| 日韩av手机在线看| 日韩成人免费av| 国产美女在线精品免费观看| 亚洲尤物av| 欧美aaa在线观看| 亚洲激情网站| 国产三级三级看三级| 国产一区 二区 三区一级| 中文文字幕文字幕高清| 国产欧美精品一区| 国产一级黄色av| 色偷偷一区二区三区| 国产精品免费无遮挡| 亚洲激情在线视频| 日本在线天堂| 韩国v欧美v日本v亚洲| 国产精品美女午夜爽爽| 国产美女精品久久久| 日韩精品免费| 日本a级片免费观看| 激情另类小说区图片区视频区| 影音先锋黄色资源| 亚洲欧美一区二区在线观看| 欧美激情亚洲综合| 欧美一区二区三区色| 免费毛片在线| 久久久亚洲精选| 欧美一区=区三区| 免费一区二区三区在在线视频| 亚洲精品va| 天天操天天摸天天爽| 99久久综合狠狠综合久久| 国产一区二区播放| 欧美色网站导航| 牛牛澡牛牛爽一区二区| 欧美激情亚洲视频| 日本欧美在线| 亚洲精品国产一区| 久久国产精品亚洲77777| 波多野结衣中文字幕在线播放| 国产亚洲成年网址在线观看| 国产精品成人av久久| 欧美一区二区在线免费观看| 户外极限露出调教在线视频| 91精品国产91久久久久| 国产成人aa在线观看网站站| 天天做天天爱天天高潮| 日本免费在线视频不卡一不卡二| 国产麻豆xxxvideo实拍| 夜夜亚洲天天久久| 国产露脸91国语对白| 在线精品高清中文字幕| 午夜欧美巨大性欧美巨大| 精品久久久久久乱码天堂| 国产精品videosex极品| 91香蕉视频免费看| 亚洲少妇中出一区| 国产精品久久影视| 色噜噜狠狠狠综合曰曰曰| 欧美va在线| 日本精品一区二区| 天堂av在线一区| 国产av自拍一区| 日韩欧美高清视频| 麻豆导航在线观看| 热门国产精品亚洲第一区在线| 亚洲影院天堂中文av色| 成人一级片网站| 国产午夜精品理论片a级大结局| 亚洲熟妇无码乱子av电影| 国产丝袜一区二区三区| 另类图片综合电影| 欧洲精品码一区二区三区免费看| 日日嗨av一区二区三区四区| 精品无码国产污污污免费网站| 在线观看www91| 婷婷在线视频| 91久久国产精品91久久性色| 一二三区不卡| 激情综合激情五月| 精品人伦一区二区三区蜜桃免费| 无码精品人妻一区二区三区影院 | 在线看成人av| 日韩电影中文字幕在线| 亚洲精品中文字幕| 天天综合色天天综合色hd| 精品亚洲porn| 久久香蕉精品视频| 亚洲毛片一区二区| 69堂免费精品视频在线播放| 中国成人在线视频| 粉嫩嫩av羞羞动漫久久久 | 成人免费看片| 99久久自偷自偷国产精品不卡| 在线精品一区二区| 自拍偷拍视频亚洲| 91精品国产91久久综合桃花 | 亚洲第一激情av| 免费人成在线观看网站| 91精品啪在线观看麻豆免费| 激情婷婷亚洲| 国产在线观看h| 日韩一区二区免费在线观看| 岛国av在线网站| 偷拍视频一区二区| 国产精品一区一区三区| 国语对白永久免费| 久久精品人人做人人爽| 激情视频极品美女日韩| 99视频精品免费| 伊人色综合久久天天人手人婷| 亚洲色图 校园春色| 国产精品视频成人| 日韩午夜高潮| 九九热久久免费视频| 亚洲国产古装精品网站| 色猫猫成人app| 日韩欧美一区二| 亚洲视频免费在线| 韩国三级在线观看久| 99热国产免费| 免费人成在线不卡| 男人的天堂一区|