| Hello, Some facts are volatile, they change quite often and I doubt about their value in the inventory as Facter should not be used as a "monitoring tool". Most of them can be blocklisted in facter4, which is a great feature, however I've identified few which probably needs an "stable" alternative. I was able to identify the following facts: ``` load_averages: 15m: 0.57 1m: 0.34 5m: 0.47 ``` This is straight-up not a good fact for a configuration management inventory. But you probably don't want to break facter so let's just blocklist it. ``` memory: swap: available: 33.00 GiB available_bytes: 35433476096 capacity: 0.00% used: "0 bytes" used_bytes: 0 system: available: 23.70 GiB available_bytes: 25444986880 capacity: 13.77% used: 4.31 GiB used_bytes: 4627849216 ``` The same case, the only interesting ones are "totals". These change every fact upload, can be blocklisted too. Unfortunately, here is one that cannot be blocklisted: ``` system_uptime: days: 0 hours: 1 seconds: 5058 uptime: "1:24 hours" ``` The correct approach would be to report something like "boot_time" in UTC which can be easily used to calculate uptime for humans. Adding such fact would greatly help. The last one I was able to identify on my system was: ``` processors: models: speed: 1.38 GHz ``` My CPU has variable speed depending on load. Facter reports current speed which is not much useful, I think this might be actually a bug. Usually you want to see number of CPUs, model, cores and clock information to plan deployments accordingly. So here it is, my analysis showed that two facts (uptime and processor speed) needs to be fixed. To remain backward compatibility these probably needs some alternatives and users could be instructed to blocklist the original ones if they don't want to put too much database stress on their inventory databases. For the record, here is the full blocklist: ``` facts : { blocklist : [ "load_averages", "identity", "memory.system.capacity", "memory.system.used*", "memory.system.available*", "memory.swap.capacity", "memory.swap.used*", "memory.swap.available*", "system_uptime", "processors.speed", ] } ```{{}} |