-
Notifications
You must be signed in to change notification settings - Fork 498
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
provide a way to block all volatile facts #2718
Comments
I personally don't have a use for these facts, but it's cheaper for If the reasoning is to reduce db load, what about a |
I think it is a tradeoff between performance cs how many people use the facts. And if there usage is almost zero it makes sense to remove them from core facter. |
Foreman already implements something like this, because it creates too much noise in the database. But it would be good if this was more natively implemented. Perhaps the custom fact API should be extended to support marking it as volatile? Then fact upload to PuppetDB and Foreman could only send the non-volatile facts (hard facts?). |
Migrated issue to FACT-3470 |
We currently have two ways to block facts from ending up in puppetdb. Facts can be blocked via facter.conf so they are not sent and they can be blocked in the puppetdb terminus. Are there specific reasons why those approaches don't work? About volatile, etc, it would be easy to update the I know facter has lots of volatile facts that seem dubious, but we literally get bug reports about the processor speed being incorrect, the amount of free space being incorrect on AIX, etc. In other words, I'm fairly sure there is a non-zero number of people relying on facts that most would consider not-useful. |
I'll note that instead of uptime you can also calculate the boot time. That would make the fact stable |
@joshcooper I think the facter.conf approach is quite limited to certain groups / toplevel facts? I think a config option like |
facter has a number of builtin fact groups (see
I'd prefer to not add a third way to block facts, given the existing ones already work. Perhaps we could add a predefined |
That sounds reasonable, but the goal is to easily drop them from central fact stores (PuppetDB, Foreman) so I wonder if Puppet could default to blocking those when sending. That may be more of a Puppet 9 change, but I can live with a long term plan |
@joshcooper can we already block |
Not currently, see #2658. The
Blocking (and caching) work at the per fact class layer, so you can only block the entire Confusingly, you can block some fact hash values like
The part that's missing is the ability to exclude/reject fact values that were collected, but not needed, like |
I'd be also interested to block some mountpoint-related facts. I'm not interested in any mountpoints under Mountpoints managed by container runtimes are pretty volatile so I think this issue is a good place for this feature request. |
Use Case
I think those facts don't make much sense. They change on each puppet run and produce a lot of IO on PuppetDB and postgresql. Monitoring the system load should be done by a monitoring system. And instead of reporting the uptime, facter should only report the boot time.
Describe the Solution You Would Like
Less facts that change on each run
Describe Alternatives You've Considered
A clear and concise description of any alternative solutions or features you've considered.
Additional Context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: