A Java app in App Engine is configured using an
file, that contains CPU, memory, network and disk resources, scaling, and other
general settings including environment variables.
Specify all the runtime configuration for your Java app, including
versions and URLs, in the
app.yamlfile. This file acts as a deployment descriptor of a specific service version. You must first create the
app.yamlfile for the
defaultservice of your app before you can create and deploy
app.yamlfiles for additional services.
You can specify a unique name for your
app.yaml files, but then you must
specify the file name with the deployment
as well. For example, if you name your
app.flexible.yaml, then you must deploy your app using either:
To learn more about structuring multiple services and
gcloud app deploy service-name-app.yaml gcloud app deploy app.flexible.yaml
app.yamlfiles in your app, see Structuring Web Services. Depending on the complexity of your app's service, you might only need to define a few elements in the corresponding
app.yamlfile. The following example demonstrates what a simple Java app might require in the flexible environment:
runtime: java env: flex handlers: - url: /.* script: this field is required, but ignored
All configuration elements
For a complete list of all the supported elements in this configuration file,
Enabling Java Virtual Machine metrics collection
You can configure App Engine flexible environment for Java to collect common metrics for Java Virtual Machine (JVM) processes. The metrics are collected using the same JVM monitoring plugin that Cloud Monitoring uses. To view the full list of metrics for App Engine, see the Google Cloud metrics guide.
If you want to collect these JVM metrics for your app:
you'll need to set the following
properties in the environment variables in your
app.yaml and deploy your app.
JAVA_USER_OPTS: "-Djava.rmi.server.hostname=172.17.0.1 -Dcom.sun.management.jmxremote.port=10403 - Dcom.sun.management.jmxremote.rmi.port=10403 -Dcom.sun.management.jmxremote.local.only=false - Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"