<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          云原生ASP.NET Core程序的可監(jiān)測(cè)性和可觀察性

          共 3441字,需瀏覽 7分鐘

           ·

          2021-04-30 08:23

          分布式應(yīng)用程序很復(fù)雜,給開發(fā)人員調(diào)試和修復(fù)生產(chǎn)問題帶來了一系列挑戰(zhàn)。盡管微服務(wù)架構(gòu)可幫助維持一支規(guī)模較小,可以自主工作并專注于獨(dú)立業(yè)務(wù)團(tuán)隊(duì),但由于其分布式性質(zhì),它帶來了新的挑戰(zhàn)。例如,在業(yè)務(wù)交易過程中出現(xiàn)問題的情況下,需要端到端跟蹤請(qǐng)求,該請(qǐng)求可能跨越多個(gè)服務(wù)和基礎(chǔ)架構(gòu)。解決問題時(shí)可能遇到的挑戰(zhàn)有:


          • 管理已知和未知故障

          • 故障也是分布式的

          • 傳統(tǒng)監(jiān)控系統(tǒng)不適用

          ?

          這是可監(jiān)測(cè)性和可觀察性出現(xiàn)的地方。可監(jiān)測(cè)性記錄應(yīng)用程序的總體運(yùn)行狀況,而可觀察性則可以幫助您更深入地了解上下文數(shù)據(jù)。在.NET大會(huì)上,我和Cecil 已經(jīng)深入討論了云原生應(yīng)用程序中的可監(jiān)測(cè)性和可觀察性。



          以上視頻中,我們著眼于可觀察性和可監(jiān)測(cè)性的關(guān)鍵點(diǎn),例如日志(Logging),衡量指標(biāo)(Metrics),鏈路追蹤(Tracing),并深入分析了運(yùn)行狀況檢查(Health checks)。


          ff968696881fe3d73d39c3b622c181ae.webp


          以下是視頻中討論的一些基本概念:

          ?


          運(yùn)行狀況檢查(Health Checks)



          微服務(wù)實(shí)現(xiàn)了運(yùn)行狀況檢查,最理想的情況是使用HTTP endpoints,以便各種實(shí)時(shí)監(jiān)控系統(tǒng)可以查詢狀態(tài)。?運(yùn)行狀況檢查端點(diǎn)至少應(yīng)做出以下響應(yīng):


          • 系統(tǒng)正在運(yùn)行嗎?

          • 它可以執(zhí)行任務(wù)嗎?


          在Kubernetes世界中,這些分別直接轉(zhuǎn)換為livenessreadiness它們定義在Kubernetes的YAML部署配置文件中。


          bd2350847272c6acea3e987c54f1aeef.webp


          • liveness路徑是Kubernetes定期查詢以檢查故障的端點(diǎn)。?Kubernetes提供了liveness探針來監(jiān)測(cè)失敗的應(yīng)用程序,并在它們不返回成功代碼時(shí)重新啟動(dòng)它們。

          • readiness路徑是Kubernetes查詢以了解服務(wù)何時(shí)就緒,可以開始接受流量的終端。?當(dāng)所有注冊(cè)的檢查都成功時(shí),它將返回HTTP狀態(tài)代碼200。

          ?

          ASP.NET Core提供用于向可監(jiān)測(cè)性系統(tǒng)報(bào)告運(yùn)行狀況的中間件和庫(kù),來提供運(yùn)行狀況檢查。?相關(guān)文檔請(qǐng)查閱ASP.NET Core中的運(yùn)行狀況檢查


          ASP.NET Core中的運(yùn)行狀況檢查:

          https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?WT.mc_id=friends-0000-NANIL&view=aspnetcore-5.0



          日志



          無(wú)論您使用什么工具調(diào)查生產(chǎn)環(huán)境中的問題,最終都會(huì)是以日志的形式反應(yīng)問題的根本原因。?在分布式環(huán)境中,您需要確保日志記錄包含有助于調(diào)試的深入信息。?可以從一個(gè)集中的地方查詢它們。?每個(gè)日志記錄都需要有一個(gè)關(guān)聯(lián)ID,以便進(jìn)行跟蹤以了解全局。



          結(jié)構(gòu)化日志



          使用結(jié)構(gòu)化日志,您可以將序列化的對(duì)象添加到日志中,日志監(jiān)視系統(tǒng)可以高效地查詢這些對(duì)象。?例如,您可以根據(jù)customerID或trasnsactionID查詢整個(gè)事務(wù)日志。?在ASP.NET Core應(yīng)用程序中,可以使用提供結(jié)構(gòu)化日志記錄的Serilog。請(qǐng)查閱.NET Core和ASP.NET Core中的日志入門,以及Serilog了解結(jié)構(gòu)化日志。


          .NET Core和ASP.NET Core中的日志:

          https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?WT.mc_id=friends-0000-NANIL&view=aspnetcore-5.0

          Serilog:

          https://serilog.net/



          集中式日志和關(guān)聯(lián)ID



          在傳統(tǒng)應(yīng)用程序中,日志文件存儲(chǔ)在本地計(jì)算機(jī)上。在分布式環(huán)境中,把日志記錄在某一臺(tái)計(jì)算機(jī)中的純文本文件中是沒有幫助的。生成日志的應(yīng)用程序可能無(wú)法訪問本地磁盤,或者當(dāng)容器在虛擬機(jī)中移動(dòng)時(shí),本地磁盤可能是高度瞬態(tài)的。由于在Cloud-native應(yīng)用程序中使用基于文件的日志會(huì)遇到一些問題,因此首選集中式日志。日志由應(yīng)用程序收集并傳送到一個(gè)集中的日志應(yīng)用程序,該應(yīng)用程序?qū)θ罩具M(jìn)行索引和存儲(chǔ)。這類系統(tǒng)每天可以接收數(shù)十GB的日志。Serilog提供了向集中式系統(tǒng)(如Azure Application Insights,Azure Monitor的一項(xiàng)功能)寫入日志事件的接收器。在構(gòu)建跨多個(gè)服務(wù)的日志記錄時(shí),遵循一些標(biāo)準(zhǔn)做法也很有幫助。例如,在事務(wù)開始時(shí)生成一個(gè)關(guān)聯(lián)ID,然后將其記錄到與該事務(wù)相關(guān)的每條消息中,這樣可以更容易地從集中式日志系統(tǒng)中搜索所有相關(guān)消息。


          接收器:

          https://github.com/serilog/serilog/wiki/Provided-Sinks

          關(guān)聯(lián)ID:

          https://www.rapid7.com/blog/post/2016/12/23/the-value-of-correlation-ids/



          分布式跟蹤



          ff3b10c5f3719c525731a8e7300466c4.webp


          分布式跟蹤等效于現(xiàn)代云和微服務(wù)體系結(jié)構(gòu)的調(diào)用堆棧,并添加了性能分析器。分布式跟蹤或分布式請(qǐng)求跟蹤有助于端到端查看請(qǐng)求,并使您能夠從整體上識(shí)別問題。跟蹤可以為您提供有關(guān)問題的詳細(xì)答案,例如事件發(fā)生在什么時(shí)候?它花了多少時(shí)間?為什么要花這么長(zhǎng)時(shí)間?哪些微服務(wù)處理了它?等等,像openzipkin / zipkin之類的開源分布式跟蹤系統(tǒng),在該領(lǐng)域非常流行。

          ?

          為您的應(yīng)用程序啟用分布式跟蹤就跟將相應(yīng)的分布式跟蹤提供商的SDK添加到每個(gè)微服務(wù)中一樣簡(jiǎn)單。例如,在您的應(yīng)用中安裝并配置了Application Insights SDK后,SDK依賴關(guān)系自動(dòng)收集器會(huì)自動(dòng)收集流行框架,庫(kù)和技術(shù)的跟蹤信息。

          ?

          在幾個(gè)不同的系統(tǒng)和工具之間,需要有一套標(biāo)準(zhǔn)以便于觀察。OpenTelemetry標(biāo)準(zhǔn)化了不同的應(yīng)用程序和框架如何收集和發(fā)出可觀測(cè)性遙測(cè)。OpenTelemetry提供了一個(gè)與供應(yīng)商無(wú)關(guān)的規(guī)范、一組api、sdk和工具以及用于可觀測(cè)性遙測(cè)(分布式跟蹤、度量等)的集成。查看博客文章OpenTelemetry?.net?reachs?v1.0以獲取詳細(xì)信息。


          openzipkin/zipkin:

          https://github.com/openzipkin/zipkin/?WT.mc_id=friends-0000-NANIL

          Application Insights SDK:

          https://docs.microsoft.com/en-us/azure/azure-monitor/app/distributed-tracing

          OpenTelemetry:

          https://opentelemetry.io/

          OpenTelemetry.net reachs v1.0:

          https://devblogs.microsoft.com/dotnet/opentelemetry-net-reaches-v1-0/?WT.mc_id=friends-0000-NANIL



          動(dòng)手模塊



          我們已經(jīng)構(gòu)建了一系列模塊來幫助您學(xué)習(xí)構(gòu)建.NET微服務(wù)和云原生技術(shù)。?查看以下模塊,這些模塊將幫助您了解可監(jiān)測(cè)性和可觀察性相關(guān)技術(shù)。


          • 行運(yùn)行狀況檢查:創(chuàng)建和部署.Net微服務(wù)和云原生技術(shù)

          • 可監(jiān)測(cè)性和可觀察性:測(cè)試cloud-native ASP.NET Core微服務(wù)

          • 有關(guān)其他主題,請(qǐng)查看https://aka.ms/aspnet-microservices

          創(chuàng)建和部署.Net微服務(wù)和云原生技術(shù):

          https://docs.microsoft.com/learn/modules/microservices-aspnet-core/?WT.mc_id=friends-0000-NANIL&ns-enrollment-type=Collection&ns-enrollment-id=8mq4i2mzgjwn10

          測(cè)試cloud-native ASP.NET Core微服務(wù):

          https://docs.microsoft.com/en-us/learn/modules/microservices-logging-aspnet-core/?WT.mc_id=friends-0000-NANIL&ns-enrollment-type=Collection&ns-enrollment-id=8mq4i2mzgjwn10



          8df9d791910610364a1a526a4de79416.webp





          b3da517b16468e7ea395b0204fee306a.webp

          歡迎訂閱微軟開發(fā)者月刊
          獲取微軟最新技術(shù)資訊




          站長(zhǎng)推薦大家關(guān)注上面的公眾號(hào)。

          瀏覽 76
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产一级AV毛片 | 艹逼欧美变态 | 色婷婷1234区在线 | 日韩一中文字幕 | 亚洲精品在线无码观看 |