drop-in node.js admin endpoint لمساعدتك في تحليل مشكلات الإنتاج.
العرض التوضيحي الحية | الاستخدام | الأسئلة الشائعة | الإضافات | مثال مشروع | Changelog
يمكن أن يكون تشغيل التطبيقات في الإنتاج أمرًا صعبًا. قد تعطل الطلبات أو تصطدم بخلل أو تصبح بطيئة. هناك مجموعة متنوعة من الطرق للتعامل مع مثل هذه القضايا. المسؤول هو أداة للمساعدة في استكشاف مشاكل التطبيق. تم تصميمه لتوفير معلومات تصحيح مفصلة حول تشغيل تطبيقات Node.js.
يوفر المسؤول نقاط نهاية التصحيح عبر خادم HTTP. الوظيفة التي يوفرها هذا الخادم قابلة للتمديد لأن المسؤول هو نظام إضافي.
بدلاً من وصف ذلك بإسهاب ، تحقق من نظام العرض التجريبي المباشر على Heroku!
لاستخدام المسؤول ، يجب تثبيت حزمة Node.js 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
لاستخدام المسؤول ، يجب تكوينه وبدء تشغيله مع التطبيق الخاص بك. تُظهر قائمة الكود العاشق كيف يمكن القيام بذلك.
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"