Node.js-Module: appmetrics

appmetrics: Profiling und Monitoring von Node.js-Applikationen
Kommentare

Das Repository des Node Package Managers enthält nicht nur zahlreiche hilfreiche Bibliotheken und Frameworks für Node.js, sondern auch Werkzeuge, die die Entwicklung und den Betrieb von Node.js-Applikationen erleichtern. Solche Applikationen werden meist auf der Kommandozeile ausgeführt und fließen auch nicht in den Quellcode der eigentlichen Applikation mit ein. Bekannte Vertreter dieser Kategorie von Hilfsmitteln sind PM2, nodemon oder forever. In diese Gruppe reiht sich außerdem ein Werkzeug mit dem Namen appmetrics ein.

appmetrics wird zum Monitoring und Profiling von Node.js-Applikationen verwendet. Das Paket sammelt die wichtigsten Rahmendaten Ihrer Applikation und ermöglicht deren Auswertung. So können Sie beispielsweise die CPU- und Memory-Statistiken aufzeichnen, aber auch auf tiefergehende Informationen wie Garbage Collector oder Event Loop zugreifen. Neben diesen sehr system- und plattformnahen Informationen erhalten Sie außerdem wertvolle Informationen über Schnittstellen wie beispielsweise den Netzwerktraffic über HTTP- oder Datenbankverbindungen.

Installation

Sie können appmetrics sowohl lokal als auch global auf Ihrem System installieren. Die lokale Installation hat dabei den Vorteil, dass Sie parallel mehrere unterschiedliche Versionen der Applikation auf Ihrem System ausführen können, ohne dass diese sich gegenseitig beeinflussen. Bei einer lokalen Installation sollten Sie die Option –save-dev oder -D verwenden, um die Abhängigkeit inklusive Versionsnummer als Developer Dependency festzuhalten.

Damit Sie appmetrics verwenden können, müssen Sie Ihre Applikation mit appmetrics starten. Ist also der Einstiegspunkt in Ihre Applikation die Datei index.js, starten Sie Ihre Applikation mit node-hc index.js statt wie bisher mit node index.js. Haben Sie appmetrics global installiert, können Sie node-hc als normales Kommandozeilenwerkzeug verwenden. Bei einer lokalen Installation finden Sie das ausführbare Script im Verzeichnis node_modules/.bin.

Go for PHP Developers

mit Terrence Ryan (google)

Everything you need to know about PHP 7.2

mit Sebastian Bergmann (thePHP.cc)

Konfiguration

Die Konfiguration von appmetrics findet über die Datei appmetrics.properties statt. Sie liegt normalerweise im Wurzelverzeichnis Ihrer Applikation, kann aber auch in dem Verzeichnis liegen, von dem aus Sie Ihre Applikation starten. Wird das Programm an beiden Orten nicht fündig, wird im Installationsverzeichnis von appmetrics, also node_modules/appmetrics, nach dieser Datei gesucht. Hier befindet sich eine Standardkonfiguration, die bei der Installation des Pakets mit ausgeliefert wird.

In dieser Datei können Sie zum Beispiel die Kommunikation mit einem MQTT-Broker konfigurieren. MQTT ist das Kommunikationsprotokoll, das appmetrics zum Versand der Monitoringinformationen verwendet. Es wurde von IBM für die Machine-to-Machine-Kommunikation entwickelt.

Integration in Ihre Applikation

Haben Sie appmetrics lokal installiert, können Sie das Werkzeug auch direkt in Ihrem Quellcode zum Monitoring verwenden. Das Werkzeug verfügt hierfür über eine Reihe von Methoden und Events, mit deren Hilfe Sie verschiedene Aspekte Ihrer Applikation aufzeichnen können.

const appmetrics = require('appmetrics');


var monitoring = appmetrics.monitor();


const http = require('http');


monitoring.on('memory', (data) => console.log(data));


const server = http.createServer((req, res) => {

   res.end('Hello Client');

});


server.listen(8080);

Listing 1 zeigt, wie Sie das Monitoringfeature in Ihre Applikation einbinden können. In bestimmten Zeitintervallen wird das memory-Event ausgelöst. Innerhalb der Event-Handler-Funktion haben Sie dann Zugriff auf verschiedene Speicherstatistiken. Ähnliche Informationen erhalten Sie auch zur CPU, dem Garbage Collector, dem Event Loop und zum V8-Profiling.

Anzeige der Informationen

Führen Sie Ihre Applikation mit appmetrics aus, erhalten Sie auf der Kommandozeile lediglich eine Information über die Versionsnummer und dass sich die Applikation mit einem MQTT Broker verbindet. Um diese Informationen nun anzuzeigen, können Sie entweder einen MQTT Broker installieren und den Health-Center-Client von Eclipse verwenden oder Sie nutzen appmetrics-dash –ein grafisches Dashboard, das Sie direkt in Ihre Applikation integrieren können.

Dabei handelt es sich um ein in Node.js geschriebenes Dashboard, das zur Anzeige der appmetrics-Werte verwendet werden kann. Zunächst müssen Sie das Paket mit dem Kommando npm install –save appmetrics-dash installieren. Danach können Sie es in Ihre Applikation integrieren. Listing 2 zeigt ein Beispiel zur Einbindung in eine Express-Applikation.

const express = require('express');


const dash = require('appmetrics-dash').monitor();


const app = express();


app.use(express.static(__dirname + '/public'));


app.listen(8080);

appmetrics-dash bindet einen Webserver an Port 3001, der für die Darstellung des Dashboards zuständig ist. Über den URL http://localhost:3001/appmetrics-dash können Sie das Dashboard einsehen (Abb. 1).

Abb. 1: Das appmetrics-Dashboard

Fazit

Mit appmetrics haben Sie eine komfortable Möglichkeit, einige Performancemetriken Ihrer Applikation in regelmäßigen Intervallen aufzuzeichnen. Nutzen Sie das hc-node-Kommando für die Ausführung Ihrer Applikation, greifen Sie beim Monitoring nicht in den Quellcode Ihrer Applikation ein. Natürlich hat das Monitoring auch seine Schattenseiten. Die Entwickler geben den CPU-Overhead, der durch das Monitoring verursacht wird, mit einer Steigerung von 0,5 Prozent an. Hinzu kommt ein zusätzlicher Speicherverbrauch von rund 20 MB, wobei es sich hierbei um durchaus verschmerzbare Mehraufwände handelt.

PHP Magazin

Entwickler MagazinDieser Artikel ist im PHP Magazin erschienen. Das PHP Magazin deckt ein breites Spektrum an Themen ab, die für die erfolgreiche Webentwicklung unerlässlich sind.

Natürlich können Sie das PHP Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -