drop-in node.js ผู้ดูแลระบบปลายทางเพื่อช่วยคุณวิเคราะห์ปัญหาการผลิต
การสาธิตสด การใช้งาน คำถามที่พบบ่อย ปลั๊กอิน ตัวอย่างโครงการ | การเปลี่ยนแปลง
แอพที่ใช้งานอยู่ในการผลิตอาจเป็นเรื่องที่ท้าทาย แอปพลิเคชันอาจขัดข้องวิ่งเข้าไปในข้อบกพร่องหรือช้า มีหลายวิธีในการแก้ไขปัญหาดังกล่าว ผู้ดูแลระบบ เป็นเครื่องมือในการช่วยแก้ไขปัญหาแอปพลิเคชัน มันถูกออกแบบมาเพื่อให้ข้อมูลการดีบักอย่างละเอียดเกี่ยวกับการเรียกใช้แอพ Node.js
ผู้ดูแลระบบให้จุดสิ้นสุดการดีบักผ่านเซิร์ฟเวอร์ HTTP ฟังก์ชั่นที่จัดทำโดยเซิร์ฟเวอร์นี้สามารถขยายได้เนื่องจากผู้ดูแลระบบเป็นระบบปลั๊กอิน
แทนที่จะอธิบายสิ่งนี้ในระยะยาวลองดูระบบสาธิตสดใน Heroku!
ในการใช้ Admin ต้องติดตั้งแพ็คเกจ admin node.js และปลั๊กอินอย่างน้อยหนึ่งตัว ตัวอย่างต่อไปนี้แสดงการตั้งค่าทั่วไป
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
ในการใช้ผู้ดูแลระบบจะต้องมีการกำหนดค่าและเริ่มต้นด้วยแอปพลิเคชันของคุณ รายการรหัส Folowing แสดงให้เห็นว่าสิ่งนี้สามารถทำได้อย่างไร
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 ( ) ;
ทางออกที่ง่ายที่สุดคือการตั้งค่าอุโมงค์ SSH ไปที่เครื่อง:
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"