RkBlog

Hardware, programming and astronomy tutorials and reviews.

Pystatgrab - zbieranie statystyk systemowych

Opis pythonowego API biblioteki libstatgrab zbierającej m.in. statystyki zużycia systemowych zasobów.

PyStatgrab to API biblioteki libstatgrab dla Pythona. Jak można domyśleć się po nazwie, biblioteka libstatgrab zajmuje się zbieraniem statystyk systemowych takich jak: wykorzystanie procesora, pamięci, dysków, statystyki procesów, ruch sieciowy, operacje wyjścia/wejścia na dyskach i inne. Biblioteka ta dostępna jest pod licznymi systemami: Solaris 2.x, Linux 2.2/2.4/2.6, FreeBSD 4.x/5.x, NetBSD 1.6.x, OpenBSD 3.x, DragonFly BSD 1.0, HP-UX i Cygwin. Wraz z libstatgrab dostajemy również konsolową aplikację saidar obrazującą zbierane przez bibliotekę statystyki. W przypadku pystatgrab mamy do dyspozycji podobne API jak to dostępne w C. Dokumentacja do pystatgrab nie istnieje i autor zaleca zapoznanie się z dokumentacją i przykładami macierzystej biblioteki. W skrócie API pystatgrab sprowadza się do takich funkcji:
from pprint import pprint

from statgrab import *

sg_init()

pprint(sg_get_host_info())
pprint(sg_get_cpu_stats())
pprint(sg_get_cpu_stats_diff())
pprint(sg_get_cpu_percents())
pprint(sg_get_mem_stats())
pprint(sg_get_load_stats())
pprint(sg_get_user_stats())
pprint(sg_get_swap_stats())
pprint(sg_get_fs_stats())
pprint(sg_get_disk_io_stats())
pprint(sg_get_disk_io_stats_diff())
pprint(sg_get_network_io_stats())
pprint(sg_get_network_io_stats_diff())
pprint(sg_get_network_iface_stats())
pprint(sg_get_page_stats())
pprint(sg_get_page_stats_diff())
pprint(sg_get_process_stats())
pprint(sg_get_process_count())
Ciągłe zbieranie statystyk wymaga zastosowania np. pętli z opóźnieniem:
from time import sleep

from statgrab import *

sg_init()

while True:
	print sg_get_process_count()
	sleep(2)
Biblioteka jest wydajna i nie powoduje nadmiernego zamieszania wśród systemowych zasobów.
RkBlog

31 October 2008;

Comment article