使用Managed Service for OpenTelemetry前,您需要完成阿里雲帳號註冊、開通Managed Service for OpenTelemetry以及擷取存取點資訊。本文以使用OpenTelemetry Java Agent自動埋點上報Java應用資料為例,協助您快速上手Managed Service for OpenTelemetry。
前提條件
-
註冊阿里雲帳號
-
開通Managed Service for OpenTelemetry
-
方案概覽
舊版控制台的鏈路追蹤詳情頁展示一次 HTTP 404 請求的完整調用鏈:左側時間軸包含 5 個 Span 層級,依次為 GET /**(404,11.1ms)、ResourceHttpRequestHandler.handleRequest(85μs)、ResponseFacade.sendError(19μs)、BasicErrorController.errorHtml(4.92ms)、Render error(4.34ms),頂部顯示 TraceID、開始時間、總耗時及紅色異常提示。右側 Span 詳情面板展示應用程式名稱 java-agent-usage-0.0.1-SNAPSHOT、介面名 BasicErrorController.errorHtml、spanId、parentSpanId 及 Attributes,包括 ali.trace.component_type=98、ali.trace.flag=x-trace、thread.name=http-nio-8081-exec-1 等屬性。
本文以OpenTelemetry Java Agent自動埋點上報Java應用資料為例進行說明,主要分為以下幾步:
-
下載Demo應用代碼:您可以選擇下載Demo應用代碼體驗Managed Service for OpenTelemetry,您也可以嘗試在自己的業務中完成OpenTelemetry Java Agent自動埋點和查看監控資料。
-
使用OpenTelemetry Java Agent自動埋點:您需要下載OpenTelemetry Java Agent,OpenTelemetry Java Agent提供了無侵入的接入方式,支援上百種Java架構自動上傳Trace資料。您還需要修改Java啟動的VM參數以上報鏈路資料。
-
查看監控資料:您可以在ARMS控制台查看由OpenTelemetry產生的監控資料。
一、下載Demo應用代碼
您可以使用Demo應用代碼,也可以使用您自己的Java業務代碼。
下載Demo代碼: OpenTelemetry Java Agent Demo。
Demo包中包含三個子檔案夾,分別是:
-
java-agent-usage:使用OpenTelemetry Java Agent自動埋點,本文以此為例。
-
otel-sdk-usage:使用OpenTelemetry Java SDK手動埋點。
-
agent-sdk-usage:同時使用Java Agent和Java SDK埋點。
二、使用OpenTelemetry Java Agent自動埋點
本文以使用OpenTelemetry Java Agent自動埋點上報Java應用資料為例進行說明。詳細的Java架構列表,請參見Supported Libraries and Versions。
-
在最新版本的Assets中找到opentelemetry-javaagent.jar包,單擊JAR包下載。
-
通過修改Java啟動的VM參數上報鏈路資料。
-javaagent:/{user.workspace}/opentelemetry-javaagent.jar //請將{user.workspace}替換為您檔案下載的實際地址。 -Dotel.resource.attributes=service.name=<appName> // 請將<appName>替換為要接入可觀測鏈路 OpenTelemetry 版的應用程式名稱。 -Dotel.exporter.otlp.headers=Authentication=<token> //前提條件中擷取的存取點資訊。 -Dotel.exporter.otlp.endpoint=<endpoint> //前提條件中擷取的存取點資訊。例如,您原有的應用啟動命令是:
java -jar /{user.workspace}/java-agent-usage-0.0.1-SNAPSHOT.jar要接入Managed Service for OpenTelemetry,需要改為如下啟動命令:
java -Dotel.resource.attributes=service.name=java-agent-usage-0.0.1-SNAPSHOT -Dotel.exporter.otlp.headers=Authentication=ggxw4l****@7323a5caae30263_ggxw4l****@53df7ad2afe**** -Dotel.exporter.otlp.endpoint=http://tracing-analysis-dc-hz.aliyuncs.com:8090 -javaagent:/{user.workspace}/opentelemetry-javaagent.jar -jar /{user.workspace}/java-agent-usage-0.0.1-SNAPSHOT.jar
三、查看監控資料
-
訪問Demo應用,訪問地址為
localhost:8081/user/async。OpenTelemetry Java Agent會採集Demo應用資料,將資料上報至Managed Service for OpenTelemetry。 -
登入ARMS控制台後,在頁面選擇目標應用,查看鏈路資料。
說明語言列顯示
表徵圖的應用為接入應用監控的應用,顯示-表徵圖的應用為接入可觀測鏈路 OpenTelemetry 版的應用。進入應用詳情後,單擊調用鏈分析頁簽,頁面上方展示調用次數、錯誤數、平均耗時圖表,下方為Trace列表(包含TraceId、介面名稱、應用程式名稱、耗時、狀態、開始時間、主機地址等列),右側面板提供慢Trace分析和錯Trace分析功能,可按維度識別與慢調用顯著相關的因素。
後續步驟
將應用資料上報至Managed Service for OpenTelemetry後,您可以在ARMS控制台執行以下操作:
Managed Service for OpenTelemetry支援將Java、Go、Python、JS、.NET、C++等語言的應用資料上報至控制台。支援的上報資料用戶端包括OpenTelemetry、Jaeger、Zipkin和SkyWalking。
