日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Welcome to YARP - 8.分布式跟踪

發(fā)布時間:2023/11/23 windows 58 coder
生活随笔 收集整理的這篇文章主要介紹了 Welcome to YARP - 8.分布式跟踪 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Welcome to YARP - 1.認識YARP并搭建反向代理服務(wù)

Welcome to YARP - 2.配置功能

  • 2.1 - 配置文件(Configuration Files)
  • 2.2 - 配置提供者(Configuration Providers)
  • 2.3 - 配置過濾器(Configuration Filters)

Welcome to YARP - 3.負載均衡

Welcome to YARP - 4.限流

Welcome to YARP - 5.身份驗證和授權(quán)

Welcome to YARP - 6.壓縮、緩存

Welcome to YARP - 7.目標健康檢查

Welcome to YARP - 8.分布式跟蹤

這篇文章結(jié)束,YARP 的學(xué)習(xí)就先告一段落了。還有很多省略的章節(jié)(比如:中間件、HTTPS和TLS、GRPC等等)。想要了解更多的小伙伴可以自己去官網(wǎng)的文檔了解。

介紹

在介紹 YARP 的分布式跟蹤之前,我們先來了解一下什么是分布式跟蹤。

當我們構(gòu)建大型的應(yīng)用程序或系統(tǒng)時,通常會將其拆分成多個部分,這些部分可能運行在不同的計算機或進程中。這種分布式架構(gòu)有助于提高系統(tǒng)的可伸縮性和性能,但也增加了故障診斷的難度。分布式跟蹤就像是應(yīng)用程序的偵探工具,可以幫助工程師找出應(yīng)用程序中的問題,特別是那些可能橫跨多個計算機或進程的問題。

舉個例子,假設(shè)我們有一個典型的網(wǎng)頁服務(wù),用戶發(fā)送請求后,這個請求可能經(jīng)過負載均衡器,然后傳遞給后端的Web服務(wù)器進程,最后可能會涉及數(shù)據(jù)庫的多次查詢。使用分布式跟蹤,就像我們在調(diào)查一樁案件一樣,工程師可以追蹤整個請求的過程。他們能夠分辨每個步驟是否成功,每個步驟花費了多少時間,甚至可以記錄每個步驟產(chǎn)生的詳細信息。

作為 ASP.NET Core 的組件,YARP 可以像任何其他 Web 應(yīng)用程序一樣輕松集成到不同的跟蹤系統(tǒng)中??梢允褂靡韵鲁绦蚺渲梅植际礁?,詳情參考:

  • OpenTelemetry ( 是一個與供應(yīng)商無關(guān)的庫,支持多種服務(wù) )
  • Application Insights Application Insights ( 是由 Microsoft 提供的功能齊全的服務(wù) )

.NET 具有對分布式跟蹤的內(nèi)置可配置支持,YARP 利用這些支持來啟用此類現(xiàn)成方案。

使用自定義跟蹤標頭

在使用 .NET 不原生支持的傳播機制時,需要創(chuàng)建一個專門的傳播器(DistributedContextPropagator)來處理該機制的上下文信息傳遞。

YARP 會移除 DistributedContextPropagator.Fields( 這是DistributedContextPropagator中的一個屬性或字段,用于存儲與上下文傳播相關(guān)的信息 ) 中的任何標頭,以便在 Inject 調(diào)用期間,傳播器可以重新添加它們到請求中。 這個步驟是為了在整個傳播過程中有效地管理標頭信息,以確保它們被適當?shù)靥幚砗蛡鬟f。

透傳代理

如果不希望代理主動參與跟蹤,并希望保留所有跟蹤標頭,您可以通過將SocketsHttpHandler.ActivityHeadersPropagator 設(shè)置為null來實現(xiàn)。這表示代理將保持對跟蹤標頭的透明傳遞,而不會主動干預(yù)。

services.AddReverseProxy()
    .ConfigureHttpClient((context, handler) => handler.ActivityHeadersPropagator = null);

示例

1.創(chuàng)建項目

dotnet new web -n YARP.Metrics -f net6.0

2.添加項目引用

<ItemGroup>
	<PackageReference Include="Yarp.Telemetry.Consumption" Version="2.1.0" />
</ItemGroup>

