使用範例應用程式在新的 Amazon EKS叢集上啟用 Application Signals - Amazon CloudWatch

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

使用範例應用程式在新的 Amazon EKS叢集上啟用 Application Signals

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

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

需求

  • 目前,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 版本。您必須在 Amazon EKS叢集控制平面的次要版本差異kubectl內使用 版本。例如,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 和範例應用程式

在完成下列步驟之前,請確定已完成 使用範例應用程式在新的 Amazon EKS叢集上啟用 Application Signals 中列出的要求。

部署並啟用 Application Signals 和範例應用程式
  1. 輸入以下命令。Replace (取代) new-cluster-name 包含您要用於新叢集的名稱。Replace (取代) 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 (arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess 和 ) 的必要IAM許可arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

    • 安裝 CloudWatch 代理程式並自動執行範例應用程式以取得 CloudWatch 指標和 X-Ray 追蹤,以啟用 Application Signals。

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

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

    • 使用下列名稱為 PetClinic 應用程式建立四個服務層級目標 (SLOs):

      • 搜尋擁有者的可用性

      • 搜尋擁有者的延遲

      • 註冊擁有者的可用性

      • 註冊擁有者的延遲

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

      • 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. 在 開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/

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

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

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

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

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

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

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

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

(選用) 步驟 5:清除

完成測試 Application Signals 後,可以使用 Amazon 提供的指令碼來清除和刪除帳戶中為範例應用程式建立的成品。若要執行清除,請輸入下列命令。Replace (取代) 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