Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

are updated health checks causing App Engine deployment to fail?

we updated our google app engine health checks from the legacy version to the new version using and now our deployments are failing. Nothing else on the project has changed. We tested the default settings and then extended checks just in case.

This is the error: ERROR: (gcloud.app.deploy) Error Response: [4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back. If you believe this was an error, try adjusting the 'app_start_timeout_sec' setting in the 'readiness_check' section.

This is our app.yaml:

liveness_check:
   check_interval_sec: 120
   timeout_sec: 40
   failure_threshold: 5
   success_threshold: 5
   initial_delay_sec: 500

readiness_check:
  check_interval_sec: 120
  timeout_sec: 40
  failure_threshold: 5
  success_threshold: 5
  app_start_timeout_sec: 1500

Unfortunately, no matter the configuration, both the readiness and liveness checks are throwing 404s.

What could be causing the problem? and how can we debug this? Is it possible to rollback to the legacy health checks?

like image 251
Mike Avatar asked Sep 09 '17 04:09

Mike


People also ask

How to troubleshoot Android application deployment issues?

There are a few general issues you can check first if you meet problems with Android application deployment. If the application deployment fails, go to the Miradore Action log view and check the status details of the application deployment. Some possible reasons for the failure:

What is the health check in app service?

Health check increases your application's availability by removing unhealthy instances. Your App Service plan should be scaled to two or more instances to use Health check. The Health check path should check critical components of your application.

How do I know if my app service app is unhealthy?

If the application cannot connect to a critical component, then the path should return a 500-level response code to indicate the app is unhealthy. When given a path on your app, Health check pings this path on all instances of your App Service app at 1-minute intervals.

Why can't application deployment turn an existing application into a managed application?

This is possible, especially, if the option "Keep system applications" is chosen during device enrollment. In this case, application deployment is not able to turn the existing application into a managed application. Try to remove the installed application manually.


Video Answer


2 Answers

In my case, I solved this issue by manually increasing memory allocation?

resources:
    cpu: 1
    memory_gb: 2
    disk_size_gb: 10

Found this solution in a google forum: https://groups.google.com/forum/#!topic/google-appengine/Po_-SkC5DOE

like image 71
Pablo Lopez Avatar answered Oct 26 '22 01:10

Pablo Lopez


This is usually caused when the application is still reading from the legacy health check flags and/or deploying the app using gcloud app deploy without enabling the updated health checks first. You can check this by:

1- Making sure the legacy health_check flag does not exist on your app.yaml.

2- Run gcloud beta app describe to see whether splitHealthChecks flag is set to true under featureSettings.

By default, HTTP requests from updated health checks are not forwarded to your application container. If you want to extend health checks to your application, then specify a path for liveness checks or readiness checks.

You can then enable updated health checks by using gcloud beta app update --split-health-checks --project [your-project-id]. See this public issue tracker or this article about Updated Health Checks about for more details.

like image 38
Kenworth Avatar answered Oct 26 '22 00:10

Kenworth