2 Stimmen

Plattformübergreifende Systemnutzungsmetriken

Gibt es eine plattformübergreifende C-API, die verwendet werden kann, um Systemnutzungsdaten zu erhalten?

2voto

R Samuel Klatchko Punkte 72641

Leider nicht.

Der C-Standard beschränkt sich im Wesentlichen auf dynamische Zuweisung, String-Manipulation, Mathematik und Text-E/A. Sobald Sie darüber hinausgehen, benötigen Sie Betriebssystem-APIs, die per Definition betriebssystemspezifisch und nicht plattformübergreifend sind.

2voto

Jesse K Punkte 136

Ich habe gearbeitet mit libstatgrab vor. Es liefert Ihnen einige ziemlich nützliche Systemstatistiken für die wichtigsten Unix-ähnlichen Varianten und Windows über Cygwin (angeblich - nie ausprobiert). Verschiedene Betriebssysteme arbeiten so unterschiedlich - vor allem, wenn es um Nutzungsmetriken geht -, dass es schwierig sein kann, das zu bekommen, was man will. Selbst etwas so einfach klingendes wie "freier Speicher" kann schwierig sein, plattformübergreifend zu handeln. Wenn Sie die Dinge ein wenig eingrenzen, können wir vielleicht etwas finden.

2voto

Cowan Punkte 36327

Je nach den Kennzahlen, die Sie erfassen möchten, sollten Sie folgende Punkte berücksichtigen PCP (Performance Co-Pilot). Dabei handelt es sich um ein Open-Source-Performance-Framework, das ursprünglich bei Silicon Graphics entwickelt wurde und das eine Vielzahl möglicher Metriken aus einer Vielzahl von Quellen sammelt und zusammenstellt, so dass Sie diese von überall aus überwachen können.

Im Grunde genommen würde PCP bedeuten, dass eine weitere "Schicht" in Ihr System eingefügt wird - zum Beispiel könnten Sie einen verteilten Cluster von Maschinen mit gemischten Betriebssystemen überwachen, auf denen jeweils PCP lokal installiert ist; eine Reihe von "Agenten" sammeln die Leistungsdaten auf jeder Maschine, und Ihr Code könnte dann libpcp verwenden, um diese Metriken nach Bedarf zu sammeln.

Es ist schwer zu sagen, ohne Ihr genaues Nutzungsszenario zu kennen (wenn Sie über etwas reden, das nahtlos auf den Rechnern der Endbenutzer läuft, ist PCP vielleicht nicht geeignet, aber wenn Sie Rechner überwachen wollen, die Sie kontrollieren, und den PCP-Dienst darauf laufen lassen wollen, ist es eine großartige Lösung).

Wir verwenden PCP sehr gerne, um Metriken von Windows- und Linux-Rechnern sowie interne Metriken von unserer Anwendung zu sammeln und sie alle zentral zu protokollieren, Berichte zu erstellen, Trends zu überwachen usw.

0voto

mac13k Punkte 2071

Die gute alte SNMP bietet C-Bibliotheken für die Client- und Serverseite. Wenn Sie etwas neueres bevorzugen, sollten Sie versuchen Prometheus . Sie haben Knotenpunkt-Exporter und die Client-Bibliotheken für viele Sprachen, darunter C .

Beachten Sie auch, dass PCP (wie in Cowans Antwort erwähnt) den OpenMetrics-Standard seit Version 4 unterstützt. Wenn Sie sich also entscheiden, Prometheus als Metrik-Datenkollektor zu verwenden, sind die Erweiterung von PCP oder das Schreiben eines benutzerdefinierten Prometheus-Clients bessere Lösungen als SNMP, das ebenfalls von Prometheus unterstützt wird SNMP-Exporter Die Einrichtung ist jedoch aufgrund der Art und Weise, wie MIBs und Authentifizierung gehandhabt werden, schwieriger.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X