共用方式為


如何使用 AppDynamics Java 代理程式監視 Spring Boot 應用程式

附註

基本標準企業方案於 2025 年 3 月 17 日進入淘汰期。 如需詳細資訊,請參閱 Azure Spring 應用程式淘汰公告

標準使用量和專用方案於 2024 年 9 月 30 日進入淘汰期,並在 2025 年 3 月底全面關閉。 如需詳細資訊,請參閱將 Azure Spring 應用程式標準使用量和專用方案移轉至 Azure 容器應用程式

本文適用於:✅ 標準使用量和專用 (預覽) ✅ 基本/標準 ❎ 企業

本文說明如何使用 AppDynamics Java 代理程式來監視 Azure Spring Apps 中的 Spring Boot 應用程式。

使用 AppDynamics Java 代理程式,您可以:

  • 監視應用程式
  • 使用環境變數設定 AppDynamics Java 代理程式
  • 檢查來自 AppDynamics 儀表板的所有監視資料

下列影片簡介 AppDynamics Java 內含式代理程式。


先決條件

啟用 AppDynamics JAVA 內含式代理程式

針對整個工作流程,您需要:

  • 在 Azure Spring Apps 中啟動 AppDynamics Java 內含式代理程式,以產生應用程式計量資料。
  • 將 AppDynamics 代理程式連線至 AppDynamics 控制器,以收集控制器中的資料並將其視覺化。

此圖表顯示了 AppDynamics 代理程式,其中雙向箭頭指向 Azure Spring Apps 中的 Spring Boot Apps,以及指向 AppDynamics 代理程式的箭頭。

使用 Azure CLI 搭配 AppDynamics 代理程式來啟用應用程式

若要透過 Azure CLI 啟用應用程式,請使用下列步驟。

  1. 建立資源群組。

  2. 建立 Azure Spring Apps 的執行個體。

  3. 使用下列命令建立應用程式。 將預留位置 <...> 取代為您自己的值。

    az spring app create \
        --resource-group "<your-resource-group-name>" \
        --service "<your-Azure-Spring-Apps-instance-name>" \
        --name "<your-app-name>" \
        --is-public true
    
  4. 使用環境變數搭配 AppDynamics 代理程式來建立部署。

    az spring app deploy \
        --resource-group "<your-resource-group-name>" \
        --service "<your-Azure-Spring-Apps-instance-name>" \
        --name "<your-app-name>" \
        --artifact-path app.jar \
        --jvm-options="-javaagent:/opt/agents/appdynamics/java/javaagent.jar" \
        --env APPDYNAMICS_AGENT_APPLICATION_NAME=<your-app-name> \
              APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<your-agent-access-key> \
              APPDYNAMICS_AGENT_ACCOUNT_NAME=<your-agent-account-name> \
              APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME=true \
              APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX=<your-agent-node-name> \
              APPDYNAMICS_AGENT_TIER_NAME=<your-agent-tier-name> \
              APPDYNAMICS_CONTROLLER_HOST_NAME=<your-AppDynamics-controller-host-name> \
              APPDYNAMICS_CONTROLLER_SSL_ENABLED=true \
              APPDYNAMICS_CONTROLLER_PORT=443
    

Azure Spring Apps 會將 AppDynamics Java 代理程式預先安裝至路徑 /opt/agents/appdynamics/java/javaagent.jar。 您可以從應用程式的 JVM 選項啟動代理程式,然後使用環境變數設定代理程式。 您可以在 使用 Java 代理程式監視 Azure Spring Apps 中尋找這些變數的值。 如需這些變數如何協助在 AppDynamics UI 中檢視和組織報告的詳細資訊,請參閱階層和節點

使用 Azure 入口網站搭配 AppDynamics 代理程式來啟用應用程式

若要透過 Azure 入口網站啟用應用程式,請使用下列步驟。

  1. 在 Azure 入口網站中,瀏覽至您的 Azure Spring Apps 執行個體。

  2. 在瀏覽窗格的 [設定] 區段中,選取 [應用程式]

    Azure 入口網站的螢幕擷取畫面,其中顯示了 Azure Spring Apps 執行個體的 [應用程式] 頁面。

  3. 選取應用程式,然後在瀏覽窗格中選取 [設定]

  4. 使用 [一般設定] 索引標籤來更新 JVM 選項等值。

    Azure 入口網站的螢幕擷取畫面,其中顯示 Azure Spring Apps 執行個體中應用程式的 [設定] 頁面,並選取了 [一般設定] 索引標籤。

  5. 選取 [環境變數],以新增或更新應用程式所使用的變數。

    Azure 入口網站的螢幕擷取畫面,其中顯示了已選取 [環境變數] 索引標籤的 [設定] 頁面。

自動化佈建

您也可以使用 Terraform、Bicep 或 Azure Resource Manager 範本 (ARM 範本) 執行佈建自動化管線。 此管線可針對檢測和監視您建立和部署的任何新應用程式,提供完全無需操作的體驗。

使用 Terraform 將佈建自動化

若要設定 Terraform 範本中的環境變數,請將下列程式碼新增至範本,並將 <...> 預留位置取代為您自己的值。 如需詳細資訊,請參閱管理作用中的 Azure Spring Apps 部署 (英文)。

resource "azurerm_spring_cloud_java_deployment" "example" {
  ...
  jvm_options = "-javaagent:/opt/agents/appdynamics/java/javaagent.jar"
  ...
    environment_variables = {
      "APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
      "APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
      "APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
      "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
      "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
      "APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
      "APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
      "APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
      "APPDYNAMICS_CONTROLLER_PORT" : "443"
  }
}

