Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drivers: Make InternalCapabilities.DisableLogCollection Public #15686

Closed
endocrimes opened this issue Jan 4, 2023 · 4 comments · Fixed by #17196
Closed

Drivers: Make InternalCapabilities.DisableLogCollection Public #15686

endocrimes opened this issue Jan 4, 2023 · 4 comments · Fixed by #17196

Comments

@endocrimes
Copy link
Contributor

Proposal

The current set of Internal Driver Capabilities have been relatively stable since the introduction of the plugin interface, and some would greatly benefit 3rd party users of Nomad and Custom Task Drivers. This proposal suggests moving the DisableLogCollection feature to the public capabilities API.

While not perfect in isolation (Nomad offers no way to disable log collection for individual tasks, which means when scheduling to a driver with log collection disabled, the task still has an associated set of resources allocated for log storage), this goes a long way towards reducing overhead in a range of cases.

Use-cases

There are many use-cases where a driver author might want to give operators the ability to save on the overhead of deploying an unnecessary logmon for every task. Similarly to the Nomad Docker Driver's usage, the most obvious is where a runtime offers the ability to manage logs externally to Nomad.

This is particularly important when building high-density runtimes (and task drivers) - where no-op logmon overhead can quickly become an issue when deploying X000 allocations/node and logging is handled externally.

Attempted Solutions

We currently deploy a fork of Nomad that has a slightly jankier approach 😅.

@tgross
Copy link
Member

tgross commented Jan 4, 2023

Hi @endocrimes! Exposing this capability makes sense to me.

A little while back I spent a few days hacking on some thoughts for something like this (and #14636 #14056 #9211 and a variety of logging-related issues). I've got a disorganized branch with a couple different experiements at main...hack-logging-plugins which I'm going to carve out some time on in the next major release cycle. The larger "logging plugins" concept may not land but we definitely want to support the simpler lower-resource use case you're talking about here.

@endocrimes
Copy link
Contributor Author

@tgross Awesome - always happy to chat if you wanna bounce ideas around - from that branch I love the new logmon prospect (and the logging plugin concept in general).

It'd go a long way to alleviating one of the harder things to do cleanly with non-Docker drivers 😅 too, which is pretty good for everyone.

@tgross tgross added this to the 1.5.x milestone Mar 1, 2023
@tgross tgross self-assigned this Apr 21, 2023
tgross added a commit that referenced this issue May 15, 2023
The `DisableLogCollection` capability was introduced as an experimental
interface for the Docker driver in 0.10.4. The interface has been stable and
allowing third-party task drivers the same capability would be useful for those
drivers that don't need the additional overhead of logmon.

This PR only makes the capability public. It doesn't yet add it to the
configuration options for the other internal drivers.

Fixes: #14636 #15686
tgross added a commit that referenced this issue May 16, 2023
The `DisableLogCollection` capability was introduced as an experimental
interface for the Docker driver in 0.10.4. The interface has been stable and
allowing third-party task drivers the same capability would be useful for those
drivers that don't need the additional overhead of logmon.

This PR only makes the capability public. It doesn't yet add it to the
configuration options for the other internal drivers.

Fixes: #14636 #15686
@tgross tgross modified the milestones: 1.5.x, 1.6.0 May 16, 2023
@tgross
Copy link
Member

tgross commented May 16, 2023

Done in #17196 which will ship in Nomad 1.6.0! I'll have a PR up (probably later today) adding the capability to the other internal drivers.

Copy link

I'm going to lock this issue because it has been closed for 120 days ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 10, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants