如何使用 Dynatrace Java OneAgent 監視 Spring Boot 應用程式
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
本文適用於: ✔️標準取用和專用 (預覽) ✔️ 基本/標準 ❌️ 企業版
本文說明如何使用 Dynatrace OneAgent 監視 Azure Spring Apps 中的 Spring Boot 應用程式。
使用 Dynatrace OneAgent,您可以:
- 使用 Dynatrace OneAgent 監視應用程式。
- 使用環境變數設定 Dynatrace OneAgent。
- 從 Dynatrace 儀錶板檢查所有監視數據。
下列影片介紹 Dynatrace OneAgent。
必要條件
啟用 Dynatrace OneAgent
下列各節說明如何啟用 Dynatrace OneAgent。
準備 Azure Spring Apps 環境
- 建立 Azure Spring Apps 的執行個體。
- 執行下列命令,以建立您想要向 Dynatrace 報告的應用程式。 將佔位元 <...> 取代為您自己的值。
az spring app create \ --resource-group <your-resource-group-name> \ --service <your-Azure-Spring-Apps-name> \ --name <your-application-name> \ --is-public true
判斷必要環境變數的值
若要在 Azure Spring Apps 實例上啟用 Dynatrace OneAgent,您必須設定四個環境變數: DT_TENANT
、 DT_TENANTTOKEN
、 DT_CONNECTION_POINT
和 DT_CLUSTER_ID
。 如需詳細資訊,請參閱 整合 OneAgent 與 Azure Spring Apps。
對於具有多個實例的應用程式,Dynatrace 有數種方式可以將它們分組。 DT_CLUSTER_ID
是其中一種方式。 如需詳細資訊,請參閱 進程群組偵測。
將環境變數新增至您的應用程式
您可以使用 Azure 入口網站 或 Azure CLI,將環境變數索引鍵/值組新增至您的應用程式。
選項 1:Azure CLI
若要使用 Azure CLI 新增機碼/值組,請執行下列命令,以先前步驟中決定的值取代佔位元 <...> 。
az spring app deploy \
--resource-group <your-resource-group-name> \
--service <your-Azure-Spring-Apps-name> \
--name <your-application-name> \
--artifact-path app.jar \
--env \
DT_TENANT=<your-environment-ID> \
DT_TENANTTOKEN=<your-tenant-token> \
DT_CONNECTION_POINT=<your-communication-endpoint>
選項 2:Azure 入口網站
若要使用 Azure 入口網站 新增機碼/值組,請使用下列步驟:
在您的 Azure Spring Apps 實例中,選取 瀏覽窗格中的 [應用程式 ]。
從清單中選取應用程式,然後在瀏覽窗格中選取 [組態 ]。
使用 [ 環境變數] 索引標籤來新增或更新應用程式所使用的變數。
自動化佈建
您也可以使用 Terraform、Bicep 或 Azure Resource Manager 範本 (ARM 範本),執行布建自動化管線。 此管線可以提供完整的交接體驗,以檢測及監視您建立和部署的任何新應用程式。
使用 Terraform 自動布建
若要在 Terraform 樣本中設定環境變數,請將下列程式代碼新增至範本,並將 <...> 佔位元取代為您自己的值。 如需詳細資訊,請參閱 管理作用中的 Azure Spring Apps 部署。
environment_variables = {
"DT_TENANT": "<your-environment-ID>",
"DT_TENANTTOKEN": "<your-tenant-token>",
"DT_CONNECTION_POINT": "<your-communication-endpoint>",
"DT_CLUSTER_ID": "<your-cluster-ID>"
}
使用 Bicep 檔案自動布建
若要在 Bicep 檔案中設定環境變數,請將下列程式代碼新增至 檔案,並將 <...> 佔位元取代為您自己的值。 如需詳細資訊,請參閱 Microsoft.AppPlatform Spring/apps/deployments。
environmentVariables: {
DT_TENANT: '<your-environment-ID>'
DT_TENANTTOKEN: '<your-tenant-token>'
DT_CONNECTION_POINT: '<your-communication-endpoint>'
DT_CLUSTER_ID: '<your-cluster-ID>'
}
使用ARM範本自動布建
若要在 ARM 範本中設定環境變數,請將下列程式代碼新增至範本,並將 <...> 佔位元取代為您自己的值。 如需詳細資訊,請參閱 Microsoft.AppPlatform Spring/apps/deployments。
"environmentVariables": {
"DT_TENANT": "<your-environment-ID>",
"DT_TENANTTOKEN": "<your-tenant-token>",
"DT_CONNECTION_POINT": "<your-communication-endpoint>",
"DT_CLUSTER_ID": "<your-cluster-ID>"
}
在 Dynatrace 中檢視報表
本節說明如何在 Dynatrace 中尋找各種報告。
注意
Dynatrace 功能表和使用者介面會逐漸發展。 因此,儀錶板可能會移至 Dynatrace 網站中的其他區段,而下列螢幕快照可能不會反映使用者介面的目前版本。
將環境變數新增至應用程式之後,Dynatrace 會開始收集數據。 若要檢視報表,請使用 Dynatrace 功能表,移至 [ 服務],然後選取您的應用程式。
您可以從 your-app-name/Details/Service 流程找到服務流程:><
您可以從your-app-name/Details/Method hotspots 找到方法熱點<:>
您可以從 your-app-name/Details/Response time 分析中找到 Database 語句:><
接下來,移至 多維度分析 區段。
您可以從多維度分析/Top 資料庫語句中找到 Top 資料庫語句:
您可以從多維度分析/例外狀況概觀中找到例外狀況概觀:
接下來,移至 [分析與優化 ] 區段。
您可以從分析與最佳化/CPU 分析中找到 CPU 分析:
接下來,移至 [ 資料庫] 區段。
您可以從資料庫/詳細資料/回溯找到回溯:
檢視 Dynatrace OneAgent 記錄
根據預設,Azure Spring Apps 會將 Dynatrace OneAgent 的資訊 層級記錄列印至 STDOUT
。 記錄會與應用程式記錄混合。 您可以從應用程式記錄中找到明確的代理程式版本。
您也可以從下列位置取得 Dynatrace 代理程式的記錄:
- Azure Spring Apps 記錄
- Azure Spring Apps Application Insights
- Azure Spring Apps LogStream
您可以套用 Dynatrace 提供的一些環境變數,以設定 Dynatrace OneAgent 的記錄。 例如, DT_LOGLEVELCON
控制記錄層級。 DT_LOGLEVELCON
的預設值為 info
。 您可以設定 DT_LOGLEVELCON
為 off
,以停用代理程式的記錄。 如果記錄已停用,Dynatrace 支援您第一次啟用記錄以有效診斷任何代理程序問題的要求。 您接著必須重新啟動應用程式,變更才會生效。 如需其他記錄層級,請參閱 Dynatrace 支援小組。
警告
強烈建議您不要覆寫 Azure Spring Apps for Dynatrace 所提供的默認記錄行為。 如果您這樣做,先前所述的記錄案例會遭到封鎖,而且記錄檔可能會遺失。 例如,您不應該將 DT_LOGLEVELFILE
環境變數輸出至您的應用程式。
Dynatrace OneAgent 升級
Dynatrace OneAgent 自動升級已停用,並使用 JDK 每季升級一次。 代理程式升級可能會影響下列案例:
- 升級前使用 Dynatrace OneAgent 的現有應用程式會保持不變,但需要重新啟動或重新部署,才能與新版本的 Dynatrace OneAgent 互動。
- 升級后建立的應用程式會使用新版本的 Dynatrace OneAgent。
虛擬網路插入實例輸出流量設定
針對 Azure Spring Apps 的虛擬網路插入實例,您必須確定 Dynatrace 通訊端點的輸出流量已針對 Dynatrace OneAgent 正確設定。 如需如何取得 communicationEndpoints
的資訊,請參閱 部署 API - OneAgent 的 GET 連線資訊。 如需詳細資訊,請參閱在虛擬網路中執行 Azure Spring 應用程式的客戶責任。
Dynatrace 支援模型
如需在僅限應用程式模式中部署 Dynatrace OneAgent 時的限制相關信息,請參閱 OneAgent 平臺和功能支援矩陣的雲端應用程式平臺一節。
下一步
在 Azure Spring Apps 中使用 Application Insights Java In-Process 代理程式