Titik akhir drop-in node.js admin untuk membantu Anda menganalisis masalah produksi.
Demo langsung | Penggunaan | FAQ | Plugin | Contoh Proyek | Changelog
Menjalankan aplikasi dalam produksi bisa jadi menantang. Aplikasi mungkin macet, mengalami bug atau menjadi lambat. Ada berbagai cara untuk mendekati masalah seperti itu. Admin adalah alat untuk membantu memecahkan masalah aplikasi. Ini dirancang untuk memberikan informasi debugging terperinci tentang menjalankan aplikasi Node.js.
Admin menyediakan titik akhir debugging melalui server HTTP. Fungsionalitas yang disediakan oleh server ini dapat diperluas karena admin adalah sistem plugin.
Alih -alih menggambarkan ini panjang lebar, lihat sistem demo langsung di Heroku!
Untuk menggunakan admin, paket admin node.js dan setidaknya satu plugin perlu diinstal. Contoh berikut menunjukkan pengaturan yang khas.
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
Untuk menggunakan admin, perlu dikonfigurasi dan dimulai dengan aplikasi Anda. Daftar kode yang terus -menerus menunjukkan bagaimana hal ini dapat dilakukan.
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 ( ) ;
Solusi termudah adalah mengatur terowongan SSH ke mesin:
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"