使用 Azure Spring Cloud 進行美妙的應用程式監控

工程 | Josh Long | 2021 年 1 月 21 日 | ...

這是由我們的朋友,Microsoft 的 Asir Vedamuthu Selvasingh 所撰寫的客座文章

嗨,Spring 愛好者們!我們很高興地宣布,應用程式效能監控 (APM) 現在已完全整合到 Azure Spring Cloud 中,並由 Application Insights 提供支援。

Azure Spring Cloud 由 Microsoft 和 VMware 共同建置、營運和支援。它是一個完全受管理的 Spring Boot 應用程式服務,讓您可以專注於建置運行業務的應用程式,而無需管理基礎架構的麻煩。

Azure Spring Cloud 中的 APM 為您的 Spring 應用程式提供深入的效能監控,無需進行任何程式碼變更、重新編譯、重新測試或重新部署。 Azure Spring Cloud 上的 APM 非常無縫,您可以直接獲得有關應用程式的洞察。 您不必做 *任何* 事 - 只需部署您的應用程式,監控資料就會開始流動。 您透過應用程式監控獲得的好處是

  • 透過**分散式追蹤**,可見所有應用程式,包括從起點到終點的操作請求路徑,以及深入了解運作正常的應用程式和有瓶頸的應用程式。
  • 呼叫路徑上下方的日誌、例外狀況和指標提供**有意義的洞察和可行的資訊**,以加速根本原因分析。
  • 深入了解應用程式**相依性** – SQL Database、MySQL、PostgreSQL、MariaDB、JDBC、MongoDB、Cassandra、Redis、JMS、Kafka、Netty / WebFlux 等。
  • 每個呼叫應用程式公開的操作的**效能資料**,包括請求計數、回應時間、CPU 使用率和記憶體等資料。
  • 透過 Micrometer 方便地自動收集**自訂指標**,讓您可以發布自訂效能指標或業務特定指標,並視覺化更深入的應用程式和業務洞察。
  • 能夠**瀏覽、查詢和警示應用程式指標和日誌**。

雖然 Azure Spring Cloud 和 Application Insights Java 代理程式都已正式發布,但它們的現成監控整合仍在預覽階段。

您可以在建立或更新 Azure Spring Cloud 時啟用 Java 內建處理序監控代理程式

az spring-cloud create --name ${SPRING_CLOUD_SERVICE} 
        --sku standard --enable-java-agent 
        --resource-group ${RESOURCE_GROUP} 
        --location ${REGION}

然後,您可以開啟 Azure Spring Cloud 建立的 Application Insights,並開始監控應用程式及其相依性 – 我們將使用 分散式版本的 Spring Petclinic 來展示這一點。 導覽至 Application Map 刀鋒視窗,您可以在其中看到微服務的令人難以置信的整體檢視,其中顯示運作正常的應用程式(綠色)和有瓶頸的應用程式(紅色)[圖 1]。 開發人員可以輕鬆識別應用程式中的問題,並快速進行疑難排解和修復。

圖 1 - Application Insights 中的微服務交易

導覽至 Performance 刀鋒視窗,您可以在其中看到應用程式公開的操作的回應時間和請求計數 [圖 2]。

圖 2 – 應用程式公開的操作的效能

導覽至 Performance 刀鋒視窗中的 Dependencies 標籤,您可以在其中看到所有相依性及其回應時間和請求計數 [圖 3]。

圖 3 – 應用程式相依性的效能

您可以按一下 SQL 呼叫或相依性,以查看上下文中完整的端對端交易 [圖 4]。

圖 4 – 應用程式到 SQL 呼叫交易的端對端詳細資料

導覽至 Failures 刀鋒視窗中的 Exceptions 標籤,以查看應用程式擲回的例外狀況集合 [圖 5]。

圖 5 – 應用程式擲回的例外狀況

只需選取例外狀況並深入研究,即可獲得有意義的洞察和可行的堆疊追蹤 [圖 6]。

圖 6 – 應用程式例外狀況的端對端交易詳細資料

導覽至 Metrics 刀鋒視窗,以查看 Spring Boot 應用程式、Spring Cloud 模組及其相依性貢獻的所有指標。 下圖展示了 Spring Cloud Gateway 貢獻的 gateway-requests 和 JDBC 貢獻的 hikaricp_connections [圖 7]。 同樣地,您可以彙總 Spring Cloud Resilience4J 指標並將其視覺化。

圖 7 – Spring 模組貢獻的指標

Spring Boot 應用程式註冊了許多核心指標 – JVM、CPU、Tomcat、Logback 等。 您可以使用 Micrometer 來貢獻您自己的自訂指標,例如在類別層級使用 @Timed Micrometer 註釋。 然後,您可以在 Application Insights 中視覺化這些自訂指標。 例如,請參閱寵物主人、寵物及其臨床就診如何透過自訂指標進行追蹤 – 您也可以看到應用程式在自動調整啟動時驅動更高利用率,導致模式在晚上 9 點發生變化 [圖 8]。

圖 8 – 使用者應用程式發布的自訂指標

您可以使用 Application Insights 中的可用性測試功能來監控 Azure Spring Cloud 中應用程式的可用性。 這是一個定期測試,用於定期從全球任何地方監控應用程式的可用性和回應能力。 如果您的應用程式沒有回應或回應速度太慢,它可以主動發出警示。 下圖顯示了來自北美各地的可用性測試 – 美國西部、南中部、美國中部和美國東部 [圖 9]。

圖 9 – 應用程式端點在一段時間內的可用性

導覽至 Live Metrics 刀鋒視窗,您可以在其中幾乎即時地看到即時指標,僅在一秒內 [圖 10]。

圖 10 – 即時指標

Application Insights Java 代理程式基於 OpenTelemetry 自動檢測工作,其中 Microsoft 與 APM 領域的其他最聰明的人才合作。

立即建置您的解決方案並監控它們!

Azure Spring Cloud 抽象化了基礎架構管理和 Spring Cloud 中介軟體管理的複雜性,因此您可以專注於建置您的業務邏輯,並讓 Azure 負責動態調整、修補、安全性、合規性和高可用性。 透過幾個步驟,您可以佈建 Azure Spring Cloud、建立應用程式、部署和調整 Spring Boot 應用程式,並在幾分鐘內開始監控。 我們將繼續為 Azure Spring Cloud 帶來更多開發人員友善且企業就緒的功能。

我們很樂意聽到您如何使用 Azure Spring Cloud 建置有影響力的解決方案。 立即開始 – 使用快速入門將 Spring 應用程式部署到 Azure Spring Cloud!

資源

取得 Spring 電子報

隨時關注 Spring 電子報

訂閱

取得領先

VMware 提供培訓和認證,以加速您的進度。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

檢視全部