ما هو Appmetrics؟
Appmetrics هي مكتبة خفيفة لمراقبة أداء التطبيقات بلغة TypeScript و JavaScript. توفر للمطورين مقاييس جاهزة: وقت الاستجابة، تحميل CPU، استخدام الذاكرة، عدد الطلبات النشطة، وسرعة عمل قاعدة البيانات. لا تتطلب المكتبة بنية تحتية معقدة ويمكن دمجها في Express أو Nest.js أو Node.js الخالص.
لماذا نحتاج إلى مراقبة تطبيقات TypeScript؟
تطبيقات TypeScript غالبًا ما تعمل على جانب الخادم (Node.js) أو في أنظمة الواجهة الأمامية المعقدة. بدون مراقبة، قد تخاطر بفقدان تسرب الذاكرة، أو نقاط النهاية البطيئة، أو انخفاض مفاجئ في الأداء. يساعدك Appmetrics على:
- تتبع وقت تنفيذ الطلبات الفعلي
- اكتشاف الاختناقات في الكود
- تسجيل المقاييس تلقائيًا في Prometheus أو Grafana
- تلقي التنبيهات عند حدوث حالات شاذة
التثبيت
قم بتثبيت المكتبة عبر npm أو yarn:
npm install @appmetrics/typescript-metricsللتكامل مع Express، قم بتثبيت إضافي:
npm install @appmetrics/express-middlewareالوظائف الرئيسية
- جمع مقاييس CPU والذاكرة — جمع تلقائي في الوقت الفعلي.
- مقاييس طلبات HTTP — وقت الاستجابة، رموز الحالة، عدد الطلبات.
- التكامل مع الأنظمة الشائعة — Prometheus، Grafana، Datadog.
- المقاييس المخصصة — إمكانية إضافة عدادات ورسوم بيانية خاصة بك.
- الكتابة (Typing) — دعم كامل لـ TypeScript مع الإكمال التلقائي.
مثال كود بلغة TypeScript
import { MetricsCollector } from '@appmetrics/typescript-metrics';import express from 'express';
const app = express();const metrics = new MetricsCollector({ appName: 'my-app' });
// Middleware لجمع مقاييس الطلباتapp.use((req, res, next) => { const end = metrics.startTimer('http_request'); res.on('finish', () => { end({ method: req.method, status: res.statusCode }); metrics.incrementCounter('http_requests_total'); }); next();});
app.get('/api/users', (req, res) => { res.json({ users: [] });});
// نقطة نهاية لتصدير المقاييس بتنسيق Prometheusapp.get('/metrics', async (req, res) => { const data = await metrics.exportPrometheus(); res.set('Content-Type', 'text/plain'); res.send(data);});
app.listen(3000, () => console.log('Server started'));متى تستخدم Appmetrics؟
- خوادم الإنتاج — للمراقبة المستمرة لصحة التطبيق.
- بنية الخدمات المصغرة — لمراقبة كل خدمة على حدة.
- اختبارات التحميل — لجمع المقاييس أثناء اختبارات الإجهاد.
- التصحيح — للبحث عن تسرب الذاكرة أو الوظائف البطيئة.
المكتبة مناسبة لكل من المشاريع الصغيرة والأنظمة المؤسسية التي تتعامل مع آلاف الطلبات في الثانية.