Microsoft veröffentlicht Monitoring-Tool für .NET-Umgebungen

Das experimentelle Werkzeug dotnet-monitor gibt diverse Informationen über eine REST API aus und ist auch als Container-Image verfügbar.

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen
Microsoft veröffentlicht ein Monitoring-Tool für .NET-Umgebungen
Lesezeit: 3 Min.
Inhaltsverzeichnis

Ein zunächst als experimentell gekennzeichnetes Werkzeug soll beim Monitoring von .NET-Umgebungen helfen. Microsoft hat das Werkzeug dotnet-monitor veröffentlicht, das diverse Informationen über eine REST API bereitstellt. Verfügbar ist es als globales Tool für .NET Core und als Container-Image über die Microsoft Container Registry (MCR).

Die REST API stellt insgesamt sechs Endpunkte bereit: /processes, /dump/{pid?}, /gcdump/{pid?}, /trace/{pid?}, /logs/{pid?} und /metrics.

Standardmäßig bietet das Werkzeug zwei URL-Gruppen an. Für den Parameter --urls, der in der Grundeinstellung über http://localhost:52323 bereitsteht, stehen alle Endpunkte der Anfrage bereit. Die URLs über den --metricUrls-Parameter bieten ausschließlich den /metrics-Endpunkt an und sind standardmäßig über http://localhost:52325 verfügbar.

Der Endpoint /processes gibt eine Liste aller Prozesse zurück, auf die der dotnet-monitor Zugriff hat. Sollte dabei nur einer verfügbar sein, wie in folgendem Beispiel für den Einsatz über die PowerShell, darf der Parameter für die Prozess-ID bei den spezifischen Anfragen zu den einzelnen Prozessen entfallen:

PS> Invoke-RestMethod http://localhost:52323/processes

pid
---
1

/dump/{pid?} erzeugt einen Dump des Prozesses mit der angegeben ID. Die Analyse des Dumps ist nur auf Systemen möglich, auf denen dasselbe Betriebssystem läuft wie in der abgefragten .NET-Core-Umgebung. Der Dump des Garbage Collector ist über /gcdump/{pid?} verfügbar und im Gegensatz zum Prozess-Dump portabel, also nicht vom Betriebssystem des Zielsystems, abhängig.

Der /trace/{pid?}-Endpunkt erstellt standardmäßig ein Trace über die letzten 30 Sekunden. Sowohl die Länge als auch die Inhalte wie ein CPU Profiler lassen sich über Parameter anpassen. Dasselbe gilt für die Sammlung von Stream-Logs des Zielsystems über den /logs/{pid?} Endpoint.

/metrics erstellt einen Snapshot der Laufzeitumgebung und ASP.NET-Core-Metriken im Exposition Format des Open-Source-Monitoring-Tools Prometheus. Damit lässt es sich zum Sammeln von Metriken in einem Cluster unter anderem über Kubernetes verwenden. Für das Szenario bietet sich der Einsatz über den --metricUrls-Parameter an, um ausschließlich die Metriken bereitzustellen.

Der Blogbeitrag, der das Tool vorstellt, bezeichnet dotnet-monitor explizit als experimentell. Die Maintainer des Projekts bitten um Rückmeldung von Anwendern. Das Experiment soll bis zum Erscheinen von .NET 5 laufen, von dem Microsoft Anfang Juni die fünfte Preview veröffentlicht hat. Zu dem Zeitpunkt wollen die Entwickler das Projekt evaluieren und erwägen, was künftig damit geschehen soll. Der Quellcode und die Dokumentation finden sich auf GitHub.

(rme)