這個是 YARP 提供的庫,用來監(jiān)聽代理操作的各個階段,從而收集有關(guān)請求處理的詳細信息和性能指標。

在內(nèi)部,YARP 使用 EventSource 來收集來自許多用于處理請求的子系統(tǒng)的遙測事件和指標。

要監(jiān)聽這些指標,需要在 DI(依賴注入)中注冊實現(xiàn)每個功能接口的類。以下是該類庫提供的功能:

功能概述:

  1. Proxy(代理):代表整個代理操作,包括成功或失敗。
    • 事件包括:
      • 代理請求的啟動和停止時
      • 請求/響應(yīng)主體處理時
    • 指標包括:
      • 啟動的請求數(shù)量
      • 進行中的請求數(shù)量
      • 失敗的請求數(shù)量
  2. Kestrel:處理傳入請求的 Web 服務(wù)器。
    • 事件包括:
      • 請求的啟動/停止或失敗時
    • 指標包括:
      • 連接速率 - 每秒打開的連接數(shù)
      • 總連接數(shù)
      • TLS 握手次數(shù)
      • 入站隊列長度
  3. Http:用于向目標服務(wù)器發(fā)出出站請求的 HttpClient。
    • 事件包括:
      • 連接創(chuàng)建時
      • 請求的啟動/停止或失敗時
      • 標頭/內(nèi)容發(fā)送/接收時
      • 請求在連接可用時出隊列時
    • 指標包括:
      • 啟動的出站請求數(shù)量
      • 失敗的請求數(shù)量
      • 活動請求數(shù)量
      • 出站連接數(shù)量
  4. Sockets:涉及連接嘗試的事件和有關(guān)發(fā)送和接收的數(shù)據(jù)量的指標。
  5. NameResolution:涉及名稱解析嘗試的事件和有關(guān)目標的 DNS 查詢的指標。
  6. NetSecurity:涉及 SslStream 握手的事件和有關(guān)每個協(xié)議的握手數(shù)量和延遲的指標。

3.關(guān)鍵文件

  • ForwarderTelemetryConsumer(監(jiān)聽來自代理遙測的事件,記錄與代理請求處理的高級別過程相關(guān)的時序和信息。)
  • HttpClientTelemetryConsumer(監(jiān)聽來自 HttpClient 遙測的事件,記錄與目標服務(wù)器的出站請求和響應(yīng)相關(guān)的時序和信息。)
  • PerRequestMetrics(存儲按每個請求計算的指標的類。實例在請求的整個生命周期內(nèi)存儲在 AsyncLocal 存儲中。)
  • PerRequestYarpMetricCollectionMiddleware(處理請求的第一步和最后一步。它初始化每個請求的指標,并在請求結(jié)束時記錄結(jié)果。)

4.在DI中注冊

using YARP.Metrics;

var builder = WebApplication.CreateBuilder(args);

var services = builder.Services;

services.AddControllers();

services.AddReverseProxy()
    .LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));

services.AddHttpContextAccessor();

// 用于收集有關(guān)代理轉(zhuǎn)發(fā)的常規(guī)指標的接口
services.AddMetricsConsumer<ForwarderMetricsConsumer>();

// 將使用者注冊到代理轉(zhuǎn)發(fā)器遙測的事件
services.AddTelemetryConsumer<ForwarderTelemetryConsumer>();

// 將使用者注冊到HttpClient遙測事件
services.AddTelemetryConsumer<HttpClientTelemetryConsumer>();

services.AddTelemetryConsumer<WebSocketsTelemetryConsumer>();

var app = builder.Build();

// 收集和報告代理度量的自定義中間件
// 放置在開頭,因此它是每個請求運行的第一件也是最后一件事
app.UsePerRequestMetricCollection();

// 用于攔截WebSocket連接并收集暴露給WebSocketsTemetryConsumer的遙測的中間件
app.UseWebSocketsTelemetry();

app.MapReverseProxy();

app.Run();

5.Appsettings.json配置

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      // "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ReverseProxy": {
    "Routes": {
      "route1": {
        "ClusterId": "cluster1",
        "Match": {
          "Path": "{**catch-all}"
        }
      }
    },
    "Clusters": {
      "cluster1": {
        "Destinations": {
          "cluster1/destination1": {
            "Address": "https://www.baidu.com/"
          }
        }
      }
    }
  }
}

