RkBlog

Hardware, programming and astronomy tutorials and reviews.

Pystatgrab - zbieranie statystyk systemowych

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

Programowanie Sieciowe, 31 October 2008, Piotr Maliński

Comment article