0b7085ba3a
Operators commonly have docker logs aggregated using various tools and don't need nomad to manage their docker logs. Worse, Nomad uses a somewhat heavy docker api call to collect them and it seems to cause problems when a client runs hundreds of log collections. Here we add a knob to disable log aggregation completely for nomad. When log collection is disabled, we avoid running logmon and docker_logger for the docker tasks in this implementation. The downside here is once disabled, `nomad logs ...` commands and API no longer return logs and operators must corrolate alloc-ids with their aggregated log info. This is meant as a stop gap measure. Ideally, we'd follow up with at least two changes: First, we should optimize behavior when we can such that operators don't need to disable docker log collection. Potentially by reverting to using pre-0.9 syslog aggregation in linux environments, though with different trade-offs. Second, when/if logs are disabled, nomad logs endpoints should lookup docker logs api on demand. This ensures that the cost of log collection is paid sparingly. |
||
---|---|---|
.. | ||
getter | ||
interfaces | ||
restarts | ||
state | ||
template | ||
testdata | ||
artifact_hook.go | ||
artifact_hook_test.go | ||
device_hook.go | ||
device_hook_test.go | ||
dispatch_hook.go | ||
dispatch_hook_test.go | ||
driver_handle.go | ||
envoybootstrap_hook.go | ||
envoybootstrap_hook_test.go | ||
errors.go | ||
errors_test.go | ||
lazy_handle.go | ||
lifecycle.go | ||
logmon_hook.go | ||
logmon_hook_test.go | ||
logmon_hook_unix_test.go | ||
script_check_hook.go | ||
script_check_hook_test.go | ||
service_hook.go | ||
service_hook_test.go | ||
stats_hook.go | ||
stats_hook_test.go | ||
task_dir_hook.go | ||
task_runner.go | ||
task_runner_getters.go | ||
task_runner_hooks.go | ||
task_runner_test.go | ||
tasklet.go | ||
tasklet_test.go | ||
template_hook.go | ||
validate_hook.go | ||
validate_hook_test.go | ||
vault_hook.go | ||
vault_hook_test.go | ||
volume_hook.go |