Drop-in Node.js admin-Endpunkt, mit dem Sie Produktionsprobleme analysieren können.
Live -Demo | Verwendung | FAQ | Plugins | Beispielprojekt | Changelog
Das Ausführen von Apps in der Produktion kann eine Herausforderung sein. Anwendungen können zum Absturz kommen, in Fehler stoßen oder langsam werden. Es gibt eine Vielzahl von Möglichkeiten, sich solchen Themen zu nähern. Admin ist ein Tool, um Probleme mit der Fehlerbehebung zu unterstützen. Es ist so konzipiert, dass es detaillierte Debugging -Informationen über das Ausführen von node.js -Apps liefert.
Der Administrator bietet Debugging -Endpunkte über einen HTTP -Server. Die von diesem Server bereitgestellte Funktionalität ist erweiterbar, da Administrator ein Plugin -System ist.
Anstatt dies ausführlich zu beschreiben, sehen Sie sich das Live -Demo -System auf Heroku an!
Um Admin zu verwenden, muss das Administratorknoten.js -Paket und mindestens ein Plugin installiert werden. Das folgende Beispiel zeigt ein typisches Setup.
npm install --save admin
admin-plugin-config
admin-plugin-healthcheck
admin-plugin-environment
admin-plugin-index
admin-plugin-profile
admin-plugin-report
admin-plugin-terminate
Um den Administrator zu verwenden, muss es konfiguriert und mit Ihrer Anwendung gestartet werden. Die Listing -Code -Auflistung zeigt, wie dies getan werden kann.
const admin = require ( 'admin' ) ;
admin . configure ( {
http : { // optional
bindAddress : '127.0.0.1' , // default
port : 2999 // default
} ,
plugins : [
require ( 'admin-plugin-index' ) ( ) ,
require ( 'admin-plugin-report' ) ( ) ,
require ( 'admin-plugin-environment' ) ( ) ,
require ( 'admin-plugin-profile' ) ( ) ,
require ( 'admin-plugin-terminate' ) ( ) ,
require ( 'admin-plugin-config' ) ( {
config : {
// An application config goes here. This config object will be
// visible in the admin UI and via the admin REST endpoints.
secret : '42' ,
port : 8080
}
} ) ,
require ( 'admin-plugin-healthcheck' ) ( {
checks : {
// Define multiple healthchecks which check critical components
// in the system. The following example shows valid return values.
random ( ) {
const v = Math . random ( ) ;
if ( v > 0.8 ) {
throw new Error ( 'Random value >0.8' ) ;
} else if ( v > 0.3 ) {
return "Healthy like an application that isn't used." ;
} else {
return Promise . reject ( 'Something bad happened here…' ) ;
}
}
}
} )
]
} ) ;
admin . start ( ) ;
Die einfachste Lösung besteht darin, einen SSH -Tunnel auf die Maschine einzurichten:
SSH_KEY="~/.ssh/<my_key>"
REMOTE_USER="<user>"
REMOTE_HOST="<host>"
ADMIN_PORT="<port>"
ssh -i "$SSH_KEY" -Nf -L "$ADMIN_PORT:localhost:$ADMIN_PORT" "$REMOTE_USER@$REMOTE_HOST"
curl "localhost:$ADMIN_PORT"