mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #24586 from farcaller/gcplogs
Added optional flags to init gcp logger metadata
This commit is contained in:
commit
5be6ccc433
2 changed files with 31 additions and 6 deletions
|
@ -21,6 +21,9 @@ const (
|
|||
logLabelsKey = "labels"
|
||||
logEnvKey = "env"
|
||||
logCmdKey = "gcp-log-cmd"
|
||||
logZoneKey = "gcp-meta-zone"
|
||||
logNameKey = "gcp-meta-name"
|
||||
logIDKey = "gcp-meta-id"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -142,6 +145,12 @@ func New(ctx logger.Context) (logger.Logger, error) {
|
|||
Name: instanceName,
|
||||
ID: instanceID,
|
||||
}
|
||||
} else if ctx.Config[logZoneKey] != "" || ctx.Config[logNameKey] != "" || ctx.Config[logIDKey] != "" {
|
||||
l.instance = &instanceInfo{
|
||||
Zone: ctx.Config[logZoneKey],
|
||||
Name: ctx.Config[logNameKey],
|
||||
ID: ctx.Config[logIDKey],
|
||||
}
|
||||
}
|
||||
|
||||
// The logger "overflows" at a rate of 10,000 logs per second and this
|
||||
|
@ -163,7 +172,7 @@ func New(ctx logger.Context) (logger.Logger, error) {
|
|||
func ValidateLogOpts(cfg map[string]string) error {
|
||||
for k := range cfg {
|
||||
switch k {
|
||||
case projectOptKey, logLabelsKey, logEnvKey, logCmdKey:
|
||||
case projectOptKey, logLabelsKey, logEnvKey, logCmdKey, logZoneKey, logNameKey, logIDKey:
|
||||
default:
|
||||
return fmt.Errorf("%q is not a valid option for the gcplogs driver", k)
|
||||
}
|
||||
|
|
|
@ -37,6 +37,10 @@ The `--gcp-project` takes precedence over information discovered from the metada
|
|||
so a Docker daemon running in a Google Cloud Project can be overridden to log to a different
|
||||
Google Cloud Project using `--gcp-project`.
|
||||
|
||||
Docker fetches the values for zone, instance name and instance id from Google
|
||||
Cloud metadata server. Those values can be provided via options if metadata
|
||||
server is not available. They will not override the values from metadata server.
|
||||
|
||||
## gcplogs options
|
||||
|
||||
You can use the `--log-opt NAME=VALUE` flag to specify these additional Google
|
||||
|
@ -48,6 +52,9 @@ Cloud Logging driver options:
|
|||
| `gcp-log-cmd` | optional | Whether to log the command that the container was started with. Defaults to false. |
|
||||
| `labels` | optional | Comma-separated list of keys of labels, which should be included in message, if these labels are specified for container. |
|
||||
| `env` | optional | Comma-separated list of keys of environment variables, which should be included in message, if these variables are specified for container. |
|
||||
| `gcp-meta-zone` | optional | Zone name for the instance. |
|
||||
| `gcp-meta-name` | optional | Instance name. |
|
||||
| `gcp-meta-id` | optional | Instance ID. |
|
||||
|
||||
If there is collision between `label` and `env` keys, the value of the `env`
|
||||
takes precedence. Both options add additional fields to the attributes of a
|
||||
|
@ -57,13 +64,22 @@ Below is an example of the logging options required to log to the default
|
|||
logging destination which is discovered by querying the GCE metadata server.
|
||||
|
||||
docker run --log-driver=gcplogs \
|
||||
--log-opt labels=location
|
||||
--log-opt env=TEST
|
||||
--log-opt gcp-log-cmd=true
|
||||
--env "TEST=false"
|
||||
--label location=west
|
||||
--log-opt labels=location \
|
||||
--log-opt env=TEST \
|
||||
--log-opt gcp-log-cmd=true \
|
||||
--env "TEST=false" \
|
||||
--label location=west \
|
||||
your/application
|
||||
|
||||
This configuration also directs the driver to include in the payload the label
|
||||
`location`, the environment variable `ENV`, and the command used to start the
|
||||
container.
|
||||
|
||||
An example of the logging options for running outside of GCE (the daemon must be
|
||||
configured with GOOGLE_APPLICATION_CREDENTIALS):
|
||||
|
||||
docker run --log-driver=gcplogs \
|
||||
--log-opt gcp-project=test-project
|
||||
--log-opt gcp-meta-zone=west1 \
|
||||
--log-opt gcp-meta-name=`hostname` \
|
||||
your/application
|
||||
|
|
Loading…
Add table
Reference in a new issue