mirror of https://github.com/ansible/ansible.git
Recover unix load average into an ansible_loadavg fact (#75319)
* Recover unix load average into an ansible_loadavg fact The average load is available out of the box with os.getloadavg(). It adds useful context to the existing ansible_memory_mb and ansible_mounts facts that provide size and utilization or memory and disk space. * Add an integration testpull/78764/head
parent
a6d4c3ff7c
commit
86ab63f281
@ -0,0 +1,31 @@
|
||||
# (c) 2021 Ansible Project
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
import os
|
||||
|
||||
import ansible.module_utils.compat.typing as t
|
||||
|
||||
from ansible.module_utils.facts.collector import BaseFactCollector
|
||||
|
||||
|
||||
class LoadAvgFactCollector(BaseFactCollector):
|
||||
name = 'loadavg'
|
||||
_fact_ids = set() # type: t.Set[str]
|
||||
|
||||
def collect(self, module=None, collected_facts=None):
|
||||
facts = {}
|
||||
try:
|
||||
# (0.58, 0.82, 0.98)
|
||||
loadavg = os.getloadavg()
|
||||
facts['loadavg'] = {
|
||||
'1m': loadavg[0],
|
||||
'5m': loadavg[1],
|
||||
'15m': loadavg[2]
|
||||
}
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
return facts
|
Loading…
Reference in New Issue