簡體   English   中英

AWS beantalk 監控指標在部署期間消失

[英]AWS beanstalk monitoring metrics disappear during deploy

我們使用 web 和工作類(多個集群)為 AWS beanstalk 設置了一個不可變的配置。 當我們部署一個新的應用程序時,它會創建一個臨時的自動縮放組,然后部署到該組,最后切換回舊的自動縮放組。 此過程大約需要 20-30 分鍾並且工作正常。

雖然,每次我們部署應用程序時,監控統計信息:CPU 利用率、Memory 利用率、磁盤空間等都會消失 5-6 小時,然后再返回。 似乎是 AWS 問題,但不確定我們是否做錯了什么。 有沒有其他人經歷過這種行為? 有解決方法嗎?

編輯:這是缺少 memory 指標的屏幕截圖,如您所見,下午 5 點 30 分到晚上 11 點 30 點之間沒有數據。 在此處輸入圖像描述

我嘗試通過檢查CPUUtilization在一個實例中使用負載平衡的 EB 環境來復制該問題。

在不可變部署之后,我觀察到一個小間隙(10 分鍾)。 這遠不是 5-6 小時。

觀察到的延遲僅在 EB 控制台中。 相應的 CloudWatch (CW) 指標沒有延遲 因此,我可以在等待 EB 控制台趕上進度的同時監視 CW 中的CPUUtilization

對於我的測試,我執行了兩個不可變部署 在 CW 中,指標與部署創建的新實例很好地對齊(沒有任何差距):

在此處輸入圖像描述

您實例的指標也應該在 CW 中可行。 因此,您應該能夠在那里查看它們,而 EB 控制台會趕上來。

要獲得所有單個指標的統一視圖,可以使用指標數學

AVG(METRICS())

在此處輸入圖像描述

對於將來發現此問題的任何人 - 我想出了這個問題。 我使用的腳本由 Cloudwatch 提供,它在內部緩存自動縮放組名稱 6 小時。 通常這不是問題,因為這些值不會定期更改。 但是由於不可變部署,在部署期間創建了一個臨時自動縮放組,該組緩存了 6 小時。

為解決此問題,我替換了 CloudWatchClient 代碼中的以下行:

$meta_data_short_ttl = 21600; # 6 hours

和:

meta_data_short_ttl = 600; # 10 mins

如果您使用此腳本,也可以通過從現有代碼更改.ebextension來完成:

04-reduce-cache:
    command: sed -i 's/meta_data_short_ttl = 21600; # 6 hours/meta_data_short_ttl = 600; # 10 mins/g' /opt/cloudwatch/aws-scripts-mon/CloudWatchClient.pm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM