Detailed Global Configurations
Environment Variables
Command Line Flags
GLOBAL OPTIONS
--api.header=header
Specifies a custom header to send with every gm-control request.
Headers are given as name:value pairs. Leading and trailing
whitespace will be stripped from the name and value. For
multiple headers, this flag may be repeated or multiple headers
can be delimited with commas.
--api.host=host:port
(default: localhost:80)
The address (host:port) for gm-control requests. If no port is
given, it defaults to port 443 if --api.ssl is true and port 80
otherwise.
--api.insecure
(default: false)
If true, don't validate server cert when using SSL for
gm-control requests
--api.key=string
(default: "none")
[SENSITIVE] The auth key for gm-control requests
--api.prefix=value
The url prefix for gm-control requests. Forms the path part of
<host>:<port><path>
--api.ssl
(default: true)
If true, use SSL for gm-control requests
--api.sslCert=value
Specifies the SSL cert to use for every gm-control request.
--api.sslKey=value
Specifies the SSL key to use for every gm-control request.
--api.zone-name=string
The name of the API Zone for gm-control requests.
--console.format=value
(default: "json")
(valid values: "console" or "json")
Selects the format for console log messages.
--console.level=level
(default: "info")
(valid values: "debug", "info", "error", or "none")
Selects the log level for console logs messages.
--delay=duration
(default: 30s)
Sets the minimum time between API updates. If the discovery data
changes more frequently than this duration, updates are delayed
to maintain the minimum time.
--diff.dry-run
(default: false)
Log changes at the info level rather than submitting them to the
API
--diff.ignore-create
(default: false)
If true, do not create new Clusters in the API
--diff.include-delete
(default: false)
If true, delete missing Clusters from the API
--help (default: false)
Show a list of commands or help for one command
--stats.api.header=header
Specifies a custom header to send with every stats API request.
Headers are given as name:value pairs. Leading and trailing
whitespace will be stripped from the name and value. For
multiple headers, this flag may be repeated or multiple headers
can be delimited with commas.
--stats.api.host=host:port
(default: localhost:80)
The address (host:port) for stats API requests. If no port is
given, it defaults to port 443 if --stats.api.ssl is true and
port 80 otherwise.
--stats.api.insecure
(default: false)
If true, don't validate server cert when using SSL for stats API
requests
--stats.api.prefix=value
The url prefix for stats API requests. Forms the path part of
<host>:<port><path>
--stats.api.ssl
(default: true)
If true, use SSL for stats API requests
--stats.api.sslCert=value
Specifies the SSL cert to use for every stats API request.
--stats.api.sslKey=value
Specifies the SSL key to use for every stats API request.
--stats.backends=value
(valid values: "dogstatsd", "prometheus", "statsd", or
"wavefront")
Selects which stats backend(s) to use.
--stats.batch
(default: true)
If true, stats requests are batched together for performance.
--stats.dogstatsd.debug
(default: false)
If enabled, logs the stats data on stdout.
--stats.dogstatsd.flush-interval=duration
(default: 5s)
Specifies the duration between stats flushes.
--stats.dogstatsd.host=string
(default: "127.0.0.1")
Specifies the destination host for stats.
--stats.dogstatsd.latch
(default: false)
Specifies whether stats are accumulated over a window before
being sent to the backend.
--stats.dogstatsd.latch.base-value=float
(default: 0.001)
Specifies the upper bound of the first bucket used for
accumulating histograms. Each subsequent bucket's upper bound is
double the previous bucket's. For timings this value is taken to
be in units of seconds. Must be greater than 0.
--stats.dogstatsd.latch.buckets=int
(default: 20)
Specifies the number of buckets used for accumulating
histograms. Must be greater than 1.
--stats.dogstatsd.latch.window=duration
(default: 1m0s)
Specifies the period of time over which stats are latched. Must
be greater than 0.
--stats.dogstatsd.max-packet-len=bytes
(default: 8192)
Specifies the maximum number of payload bytes sent per flush. If
necessary, flushes will occur before the flush interval to
prevent payloads from exceeding this size. The size does not
include IP and UDP header bytes. Stats may not be delivered if
the total size of the headers and payload exceeds the network's
MTU.
--stats.dogstatsd.port=int
(default: 8125)
Specifies the destination port for stats.
--stats.dogstatsd.scope=string
If specified, prepends the given scope to metric names.
--stats.dogstatsd.transform-tags=string
Defines one or more transformations for tags. A tag with a
specific name whose value matches a regular expression can be
transformed into one or more tags with values extracted from
subexpressions of the regular expression. Transformations are
specified as follows:
tag=/regex/,n1,n2...
where tag is the name of the tag to be transformed, regex is a
regular expression with 1 or more subexpressions, and n1,n2...
is a sequence of names for the tags formed from the regular
expression's subexpressions (matching groups). Any character may
be used in place of the slashes (/) to delimit the regular
expression. There must be at least one subexpression in the
regular expression. There must be exactly as many names as
subexpressions. If one of the names is the original tag name,
the original tag is replaced with the transformed value.
Otherwise, the original tag is passed through unchanged.
Multiple transformations may be separated by semicolons (;). Any
character may be escaped with a backslash (\).
Examples:
foo=/^(.+):.*x=([0-9]+)/,foo,bar
foo=@.*y=([A-Za-z_]+)@,yval
--stats.event-backends=value
(valid values: "console" or "honeycomb")
Selects which stats backend(s) to use for structured events.
--stats.exec.attempt-timeout=duration
(default: 1s)
Specifies the default timeout for individual action attempts. A
timeout of 0 means no timeout.
--stats.exec.delay=duration
(default: 100ms)
Specifies the initial delay for the exponential delay type.
Specifies the delay for constant delay type.
--stats.exec.delay-type=value
(default: "exponential")
(valid values: "constant" or "exponential")
Specifies the retry delay type.
--stats.exec.max-attempts=int
(default: 8)
Specifies the maximum number of attempts made, inclusive of the
original attempt.
--stats.exec.max-delay=duration
(default: 30s)
Specifies the maximum delay for the exponential delay type.
Ignored for the constant delay type.
--stats.exec.parallelism=int
(default: 8)
Specifies the maximum number of concurrent attempts running.
--stats.exec.timeout=duration
(default: 10s)
Specifies the default timeout for actions. A timeout of 0 means
no timeout.
--stats.honeycomb.api-host=string
(default: "https://api.honeycomb.io")
The Honeycomb API host to send messages to
--stats.honeycomb.batchSize=uint
(default: 50)
The Honeycomb batch size to use
--stats.honeycomb.dataset=string
They Honeycomb dataset to send messages to.
--stats.honeycomb.sample-rate=uint
(default: 1)
The Honeycomb sample rate to use. Specified as 1 event sent per
Sample Rate
--stats.honeycomb.write-key=string
They Honeycomb write key used to send messages.
--stats.max-batch-delay=duration
(default: 1s)
If batching is enabled, the maximum amount of time requests are
held before transmission
--stats.max-batch-size=int
(default: 100)
If batching is enabled, the maximum number of requests that will
be combined.
--stats.node=string
If set, specifies the node to use when submitting stats to
backends. Equivalent to adding "--stats.tags=node=value" to the
command line.
--stats.prometheus.addr=value
(default: 0.0.0.0:9102)
Specifies the listener address for Prometheus scraping.
--stats.prometheus.scope=string
If specified, prepends the given scope to metric names.
--stats.source=string
If set, specifies the source to use when submitting stats to
backends. Equivalent to adding "--stats.tags=source=value" to
the command line. In either case, a UUID is appended to the
value to insure that it is unique across proxies. Cannot be
combined with --stats.unique-source.
--stats.statsd.debug
(default: false)
If enabled, logs the stats data on stdout.
--stats.statsd.flush-interval=duration
(default: 5s)
Specifies the duration between stats flushes.
--stats.statsd.host=string
(default: "127.0.0.1")
Specifies the destination host for stats.
--stats.statsd.latch
(default: false)
Specifies whether stats are accumulated over a window before
being sent to the backend.
--stats.statsd.latch.base-value=float
(default: 0.001)
Specifies the upper bound of the first bucket used for
accumulating histograms. Each subsequent bucket's upper bound is
double the previous bucket's. For timings this value is taken to
be in units of seconds. Must be greater than 0.
--stats.statsd.latch.buckets=int
(default: 20)
Specifies the number of buckets used for accumulating
histograms. Must be greater than 1.
--stats.statsd.latch.window=duration
(default: 1m0s)
Specifies the period of time over which stats are latched. Must
be greater than 0.
--stats.statsd.max-packet-len=bytes
(default: 8192)
Specifies the maximum number of payload bytes sent per flush. If
necessary, flushes will occur before the flush interval to
prevent payloads from exceeding this size. The size does not
include IP and UDP header bytes. Stats may not be delivered if
the total size of the headers and payload exceeds the network's
MTU.
--stats.statsd.port=int
(default: 8125)
Specifies the destination port for stats.
--stats.statsd.scope=string
If specified, prepends the given scope to metric names.
--stats.statsd.transform-tags=string
Defines one or more transformations for tags. A tag with a
specific name whose value matches a regular expression can be
transformed into one or more tags with values extracted from
subexpressions of the regular expression. Transformations are
specified as follows:
tag=/regex/,n1,n2...
where tag is the name of the tag to be transformed, regex is a
regular expression with 1 or more subexpressions, and n1,n2...
is a sequence of names for the tags formed from the regular
expression's subexpressions (matching groups). Any character may
be used in place of the slashes (/) to delimit the regular
expression. There must be at least one subexpression in the
regular expression. There must be exactly as many names as
subexpressions. If one of the names is the original tag name,
the original tag is replaced with the transformed value.
Otherwise, the original tag is passed through unchanged.
Multiple transformations may be separated by semicolons (;). Any
character may be escaped with a backslash (\).
Examples:
foo=/^(.+):.*x=([0-9]+)/,foo,bar
foo=@.*y=([A-Za-z_]+)@,yval
--stats.tags=value
Tags to be included with every stat. May be comma-delimited or
specified more than once. Should be of the form "<key>=<value>"
or "tag"
--stats.unique-source=string
If set, specifies the source to use when submitting stats to
backends. Equivalent to adding "--stats.tags=source=value" to
the command line. Unlike --stats.source, failing to specify a
unique value may prevent stats from being recorded correctly.
Cannot be combined with --stats.source.
--stats.wavefront.debug
(default: false)
If enabled, logs the stats data on stdout.
--stats.wavefront.flush-interval=duration
(default: 5s)
Specifies the duration between stats flushes.
--stats.wavefront.host=string
(default: "127.0.0.1")
Specifies the destination host for stats.
--stats.wavefront.latch
(default: false)
Specifies whether stats are accumulated over a window before
being sent to the backend.
--stats.wavefront.latch.base-value=float
(default: 0.001)
Specifies the upper bound of the first bucket used for
accumulating histograms. Each subsequent bucket's upper bound is
double the previous bucket's. For timings this value is taken to
be in units of seconds. Must be greater than 0.
--stats.wavefront.latch.buckets=int
(default: 20)
Specifies the number of buckets used for accumulating
histograms. Must be greater than 1.
--stats.wavefront.latch.window=duration
(default: 1m0s)
Specifies the period of time over which stats are latched. Must
be greater than 0.
--stats.wavefront.max-packet-len=bytes
(default: 8192)
Specifies the maximum number of payload bytes sent per flush. If
necessary, flushes will occur before the flush interval to
prevent payloads from exceeding this size. The size does not
include IP and UDP header bytes. Stats may not be delivered if
the total size of the headers and payload exceeds the network's
MTU.
--stats.wavefront.port=int
(default: 8125)
Specifies the destination port for stats.
--stats.wavefront.scope=string
If specified, prepends the given scope to metric names.
--stats.wavefront.transform-tags=string
Defines one or more transformations for tags. A tag with a
specific name whose value matches a regular expression can be
transformed into one or more tags with values extracted from
subexpressions of the regular expression. Transformations are
specified as follows:
tag=/regex/,n1,n2...
where tag is the name of the tag to be transformed, regex is a
regular expression with 1 or more subexpressions, and n1,n2...
is a sequence of names for the tags formed from the regular
expression's subexpressions (matching groups). Any character may
be used in place of the slashes (/) to delimit the regular
expression. There must be at least one subexpression in the
regular expression. There must be exactly as many names as
subexpressions. If one of the names is the original tag name,
the original tag is replaced with the transformed value.
Otherwise, the original tag is passed through unchanged.
Multiple transformations may be separated by semicolons (;). Any
character may be escaped with a backslash (\).
Examples:
foo=/^(.+):.*x=([0-9]+)/,foo,bar
foo=@.*y=([A-Za-z_]+)@,yval
--version
(default: false)
Print the version and exit
--xds.addr=value
(default: :50000)
The address on which to serve the envoy API server.
--xds.ads-enabled
(default: true)
If false, turn off ads discovery mode
--xds.ca-file=string
Path to a file (on the Envoy host's file system) containing CA
certificates for TLS.
--xds.default-timeout=duration
(default: 1m0s)
The default request timeout, if none is specified in the
RetryPolicy for a Route
--xds.disabled
(default: false)
Disables the xDS listener.
--xds.enable-rest
(default: false)
If true, enable REST api type instead of gRPC
--xds.enable-tls
(default: false)
Enable grpc xDS TLS
--xds.gateway-addr=value
(default: :50001)
The address on to serve the HTTP gateway which fronts the envoy
API server
--xds.grpc-log-top=int
(default: 0)
When gRPC logging is enabled and this value is greater than 1,
logs of non-success Envoy responses are tracked and periodically
reported. This flag controls how many unique response code &
request path combinations are tracked. When the number of
tracked combinations in the reporting period is exceeded,
uncommon paths are evicted.
--xds.grpc-log-top-interval=duration
(default: 5m0s)
See the grpc-log-top flag. Controls the interval at which top
logs are generated.
--xds.interval=duration
(default: 1s)
The interval for polling the Greymatter API. Minimium value is
500ms
--xds.log-access-logs
(default: false)
If true, log access logs using the standard logger
--xds.resolve-dns
(default: true)
If true, resolve EDS hostnames to IP addresses.
--xds.server-auth-type=string
TLS client authentication type
--xds.server-cert=string
URL containing the server certificate for the grpc ADS server
--xds.server-key=string
URL containing the server certificate key for the grpc ADS
server
--xds.server-trusts=string
Comma-delimited URLs containing truststores for the grpc ADS
server
--xds.standalone-cluster=string
(default: "default-cluster")
The name of the cluster for the Envoys consuming the standalone
xDS server. Should match the --service-cluster flag for the
envoy binary, or the ENVOY_NODE_CLUSTER value for the
envoy-simple Docker image.
--xds.standalone-port=int
(default: 80)
The port on which Envoys consuming the standalone xDS server
should listen. Ignored if --api.key is specified.
--xds.standalone-zone=string
(default: "default-zone")
The name of the zone for the Envoys consuming the standalone xDS
server. Should match the --service-zone flag for the envoy
binary, or the ENVOY_NODE_ZONE value for the envoy-simple Docker
image.
--xds.static-resources.conflict-behavior=value
(default: "merge")
(valid values: "overwrite" or "merge")
How to handle conflicts between configuration types. If
"overwrite" configuration types overwrite defaults. For example,
if one were to include "listeners" in the static resources
configuration file, all existing listeners would be overwritten.
If the value is "merge", listeners would be merged together,
with collisions favoring the statically configured listener.
Clusters are differentiated by name, while listeners are
differentiated by IP/port. Listeners on 0.0.0.0 (or ::) on a
given port will collide with any other IP with the same port.
Specifying colliding static resources will produce a startup
error.
--xds.static-resources.filename=string
Path to a file containing static resources. The contents of the
file should be either a JSON or YAML fragment (as configured by
the corresponding --format flag) containing any combination of
"clusters" (an array of
https://www.envoyproxy.io/docs/envoy/v1.15.0/api-v2/api/v2/cds.proto#cluster),
"cluster_template" (a single cluster, which will be used as the
prototype for all clusters not specified statically), and/or
listeners" (an array of
https://www.envoyproxy.io/docs/envoy/v1.15.0/api-v2/api/v2/lds.proto#listener).
The file is read once at startup. Only the v2 API is parsed.
Enum strings such as "ROUND_ROBIN" must be capitalized.
--xds.static-resources.format=value
(default: "yaml")
(valid values: "json" or "yaml")
The format of the static resources fileLast updated
Was this helpful?