日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

APM應(yīng)用性能監(jiān)控

通過阿里云托管的Elasticsearch應(yīng)用性能監(jiān)控APM(Application Performance Monitoring)服務(wù),結(jié)合阿里云Elasticsearch,您可以搭建應(yīng)用性能監(jiān)控系統(tǒng),實現(xiàn)系統(tǒng)的可觀測性。本文介紹阿里云Elasticseasrch APM服務(wù)的概念、架構(gòu)及功能,以及如何快速接入并使用APM。

背景信息

可觀測性的本質(zhì)是度量您的基礎(chǔ)設(shè)施、平臺和應(yīng)用程序,以了解它是如何運行的。與傳統(tǒng)監(jiān)控運維相比,目前主流的監(jiān)控更加注重發(fā)現(xiàn)與預(yù)警問題,而可觀測性的終極目標是為一個復(fù)雜分布式系統(tǒng)所發(fā)生的一切給出合理解釋。監(jiān)控更注重軟件的交付過程中以及交付后的服務(wù)狀態(tài),而可觀測性則要為全研發(fā)與運維的生命周期負責(zé)。

日志、基礎(chǔ)架構(gòu)指標以及APM應(yīng)用程序性能監(jiān)測構(gòu)成了可觀測性的三要素。其中,APM彌補了指標和日志之間的差距。雖然日志和指標往往更具交叉性,涉及基礎(chǔ)架構(gòu)和組件,但APM更側(cè)重于應(yīng)用程序,允許IT和開發(fā)人員監(jiān)測其堆棧的應(yīng)用層,包括最終的用戶體驗。將APM添加到系統(tǒng)監(jiān)測中,您可以:

  • 了解服務(wù)的時間花在什么上,以及它崩潰的原因。

  • 了解服務(wù)如何相互交互,以及它的可視化瓶頸。

  • 主動發(fā)現(xiàn)并修復(fù)性能瓶頸和錯誤。

  • 提高開發(fā)團隊的生產(chǎn)力。

  • 在瀏覽器中跟蹤終端用戶體驗。

APM通常被應(yīng)用于以下場景:

  • 用戶體驗監(jiān)控:通過監(jiān)控用戶的行為提升用戶體驗。例如監(jiān)控用戶和Web界面或客戶端的交互,并記錄交互事件的時間。

  • 運行時應(yīng)用程序架構(gòu):理解服務(wù)間的依賴關(guān)系、架構(gòu)中應(yīng)用程序交互的網(wǎng)絡(luò)拓撲。

  • 業(yè)務(wù)事務(wù)(Business transaction):產(chǎn)生有意義的SLA報告,并從業(yè)務(wù)角度提供有關(guān)應(yīng)用程序性能的趨勢信息。

  • 組件監(jiān)控(Deep dive component monitoring):通常需要安裝Agent并且主要針對中間層,包括Web服務(wù)器、應(yīng)用和消息服務(wù)器等。健壯的監(jiān)控應(yīng)該能顯示代碼執(zhí)行的清晰路徑,因為這一維度和上述第二個維度緊密相關(guān),APM產(chǎn)品通常會將這兩個維度合并作為一個功能。

  • 分析或報告(Analytics/Reporting):將從應(yīng)用程序中收集的一系列指標數(shù)據(jù),標準化地展現(xiàn)成應(yīng)用性能數(shù)據(jù)的通用視圖。

阿里云托管的Elastic APM和目前比較流行的開源APM系統(tǒng)Apache SkyWalking的能力對比情況請參見能力對比

架構(gòu)及數(shù)據(jù)模型

阿里云Elasticsearch應(yīng)用性能監(jiān)控分析服務(wù),支持基于開源Elastic APM構(gòu)建云上一鍵托管的APM Server服務(wù),并靈活對接阿里云Elasticsearch服務(wù),能夠為您提供高效的應(yīng)用程序性能優(yōu)化與監(jiān)控能力。整體功能模塊架構(gòu)如下。APM架構(gòu)

Elastic APM由四個模塊組成,詳細信息請參見應(yīng)用性能監(jiān)控分析服務(wù)介紹。其中APM Agent采集器從其監(jiān)測的應(yīng)用程序中收集不同類型的信息和數(shù)據(jù),這些被稱為事件。采集器收集數(shù)據(jù)后將這些事件流式傳輸?shù)紸PM Server,由Server驗證并處理事件。事件支持的類型包括Spans、Transaction、Errors和Metrics:

  • Spans:范圍事件類型。包含有關(guān)已執(zhí)行的特定代碼路徑的信息。它們從活動的開始到結(jié)束進行度量,可以與其他Span具有父或子關(guān)系。

  • Transaction:事務(wù)事件類型。是一種特殊的Span(沒有父Span,只能從中派生出子Span,可以理解為“樹”這種數(shù)據(jù)結(jié)構(gòu)的根節(jié)點),具有與之關(guān)聯(lián)的額外元數(shù)據(jù)。你可以將Transactions視為您在服務(wù)中衡量的最高級別的工作,例如服務(wù)中的請求、提供的HTTP請求或運行的特定的后臺作業(yè)等。

  • Errors:錯誤事件類型。包含相關(guān)的原始異常信息,或發(fā)生異常時創(chuàng)建的日志信息。

  • Metrics:指標事件類型。APM Agent自動獲取基本的主機級別指標,包含系統(tǒng)和進程級別的CPU和內(nèi)存指標。除此之外還可獲取特定于代理的指標,例如Java Agent中的JVM指標和Go代理中的Go運行時指標。

前提條件

創(chuàng)建阿里云Elasticsearch 7.10版本實例,具體操作請參見創(chuàng)建阿里云Elasticsearch實例。購買時,建議您選擇日志增強版,以滿足應(yīng)用性能監(jiān)控場景下低成本海量數(shù)據(jù)寫入及存儲的需求,詳細信息請參見購買頁面參數(shù)(增強版)

使用限制

阿里云APM Server僅支持與阿里云Elasticsearch 7.10版本集成。

操作流程

  1. 步驟一:創(chuàng)建APM Server實例

  2. 步驟二:配置APM Agent

  3. 步驟三:在Kibana中進行應(yīng)用性能分析

步驟一:創(chuàng)建APM Server實例

  1. 登錄阿里云Elasticsearch控制臺
  2. 進入APM應(yīng)用性能監(jiān)控控制臺。
    1. 在頂部菜單欄處,選擇地域。
    2. 在左側(cè)導(dǎo)航欄,單擊APM應(yīng)用性能監(jiān)控
  3. APM Server管理頁面,參見創(chuàng)建APM Server實例,創(chuàng)建APM Server實例。

    其中專有網(wǎng)絡(luò)需要與待監(jiān)控的客戶端服務(wù)(APM Agent)所在的專有網(wǎng)絡(luò)保持一致。實例創(chuàng)建成功后,您可以單擊對應(yīng)實例右側(cè)的實例管理,查看實例的訪問地址等基本信息。查看APM訪問地址

步驟二:配置APM Agent

  1. APM Server管理頁面,單擊APM數(shù)據(jù)采集

  2. Agent數(shù)據(jù)采集對話框中,單擊與您客戶端相同語言的頁簽,根據(jù)提示配置數(shù)據(jù)采集。

    Agent數(shù)據(jù)采集

    配置完成后,代理程序會結(jié)合應(yīng)用程序收集性能指標和錯誤,最終將收集到的所有數(shù)據(jù)發(fā)送至Server端。以Java為例,配置方法如下:

    1. 參見High Level REST Client(7.x),配置應(yīng)用程序訪問阿里云Elasticsearch,在pom依賴中添加APM Agent依賴。

      <dependency>
        <groupId>co.elastic.apm</groupId>
        <artifactId>elastic-apm-agent</artifactId>
        <version>1.27.0</version>
      </dependency>
    2. Maven Central中下載應(yīng)用兼容的代理文件。

    3. 設(shè)置啟動參數(shù),并使用javaagent參數(shù)啟動應(yīng)用。

      java -javaagent:/root/elastic-apm-agent-1.27.0.jar \
           -Delastic.apm.service_name=my-application \
           -Delastic.apm.server_urls=http://apm-cn-tl32fxqq****.apm.elasticsearch.aliyuncs.com::8200 \
           -Delastic.apm.secret_token= \
           -Delastic.apm.application_packages=org.example \
           -jar elastic.jar
      • apm-agent-java-0.1.2.jar:需要替換為您上一步下載的代理文件的名稱,包含文件類型后綴(.jar)。

      • Delastic.apm.server_urls:將該參數(shù)值替換為您APM Server實例的訪問地址。實例創(chuàng)建成功后,單擊對應(yīng)實例右側(cè)的實例管理,即可獲取實例的訪問地址。

步驟三:在Kibana中進行應(yīng)用性能分析

  1. 登錄步驟一:創(chuàng)建APM Server實例時,所關(guān)聯(lián)的Elasticsearch實例的Kibana控制臺。

    登錄Kibana控制臺的具體操作,請參見登錄Kibana控制臺

    說明

    本文以阿里云Elasticsearch 7.10版本為例,其他版本操作可能略有差別,請以實際界面為準。

  2. 根據(jù)頁面提示進入Kibana主頁,單擊右上角的Dev tools

    進入Dev Tools頁面
  3. Console頁簽,運行以下腳本,開啟自動創(chuàng)建APM onboarding索引。

    說明
    • APM Server實例創(chuàng)建成功后會自動啟動實例服務(wù),啟動后Elasticsearch會自動創(chuàng)建APM相關(guān)索引,您可在Kibana控制臺中查看。除此之外,由于阿里云Elasticsearch對自動創(chuàng)建索引的命名規(guī)范有要求,APM onboarding索引的命名不符合當(dāng)前規(guī)范,因此您還需要手動開啟自動創(chuàng)建APM onboarding索引。
    • 以下腳本中的7.10.2為您創(chuàng)建的APM Server實例的版本號。
    PUT _cluster/settings
    {
      "persistent": {
        "action.auto_create_index":"+.*,+apm-7.10.2-onboarding-*,-*"
      }
    }
  4. 查看APM中包含的所有服務(wù)。

    查看APM服務(wù)
    1. 在頁面左上角單擊導(dǎo)航欄圖標圖標,展開左側(cè)導(dǎo)航欄。

    2. 在左側(cè)導(dǎo)航欄,單擊Observability下的APM

    3. Services頁簽下查看APM的所有服務(wù)。

  5. 單擊對應(yīng)服務(wù),查看服務(wù)的具體信息。

    petclinic-spring服務(wù)為例,服務(wù)信息如下圖(每項服務(wù)都具有類似的布局)。查看單服務(wù)的具體信息

    • 左上角顯示了響應(yīng)時間的平均值、p95和p99值,以顯示發(fā)生異常的具體時間。同時您可以在圖表上隱藏不關(guān)注的數(shù)值曲線,以便更好地了解異常值對整個服務(wù)影響。將鼠標移到任何一個圖表上時,可以得到一個彈出窗口顯示當(dāng)時的具體摘要。從圖中可以看出,響應(yīng)時長的突增沒有導(dǎo)致任何服務(wù)器發(fā)生500響應(yīng)錯誤。

    • 通過查看下方請求明細,您可以看到應(yīng)用程序中每個請求都來自不同的節(jié)點,您可以通過使用各種代理API來擴充默認節(jié)點。支持按列標題、響應(yīng)時長和影響列排序,影響列考慮了對應(yīng)請求的延遲和熱度數(shù)據(jù)。以影響最高的getOwners請求為例 ,它的平均延遲并不高,為96毫秒。單擊該請求名稱,可以看到對應(yīng)請求的詳細信息,圖中反應(yīng)最慢的請求也不到一秒鐘。請求明細

    • 向下滾動,可以看到該請求處理的操作瀑布視圖。其中有很多SELECT語句正在進行,使用APM能夠看到正在執(zhí)行的實際查詢。

      圖 1. 請求處理的操作瀑布視圖ss

      圖 2. 正在執(zhí)行的實際查詢AMP請求處理的瀑布視圖2

    • 由于該應(yīng)用程序中的多層微服務(wù)均安裝了APM Agent,您可以單擊View full trace,查看該請求的詳細信息并顯示全鏈路中參與處理的所有組件,從而可以實現(xiàn)一個從瀏覽器層開始的請求的分布式追蹤。

      圖 3. 請求的詳細信息查看請求中涉及的所有內(nèi)容

      圖 4. 全鏈路中的所有組件全鏈路中參與處理的所有組件

    • 真實用戶監(jiān)測:為了從分布式跟蹤中獲得最大價值,您需要盡可能多地監(jiān)測組件和服務(wù),包括使用真實用戶監(jiān)測RUM(Real User Monitoring)。快速的服務(wù)響應(yīng)時間并不意味著請求在瀏覽器中很快就能完成, APM能夠幫助業(yè)務(wù)衡量最終用戶在瀏覽器中的終端體驗。下圖的分布式跟蹤顯示了四種不同的服務(wù),包含了網(wǎng)絡(luò)瀏覽器等多項。真是用戶監(jiān)測--分布式跟蹤

參考文檔

利用Elasticsearch和Elastic APM監(jiān)測應(yīng)用