sysvitals_client 683 B

12345678910111213141516171819202122232425262728
  1. #!/usr/bin/python
  2. from collections import namedtuple
  3. import psutil
  4. import json
  5. def serialize(stats, partitions):
  6. data = {type(stat).__name__: stat._asdict() for stat in stats}
  7. data['partitions'] = {p[0]: p[1]._asdict() for p in partitions}
  8. return json.dumps(data)
  9. def get_stats():
  10. stats = [
  11. psutil.cpu_times(),
  12. psutil.virtual_memory(),
  13. psutil.net_io_counters(),
  14. ]
  15. partitions = []
  16. for partition in psutil.disk_partitions():
  17. partitions.append((partition.mountpoint, psutil.disk_usage(partition.mountpoint)))
  18. return stats, partitions
  19. def post_stats():
  20. stats, partitions = get_stats()
  21. json_data = serialize(stats, partitions)
  22. return json_data
  23. print(post_stats())