使用 Bicep 自動化佈建

如要在 Bicep 檔案中設定環境變數,請將下列程式碼新增至檔案,並將 <...> 預留位置取代為您自己的值。 如需詳細資訊,請參閱 Microsoft.AppPlatform Spring/apps/deployments

deploymentSettings: {
  environmentVariables: {
    APPDYNAMICS_AGENT_APPLICATION_NAME : '<your-app-name>'
    APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY : '<your-agent-access-key>'
    APPDYNAMICS_AGENT_ACCOUNT_NAME : '<your-agent-account-name>'
    APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME : 'true'
    APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX : '<your-agent-node-name>'
    APPDYNAMICS_AGENT_TIER_NAME : '<your-agent-tier-name>'
    APPDYNAMICS_CONTROLLER_HOST_NAME : '<your-AppDynamics-controller-host-name>'
    APPDYNAMICS_CONTROLLER_SSL_ENABLED : 'true'
    APPDYNAMICS_CONTROLLER_PORT : '443'
  }
  jvmOptions: '-javaagent:/opt/agents/appdynamics/java/javaagent.jar'
}

使用 ARM 範本將佈建自動化

若要在 ARM 範本中設定環境變數,請將下列程式碼新增至範本,並將 <...> 預留位置取代為您自己的值。 如需詳細資訊,請參閱 Microsoft.AppPlatform Spring/apps/deployments

"deploymentSettings": {
  "environmentVariables": {
    "APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
    "APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
    "APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
    "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
    "APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
    "APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
    "APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
    "APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
    "APPDYNAMICS_CONTROLLER_PORT" : "443"
  },
  "jvmOptions": "-javaagent:/opt/agents/appdynamics/java/javaagent.jar",
  ...
}

檢閱 AppDynamics 儀表板中的報告

本節顯示 AppDynamics 中的各種報告。

下列螢幕擷取畫面顯示 AppDynamics 儀表板中應用程式的概觀:

顯示 [應用程式] 儀表板的 AppDynamics 螢幕擷取畫面。

[應用程式] 索引標籤會顯示每個應用程式的整體資訊,如下列使用範例應用程式的螢幕擷取畫面所示:

  • api-gateway

    顯示範例 api-gateway 應用程式的 [應用程式] 儀表板的 AppDynamics 螢幕擷取畫面。

  • customers-service

    AppDynamics 的螢幕擷取畫面,其中顯示範例客戶服務應用程式的 [應用程式] 儀表板。

下列螢幕擷取畫面說明如何從 [資料庫呼叫] 儀表板取得基本資訊。

顯示 [資料庫呼叫] 儀表板的 AppDynamics 螢幕擷取畫面。

您也可以取得最慢資料庫呼叫的相關資訊,如下列螢幕擷取畫面所示:

顯示 [最慢的資料庫呼叫] 頁面的 AppDynamics 螢幕擷取畫面。

AppDynamics 的螢幕擷取畫面,其中顯示從 [最慢的資料庫呼叫] 頁面存取的 [相互關聯快照集] 頁面。

下列螢幕擷取畫面顯示 [記憶體] 頁面 [堆積] 區段中的記憶體使用量分析:

顯示 [記憶體] 頁面 [堆積] 區段的 AppDynamics 螢幕擷取畫面。

您也可以看到記憶體回收流程,如下列螢幕擷取畫面所示:

AppDynamics 的螢幕擷取畫面,其中顯示 [記憶體] 頁面的 [記憶體回收] 區段。

下列螢幕擷取畫面會顯示 [慢速交易] 頁面:

顯示 [緩慢交易] 頁面的 AppDynamics 螢幕擷取畫面。

您可以針對 JVM 定義更多計量,如 [計量瀏覽器] 的此螢幕擷取畫面所示:

顯示計量瀏覽器的 AppDynamics 螢幕擷取畫面。

檢視 AppDynamics 代理程式記錄

依預設,Azure Spring Apps 會將 AppDynamics 代理程式的 info 層級記錄列印至 STDOUT。 記錄會與應用程式記錄混合。 您可以從應用程式記錄中找到明確的代理程式版本。

您也可以從下列位置取得 AppDynamics 代理程式的記錄:

  • Azure Spring Apps 記錄
  • Azure Spring Apps Application Insights
  • Azure Spring Apps LogStream

了解 AppDynamics 代理程式升級

AppDynamics 代理程式會定期使用 JDK 進行升級 (每季)。 代理程式升級可能會影響下列案例:

  • 升級前使用 AppDynamics 代理程式的現有應用程式會保持不變,但需要重新啟動或重新部署,才能與新版本的 AppDynamics 代理程式互動。
  • 升級後建立的應用程式會使用新版本的 AppDynamics 代理程式。

設定虛擬網路插入執行個體輸出流量

對於 Azure Spring 應用程式的虛擬網路插入執行個體,請確定已為 AppDynamics 代理程式正確設定輸出流量。 如需詳細資料,請參閱 Cisco AppDynamics SaaS 網域和 IP 範圍在虛擬網路中執行 Azure Spring 應用程式的客戶責任

了解限制

若要了解 AppDynamics 代理程式的限制,請參閱使用 Java 代理程式監視 Azure Spring Apps

後續步驟

在 Azure Spring Apps 中使用 Application Insights Java In-Process 代理程式