C#-Bibliothek für die Windows-Prozessverwaltung

Es scheint, dass es heutzutage Bibliotheken für alles gibt! Ich muss ein Programm entwickeln, das ein paar Windows-Programme hervorbringt und überwachen muss:

  • Dass sie noch leben
  • Alle Protokolldateien, die sie erstellen
  • StdIn, StdOut, StdErr (falls vorhanden)
  • Leistungsmetriken (Festplatte, E/A, Netzwerk, CPU)

Gibt es da draußen eine "fertige" Bibliothek, die mir die Beinarbeit abnimmt?

Mir ist bewusst, dass ich WMI Performance Counters, Tracing, System.Diagnostics usw. verwenden kann, um das oben Genannte zu tun, aber ich hoffe, dass jemand, der schlau ist, bereits eine Kickass-Bibliothek für den Umgang mit dem Low-Level-Zeug entwickelt hat.

Ich bin nicht dagegen, für die Software zu bezahlen, also sind bezahlt/offen/geschlossen alle akzeptabel, aber kostenlos ist besser als bezahlt, und offen ist besser als geschlossen.


Update: Ich habe dies ursprünglich auf Stack Overflow gepostet und mir wurde geraten, hier erneut zu posten.

Update 2: Nach langer Suche im Internet bin ich auf diese Kandidatenprozessbibliotheken gestoßen, aber keine scheint das zu sein, wonach ich suche:

Update 3: Keines der oben genannten scheint wirklich den Zweck zu erfüllen. Ich schätze, ich muss meine eigenen rollen.

Antworten (1)

Ich empfehle Ihnen, das .NET-Framework direkt zu verwenden.

  • Dass sie noch leben

Das Process- Objekt hat eine HasExited -Eigenschaft, um dies zu bestimmen.

  • Alle Protokolldateien, die sie erstellen

Dies ist eine Bestätigung, es hängt davon ab, wie die Anwendung protokolliert. Wenn sie Dateien erstellen, überwachen sie die Dateien, die sie erstellen, möglicherweise mit der FileSystemWatcher- Klasse. Wenn es sich um Ereignisprotokolle handelt, müssen Sie wissen, wie sie sich im Ereignisprotokoll protokollieren. Wenn sie in die Standardausgabe (stdout) schreiben, sehen Sie sich die RedirectStandardOutput- Eigenschaftsdokumentation an.

  • StdIn, StdOut, StdErr (falls vorhanden)

All dies ist über das Process- Objekt verfügbar.

  • Leistungsmetriken (Festplatte, E/A, Netzwerk, CPU)

Dies kann mit der PerformanceCounter- Klasse erfolgen .

Aber es gibt auch wolfpack https://wolfpack.codeplex.com/

Projektbeschreibung Wolfpack will das „Schweizer Taschenmesser“ der Überwachung sein. Um eine Zeile von Etsy auszuleihen ... "Wenn es sich bewegt, überwachen wir es, selbst wenn es sich nicht bewegt, überwachen wir es, nur für den Fall, dass es eine Pause macht!".

Möglicherweise müssen Sie ein Plugin für Ihre Besonderheiten schreiben, aber dies funktioniert mit einer gewissen Konfiguration möglicherweise sofort für Sie.

Merkmale

  • IIS-Protokolle – Firewall-Protokolle
  • Ereignisprotokolle (einschließlich Abfragen, die sich mit denen auf Remote-Computern verbinden)
  • Viele andere textuelle Protokollierungsformate wie CSV, XML (einschließlich eines HTTP-Aufrufs zum Abrufen der Daten, z. B.: RSS, Webservice)
  • Dateisystem
  • Sql Server-Daten (Schreibabfragen, um jede Art von Datenzustand zu erkennen, z. B.: Überwachung auf Bestellungen > £-Wert oder nicht nach N Tagen versandt)
  • MSMQ
  • RabbitMQ (Beitrags-Plugin)
  • Windows-Dienste
  • Webdienst/Site Ping
  • Systemauslastung (CPU, Festplatte).
  • Build/CI (im Moment TeamCity) und die Extraktion von Statistiken aus gängigen Build-Tools wie NCover, SpecFlow, StoryQ
  • Bereitstellung – Wolfpack kann NuGet-Pakete automatisch bereitstellen – diese können Ihre gesamte Website/Anwendung oder nur einige Unit-Tests enthalten, und Wolfpack erkennt, lädt sie herunter und entpackt sie, führt sogar die Unit-Tests aus und sendet eine Benachrichtigung mit den Ergebnissen!
  • Ablauf von SSL-Zertifikaten - Überwachen Sie Zertifikate, die kurz vor dem Ablauf stehen, und verhindern Sie peinliche Vorfälle wie den, den SagePay gerade erlebt hat.