(選用) 使用範例應用程式試用 Application Signals - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

(選用) 使用範例應用程式試用 Application Signals

若要在測試自己的應用程式之前,先在範例應用程式上試用 CloudWatch Application Signals,請遵循本節中的指示。這些指示使用指令碼來協助您建立 Amazon EKS 叢集、安裝範例應用程式,以及檢測範例應用程式以使用 Application Signals。

範例應用程式是由四個微服務組成的 Spring "Pet Clinic" 應用程式。這些服務在 Amazon EC2 上的 Amazon EKS 上執行,並利用 Application Signals 啟用指令碼來啟用具有 Java、Python 或 .NET 自動檢測代理程式的叢集。

需求

  • 目前,Application Signals 只會監控 Java、Python 或 .NET 應用程式。

  • 您必須在執行個體 AWS CLI 上安裝 。我們建議 AWS CLI 使用第 2 版,但第 1 版也應該有效。如需安裝 的詳細資訊 AWS CLI,請參閱安裝或更新最新版本的 AWS CLI

  • 本節中的指令碼旨在執行於 Linux 和 macOS 環境中。對於 Windows 執行個體,我們建議您使用 AWS Cloud9 環境來執行這些指令碼。如需 的詳細資訊 AWS Cloud9,請參閱什麼是 AWS Cloud9?

  • 安裝支援的 kubectl 版本。您所使用的 kubectl 版本,必須與 Amazon EKS 叢集控制平面的版本差距在一個版本以內。例如,1.26 kubectl 用戶端可搭配使用 Kubernetes 1.25、1.26 和 1.27 版叢集。如果您已經有 Amazon EKS 叢集,您可能需要設定 的 AWS 登入資料kubectl。如需詳細資訊,請參閱針對 Amazon EKS 叢集建立或更新 kubeconfig 檔案

  • 安裝 eksctleksctl使用 AWS CLI 與 互動 AWS,這表示它使用與 相同的 AWS 登入資料 AWS CLI。如需詳細資訊,請參閱安裝或更新 eksctl

  • 安裝 jq。需要 jq 才能執行 Application Signals 啟用指令碼。如需詳細資訊,請參閱下載 jq

步驟 1:下載指令碼

若要使用範例應用程式下載指令碼以設定 CloudWatch Application Signals,可以下載壓縮的 GitHub 專案檔案並解壓縮到本機磁碟機,或者複製 GitHub 專案。

若要複製專案,請開啟終端視窗,並在指定工作目錄中輸入以下 Git 命令。

git clone https://github.com/aws-observability/application-signals-demo.git

步驟 2:建置並部署範例應用程式

若要建置和推播範例應用程式映像,請遵循下列指示

步驟 3:部署並啟用 Application Signals 和範例應用程式

在完成下列步驟之前,請確定已完成 (選用) 使用範例應用程式試用 Application Signals 中列出的要求。

部署並啟用 Application Signals 和範例應用程式
  1. 輸入以下命令。將 new-cluster-name 取代為您想要使用的新叢集名稱。將 region-name 取代為 AWS 區域的名稱,例如 us-west-1

    此命令會設定在已啟用 Application Signals 的新 Amazon EKS 叢集中執行的範例應用程式。

    # this script sets up a new cluster, enables Application Signals, and deploys the # sample application cd application-signals-demo/scripts/eks/appsignals/one-step && ./setup.sh new-cluster-name region-name

    安裝指令碼大約需要 30 分鐘才能執行,並執行下列動作:

    • 在指定區域中建立新的 Amazon EKS 叢集。

    • 為 Application Signals 建立必要的 IAM 許可 (arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccessarn:aws:iam::aws:policy/CloudWatchAgentServerPolicy)。

    • 透過安裝 CloudWatch 代理程式並自動檢測 CloudWatch 指標和 X-Ray 追蹤的範例應用程式,啟用 Application Signals。

    • 在相同的 Amazon EKS 叢集中部署 PetClinic Spring 範例應用程式。

    • 建立五個 CloudWatch Synthetics canary,名為 pc-add-vistpc-create-ownerspc-visit-petpc-visit-vetpc-clinic-traffic。這些 canary 將以一分鐘的頻率執行,以產生範例應用程式的合成流量,並演示 Synthetics canary 如何出現在 Application Signals 中。

    • 為 PetClinic 應用程式建立四個服務水準目標 (SLO),名稱如下:

      • 搜尋擁有者的可用性

      • 搜尋擁有者的延遲

      • 註冊擁有者的可用性

      • 註冊擁有者的延遲

    • 使用自訂信任政策建立必要的 IAM 角色,並授予 Application Signals 下列許可:

      • cloudwatch:PutMetricData

      • cloudwatch:GetMetricData

      • xray:GetServiceGraph

      • logs:StartQuery

      • logs:GetQueryResults

  2. (選用) 如果要查看 PetClinic 範例應用程式的原始碼,可以在根資料夾下找到它們。

    - application-signals-demo - spring-petclinic-admin-server - spring-petclinic-api-gateway - spring-petclinic-config-server - spring-petclinic-customers-service - spring-petclinic-discovery-server - spring-petclinic-vets-service - spring-petclinic-visits-service
  3. 若要檢視已部署的 PetClinic 範例應用程式,請執行下列命令來查找 URL:

    kubectl get ingress

步驟 4:監控範例應用程式

完成上一節中建立 Amazon EKS 叢集和部署範例應用程式的步驟後,可以使用 Application Signals 來監控應用程式。

注意

若要讓 Application Signals 主控台開始填入,一些流量必須到達範例應用程式。先前的部分步驟建立了 CloudWatch Synthetics canary,可產生範例應用程式的流量。

服務運作狀態監控

啟用之後,CloudWatch Application Signals 會自動探索並填入服務清單,而不需要任何其他設定。

若要檢視探索到的服務清單並監控其運作狀態
  1. 透過 https://console.aws.amazon.com/cloudwatch/ 開啟 CloudWatch 主控台。

  2. 在導覽窗格中,依次選擇 Application Signals服務

  3. 若要檢視服務、其操作及其相依性,請在清單中選擇其中一個服務的名稱。

    這個以應用程式為中心的統一檢視有助於全面了解使用者如何與您的服務互動。如果發生效能異常,這可協助您分類問題。如需有關服務檢視的完整詳細資訊,請參閱 使用 Application Signals 監控應用程式的運作狀態

  4. 選擇服務操作索引標簽,即可查看該服務操作的標準應用程式指標。例如,操作就是服務呼叫的 API 操作。

    然後,若要檢視該服務的單個操作的圖表,請選擇該操作名稱。

  5. 選擇相依性索引標簽,查看應用程式具有的相依性,以及每個相依性的重要應用程式指標。相依性包括應用程式呼叫 AWS 的服務和第三方服務。

  6. 若要從服務詳細資訊頁面中檢視相關追蹤,請在表格上方的三個圖表之一中選擇一個資料點。這會使用時間週期中篩選的追蹤填入新窗格。系統會根據您選擇的圖表對這些追蹤進行排序和篩選。例如,如果選擇延遲圖表,則會按照服務回應時間對追蹤排序。

  7. 在 CloudWatch 主控台導覽窗格中,選擇 SLO。您會看到指令碼為範例應用程式建立的 SLO。如需 SLO 的詳細資訊,請參閱 服務水準目標 (SLO)

(選用) 步驟 5:清除

完成測試 Application Signals 後,可以使用 Amazon 提供的指令碼來清除和刪除帳戶中為範例應用程式建立的成品。若要執行清除,請輸入下列命令。將 new-cluster-name 取代為您為範例應用程式建立的叢集名稱,並將 region-name 取代為 AWS 區域名稱,例如 us-west-1

cd application-signals-demo/scripts/eks/appsignals/one-step && ./cleanup.sh new-cluster-name region-name