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. |
||
---|---|---|
.. | ||
cmd | ||
docklog | ||
test-resources/docker | ||
util | ||
config.go | ||
config_test.go | ||
coordinator.go | ||
coordinator_test.go | ||
driver.go | ||
driver_darwin_test.go | ||
driver_default.go | ||
driver_linux_test.go | ||
driver_pre09.go | ||
driver_test.go | ||
driver_unix_test.go | ||
driver_windows.go | ||
driver_windows_test.go | ||
fingerprint.go | ||
fingerprint_test.go | ||
handle.go | ||
network.go | ||
progress.go | ||
progress_test.go | ||
reconciler.go | ||
reconciler_test.go | ||
state.go | ||
stats.go | ||
stats_test.go | ||
utils.go | ||
utils_test.go | ||
utils_unix_test.go | ||
utils_windows_test.go | ||
win32_volume_parse.go |