5.運行項目

接下來我們運行項目,就可以看到代理請求的一些指標數(shù)據(jù):

總結(jié)

到這里分布式跟蹤篇章也已經(jīng)結(jié)束了,它在分布式系統(tǒng)中尤為重要,可以分析性能瓶頸,定位錯誤和異常。而且收集的這些遙測數(shù)據(jù)(指標)可以導(dǎo)出到多種不同的后端存儲或可視化工具中。比如:ZipkinJaegerPrometheus,這都是后話了。有興趣的小伙伴自己研究吧。相關(guān)代碼已上傳Github,關(guān)鍵文件也都有注釋。至此 YARP 的學(xué)習(xí)就先告一段落了。還有很多省略的章節(jié)(比如:中間件、HTTPS和TLS、GRPC等等)。想要了解更多的小伙伴可以自己去官網(wǎng)的文檔了解。

總結(jié)

以上是生活随笔為你收集整理的Welcome to YARP - 8.分布式跟踪的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产女人18毛片水真多18 | 91视频免费网站 | 天天爽天天爽天天爽 | 风流还珠之乱淫h文 | 大尺度叫床戏做爰视频 | 美女无遮挡免费网站 | 亚洲国产成人一区二区精品区 | 游戏涩涩免费网站 | 91嫩草在线 | 一区二区在线免费看 | 国产精品视频无码 | 中文字幕无码人妻少妇免费 | 欧美日韩日本国产 | 黄色网页大全 | 精品国产亚洲一区二区麻豆 | 激情视频在线免费观看 | 日本黄色aaa | 国产男女猛烈无遮挡免费视频 | 夜夜嗨一区二区 | 最近中文字幕一区二区 | 女教师痴汉调教hd中字 | 久久在线精品 | 青青草免费公开视频 | 欧美午夜一区二区三区 | 亚洲草逼 | 日本美女性生活视频 | 久久大奶 | 日本免费在线视频 | 国产91一区二区三区在线精品 | 黄色成年人| 丨国产丨调教丨91丨 | 真人真事免费毛片 | 国产又色又爽又黄又免费 | 无码人妻精品一区二 | 久草网站 | 99riAv国产精品无码鲁大师 | 国产女主播视频 | av五月| 天堂中文视频在线 | 欧美午夜影院 | 中文字幕a√| 懂色av一区二区三区蜜臀 | 欧性猛交ⅹxxx乱大交 | 毛茸茸毛片| 国产毛片网 | 色婷婷狠狠爱 | 丁香一区二区三区 | 午夜一区二区三区免费观看 | 色骚网 | 国产美女一区二区三区 | 国产精品电影在线观看 | 91精品视频网站 | 美女黄页网站 | 深夜免费福利视频 | 国内性爱视频 | 欧美8888 | 久久久77| 精品人妻人人做人人爽 | 欧美人与动牲交xxxxbbbb | 午夜电影在线播放 | 久久精品人人做人人爽 | 欧美高清久久 | 草草福利影院 | 国产精品久久久久久亚洲调教 | 一区二区三区丝袜 | 欧美成人xxx | 国产一区精品在线 | 中文字幕+乱码+中文字幕明步 | 国产精品自慰网站 | 日本不卡一区在线观看 | 亚洲精品国产精品乱码桃花 | 懂色av一区二区三区免费 | 欧美极品视频在线观看 | 欧美高清v | 国产又大又粗又爽的毛片 | 97色吧 | 亚洲欧美日韩在线一区二区 | av黄在线观看 | 白丝久久 | www.天堂av.com| 一区二区激情 | 黄色片免费看 | 玖玖爱av| 亚洲男人的天堂在线观看 | 99国产精品一区二区三区 | 日韩一级黄色大片 | 日韩二级片 | 九色视频偷拍少妇的秘密 | 亚洲成a人在线观看 | 一二三区不卡 | 午夜视频在线观看一区 | 久久国产免费观看 | 老司机福利院 | 99久久99久久精品免费看蜜桃 | 天天插天天 | 伊人婷婷综合 | 看黄色a级片 | 欧美精品人妻一区二区 | 超碰人人人人人人 |