2017-03-16 49 views
23

我已經部署使用以下app.yaml配置上的谷歌應用程序引擎的Flex運行時運行的應用程序的NodeJS:谷歌App Engine的健康檢查垃圾郵件的應用程序

runtime: nodejs 
env: flex 
health_check: 
    enable_health_check: True 
    check_interval_sec: 20 
    timeout_sec: 4 
    unhealthy_threshold: 2 
    healthy_threshold: 2 

按照health check documentation的健康檢查應打/_ah/health端點每20秒鐘一次。不過我注意到,我的應用程序越來越每秒這些健康檢查多次發送垃圾郵件,即使該應用程序與200狀態代碼迴應說:

enter image description here

任何想法,爲什麼發生這種情況?

+1

@DanCornilescu修復它 –

+1

運行多少個實例? –

+1

@DanCornilescu一個實例 –

回答

13

不幸的是,它似乎就像我們的文檔有一個錯誤。今天的確,應用程序確實經常在相當頻繁的基礎上進行健康檢查。

原因是許多倍,但一般每個VM將由3個* 2不同的健康檢查在指定的重複間隔被擊中(默認情況下,非常積極的,1秒)。其原因是兩種類型的健康檢查(autohealer和LB的)和3個可用性原因。這就是說,我們目前正在研究一種健康檢查的新形式,將很快發佈,並且應該解決這個問題和其他問題與現有的健康檢查行爲(至少使默認更易於管理和給予更多的調整給用戶的選項)。

敬請期待!

+2

是否有任何[公共問題](https://issuetracker.google.com/issues?q=componentid:187191%2B)跟蹤此社區可以更新的新功能/更改? – Nicholas

+0

這個問題的跟蹤錯誤是什麼,我們什麼時候可以期待修復?此錯誤是猖獗https://stackoverflow.com/questions/41732767/google-cloud-app-engine-pinging-my-server-despite-disabling-health-check https://stackoverflow.com/questions/30238547/log啓動應用程序引擎實例https://stackoverflow.com/questions/41333978/app-engine-flexible-environment-java-servlet-getting-too-many-ah-health-reques https ://stackoverflow.com/questions/38604089/specify-google-app-engine-health-check-endpoint –

+0

因此,目前建議使用[「更新的健康檢查」](https://cloud.google.com/ AppEngine上/文檔/靈活/的NodeJS /配置,你的應用程序內與 - 應用程序 - YAML#updated_health_checks)?按照文檔,這是測試版,「傳統健康檢查」仍然是支持,最可靠的解決方案,我們應該使用它們,除非我們需要新功能。但傳統的健康檢查似乎沒有按照文件進行工作。 – aldel

0

我沒有根本問題的解決方案。但是,如果垃圾郵件是使其無法使用日誌用於其預期目的,像這對我來說,這裏是一個變通:

  1. 啓用「高級日誌過濾器」(在微小旁的向下箭頭在爲Stackdriver記錄搜索字段)

  2. 這個添加到搜索查詢

    NOT textPayload : (health)

0

我在GAE的Flex ENV也跑的NodeJS。 運行狀況檢查也發送垃圾郵件服務器日誌。下面的幾件事情讓我減少他們:

  1. 雖然谷歌文檔(https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml#health_checks)說不需要健康檢查的配置,我將它們明確地反正降低健康檢查調用的頻率。
  2. 使用「高級日誌過濾器」可以將健康檢查日誌記錄從顯示中刪除,看他們是否過於分心。
  3. 谷歌文檔(https://cloud.google.com/appengine/docs/flexible/nodejs/how-instances-are-managed)表示不需要爲健康檢查實現處理程序,我明確地實現了它。我在express.js服務器中爲「/ _ah/healthcheck」端點添加了一個處理程序,並在app.js文件的頂部添加了路由,以便立即響應健康檢查請求。這有助於減少健康檢查請求進入快速應用程序邏輯所導致的噪音。
0

使用先進的過濾器,並說 「不_ah /健康」。

刪除nginx.request日誌也會有幫助。