ponchofiesta wrote:Ich würde gern ein kleines Traffic-Modul schreiben, dass die Infos aus der /proc/net/dev ausliest. Aber wie kann ich den alten Status abrufen um die aktuelle Transferrate zu berechnen (aktuell Bytes - alte Bytes = Bytes pro Zeit)?
Im vorherigen Posting habe ich schon ein paar Links genannt, wo man hier Infos/Ideen bekommt. Auf die konkrete Frage bzogen, es verschiedene Möglichkeiten. Als erstes mal ist rrdtool auf dieses Problem vorbereitet, ich will da mal einen Abschnitt aus dem rootiewiki Artikel zitieren:
rootiewiki.de wrote:initRRD() fügt die Datenquellen beim Anlegen der rrd-Datei mit der Methode $rrd->addDatasource().
    * der erste Parameter steht für die Datenquelle ('ds' bei der Konfiguration des Graphen, siehe oben)
    * beim zweiten Parameter wird unterschieden, ob es sich bei den Daten um einen Counter handelt der immer weiter steigt (so wie die Total Accesses Angabe in server-status), in diesem Fall ist DERIVE zu verwenden, oder ob es sich immer um einen absoluten Wert handelt (wie z.B. die BusyServers? Angabe in server-status), wo dann GAUGE anzugeben wäre.
Nach Möglichkeit sollte man also immer diesen direkten Weg gehen, dann kümmert sich rrdtool um den Rest. Wie die konkrete 
initRRD() Methode am Apache-Status Beispiel aussieht, findest Du hier:
https://svn.webmasterpro.de/filedetails ... rev=0&sc=0
Falls man aus irgendeinem Grund doch einen eigenen Cache braucht, ist das in serverstats ebenfalls vorgesehen, Beispiel:
https://svn.webmasterpro.de/filedetails ... rev=0&sc=0
Normalerweise sollte man das aber vermeiden. Wie gesagt, ich würde empfehlen mal den Artikel im rootiewiki in Ruhe durchzulesen, da ist z.B. die API für Sourcen erklärt: 
http://rootiewiki.de/index.php?pagename=Serverstats
Noch eine Bemerkung zu Deinem Vorhaben - vermutlich ist /proc/net/dev das was auch ifconfig etc. auslesen, oder? Dann solltest Du darauf achten, dass es sich hierbei um einen "rotierenden Wert" handelt, ich kenne mich da nicht so aus, aber soweit ich weiß fängt der Zähler ab einem bestimmten Wert immer wieder bei 0 an (evtl. behandelt rrdtool das aber auch von alleine, das weiß ich nicht).
Was ähnliches gilt übrigens auch für PHP, der INT Wert bei PHP wird nur mit 32Bit dargestellt (auf 32Bit Systemen, auf 64Bit Systemen ist es mehr), also bis 2 Mrd. irgendwas, dann wird daraus ein Float, und die Darstellung ändert sich, so dass die Zahl nicht mehr von rrdtool verarbeitet werden kann. Allerdings weiß ich nicht ob Dich das betrifft, evtl. mit entsprechenden Werten mal testen. Ich erinnere mich dass wir das Problem bei irgendeiner Source mal hatten, kann mich aber gerade nicht dran erinnern wo das war (ich glaube es war disk, nur kann ich das auch dort nichts mehr finden). Es gab jedenfalls verschiedene workarounds.
Da serverstats wie gesagt auf rrdtool aufsetzt, kann man auch in der rrdtool Doku nachlesen, wie bestimmte Dinge funktionieren, z.B. auch wie rrd Datendateien erzeugt werden: 
http://people.ee.ethz.ch/~oetiker/webto ... te.en.html
 oder wie entsprechende graphen konfiguriert werden:
http://people.ee.ethz.ch/~oetiker/webto ... ph.en.html
Das ganze lässt sich wie gesagt sehr gut auf serverstats übertragen, die ganzen Einstellungen verwenden entsprechende Namen. Und natürlich im Quellcode nachgucken wie andere Sourcen realisiert wurden: 
https://svn.webmasterpro.de/listing.php ... rev=0&sc=0
Weitere Beispiele, vor allem für Graphen finden sich in der Demo: 
http://www.webmasterpro.de/~ddanier/ser ... /demo.html (inkl. config)