在微服務分布式情境下,全鏈路追蹤功能給業務提供了各個服務點執行情況的可視化快速分析定位能力。在定時任務情境下,業務執行鏈路可能比常規即時業務的執行鏈路更長,接入全鏈路追蹤有助於查詢任務執行耗時、分析執行異常等問題。本文介紹如何將定時任務接入全鏈路追蹤。
前提條件
接入鏈路追蹤
接入配置
以Spring Boot接入模式為例,在應用程式的pom.xml檔案中添加依賴。
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx2-spring-boot-starter</artifactId>
<version>{最新版本}</version>
<!--如果使用logback,需要將log4j和log4j2排掉 -->
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 補充依賴鏈路追蹤擴充外掛程式 -->
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx-plugin-trace-opentelemetry</artifactId>
<version>{最新版本}</version>
</dependency>
<!-- skywalking則採用該外掛程式 -->
<!--<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx-plugin-trace-skywalking</artifactId>
<version>{最新版本}</version>
</dependency>-->應用部署配置
方案一:EDAS部署應用 (推薦)
如果您已經使用了EDAS部署應用服務,那麼已具備相應的接入能力,本章節應用部署可直接跳過。
新使用者可以開通EDAS,通過EDAS平台部署自己應用程式即可自動接入全鏈路追蹤能力,無需額外配置。具體操作,請參見開始使用EDAS。
方案二:接入ARMS獨立部署
參考ARMS應用接入流程。按提示下載相關JAR包,並配置對應應用資訊,在啟動指令碼中添加arms javaagent配置即可啟動完成接入。具體操作,請參見手動安裝探針。
方案三:自建平台整合
如果您採用了自建的全鏈路追蹤平台,依然可以進行相應整合。以常見的skywalking為例,接入步驟如下所示。
下載skywalking agent安裝包並完成配置。
在Java應用啟動指令碼中添加JVM參數:
-javaagent:{agent.path}/skywalking-agent.jar。將Java業務應用依賴的SchedulerX Trace外掛程式切換為skywalking類型,如下所示。
<dependency> <groupId>com.aliyun.schedulerx</groupId> <artifactId>schedulerx-plugin-trace-skywalking</artifactId> <version>{最新version}</version> </dependency>
全鏈路資料擷取設定了預設採樣率,並非每條執行鏈路都會被採集到。您可以根據業務情境設定相應採樣率。
鏈路追蹤查看
在完成上述配置和應用部署後,定時任務執行即可實現可視化全鏈路追蹤能力。目前支援單機(含HTTP任務)、廣播、可視化Map任務。
登入EDAS控制台。
在左側導覽列單擊任務調度。
在頂部功能表列選擇地區。
在左側導覽列,單擊執行列表,選擇任務執行個體列表頁簽,然後在操作列按需執行以下操作。
單機任務。
單擊鏈路追蹤或詳情中的TraceId,即可調整至相應執行調用鏈查看。因為該服務所屬應用部署支援了全鏈路追蹤能力(支援OpenTelemetry),所以該特性同樣適用於單機HTTP任務。
廣播任務。
單擊詳情。在任務執行個體詳情頁面,單擊當前執行詳情。每一個機器會有對應的TraceID展示且支援跳轉查看調用鏈。
可視化Map任務。
單擊詳情。在任務執行個體詳情頁面,單擊子任務列表。可視化Map任務為執行記錄中的每一個子任務提供了執行鏈路的可視化查詢支援。在執行記錄詳情的子任務列表中,可以根據每個子任務查看其TraceID並跳轉查看其調用鏈。