جزء من سلسلة Performance & Scalability
اقرأ الدليل الكاملمراقبة الإنتاج والتنبيه: دليل الإعداد الكامل
يكلف متوسط حادث الإنتاج 5,600 دولار لكل دقيقة من وقت التوقف عن العمل. تكتشف الشركات التي تتمتع بمراقبة ناضجة المشكلات في أقل من 5 دقائق، في حين أن الشركات التي لا تتمتع بالمراقبة تستغرق في المتوسط 197 دقيقة للكشف --- وهو الفرق بين خطأ بسيط وكارثة خسارة العميل.
يغطي هذا الدليل إعداد مراقبة الإنتاج الشامل: ما يجب قياسه، وكيفية جمعه، ومكان تصوره، ومتى يتم التنبيه.
الوجبات الرئيسية
- تخدم الركائز الثلاث لقابلية الملاحظة (المقاييس والسجلات والآثار) أغراضًا مختلفة وجميعها ضرورية
- التنبيه على الأعراض (معدل الخطأ، الكمون) وليس الأسباب (استخدام وحدة المعالجة المركزية) لتقليل الضوضاء بنسبة 80%
- تضمن سجلات التشغيل المرفقة بكل تنبيه الاستجابة المتسقة للحوادث بغض النظر عن الشخص المتصل
- ابدأ بـ 5 تنبيهات أساسية وقم بالتوسيع فقط عندما تفهم خط الأساس
الركائز الثلاث لقابلية الملاحظة
المقاييس
القياسات الرقمية أخذ عينات مع مرور الوقت. تجيب المقاييس على "ما الذي يحدث الآن؟"
مقاييس التطبيق:
- معدل الطلب (الطلبات في الثانية)
- معدل الخطأ (ردود 5xx في الثانية)
- توزيع الكمون (P50، P95، P99)
- الجلسات النشطة / المستخدمين المتزامنين
مقاييس البنية التحتية:
- استخدام وحدة المعالجة المركزية لكل خدمة
- استخدام الذاكرة وجمع القمامة
- القرص الإدخال / الإخراج والمساحة المتوفرة
- سرعة نقل الشبكة
مقاييس الأعمال:
- أوامر في الدقيقة
- معدل التخلي عن سلة التسوق
- الإيرادات في الساعة
- مكالمات API عن طريق نقطة النهاية
السجلات
سجلات زمنية منظمة للأحداث المنفصلة. تجيب السجلات "لماذا حدث ذلك؟"
{
"timestamp": "2026-03-16T14:32:01.234Z",
"level": "error",
"service": "api",
"requestId": "req_abc123",
"userId": "usr_456",
"message": "Payment processing failed",
"error": "Stripe API timeout after 30000ms",
"endpoint": "POST /billing/checkout",
"duration": 30142
}
تسجيل أفضل الممارسات:
- استخدم تسجيل JSON المنظم، وليس النص العادي
- تضمين معرفات الارتباط (
requestId) عبر الخدمات - سجل بالمستويات المناسبة (خطأ في حالات الفشل، تحذير من التدهور، معلومات عن الأحداث الرئيسية)
- لا تقم مطلقًا بتسجيل البيانات الحساسة (كلمات المرور والرموز المميزة وأرقام بطاقات الائتمان الكاملة)
آثار
مسارات الطلب الشاملة من خلال الأنظمة الموزعة. آثار الإجابة "أين هو عنق الزجاجة؟"
قد يلمس طلب مستخدم واحد إلى الخروج من التجارة الإلكترونية ما يلي:
- Nginx (2 مللي ثانية) إلى الواجهة الأمامية Next.js (50 مللي ثانية) إلى NestJS API (120 مللي ثانية) إلى PostgreSQL (45 مللي ثانية) إلى Stripe API (800 مللي ثانية) إلى خدمة البريد الإلكتروني (200 مللي ثانية)
وبدون التتبع، ستشاهد عبارة "يستغرق الخروج 1.2 ثانية". من خلال التتبع، ستشاهد "حسابات Stripe API لـ 67% من زمن الوصول للدفع."
مراقبة إعداد المكدس
بروميثيوس + جرافانا (استضافة ذاتية)
# docker-compose.monitoring.yml
services:
prometheus:
image: prom/prometheus:v2.50.0
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
ports:
- "9090:9090"
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.retention.time=30d'
- '--web.enable-lifecycle'
grafana:
image: grafana/grafana:10.3.0
volumes:
- grafana-data:/var/lib/grafana
ports:
- "3030:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
- GF_USERS_ALLOW_SIGN_UP=false
loki:
image: grafana/loki:2.9.0
volumes:
- loki-data:/loki
ports:
- "3100:3100"
alertmanager:
image: prom/alertmanager:v0.27.0
volumes:
- ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
ports:
- "9093:9093"
volumes:
prometheus-data:
grafana-data:
loki-data:
تكوين بروميثيوس
# prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
- "alerts/*.yml"
alerting:
alertmanagers:
- static_configs:
- targets: ["alertmanager:9093"]
scrape_configs:
- job_name: "api"
metrics_path: /metrics
static_configs:
- targets: ["api:3001"]
- job_name: "node-exporter"
static_configs:
- targets: ["node-exporter:9100"]
- job_name: "postgres"
static_configs:
- targets: ["postgres-exporter:9187"]
- job_name: "redis"
static_configs:
- targets: ["redis-exporter:9121"]
مقاييس تطبيق NestJS
الكشف عن مقاييس بروميثيوس
// metrics.module.ts
import { Module } from '@nestjs/common';
import { PrometheusModule } from '@willsoto/nestjs-prometheus';
import {
makeCounterProvider,
makeHistogramProvider,
makeGaugeProvider,
} from '@willsoto/nestjs-prometheus';
@Module({
imports: [
PrometheusModule.register({
path: '/metrics',
defaultMetrics: { enabled: true },
}),
],
providers: [
makeCounterProvider({
name: 'http_requests_total',
help: 'Total HTTP requests',
labelNames: ['method', 'path', 'status'],
}),
makeHistogramProvider({
name: 'http_request_duration_seconds',
help: 'HTTP request duration in seconds',
labelNames: ['method', 'path'],
buckets: [0.01, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10],
}),
makeGaugeProvider({
name: 'active_connections',
help: 'Number of active connections',
}),
],
exports: [PrometheusModule],
})
export class MetricsModule {}
تكوين التنبيه
التنبيهات الخمسة الأساسية
يحتاج كل نظام إنتاج إلى هذه التنبيهات منذ اليوم الأول:
# alerts/essential.yml
groups:
- name: essential
rules:
- alert: ServiceDown
expr: up == 0
for: 1m
labels:
severity: critical
annotations:
summary: "Service {{ $labels.job }} is down"
runbook: "https://wiki.example.com/runbooks/service-down"
- alert: HighErrorRate
expr: |
rate(http_requests_total{status=~"5.."}[5m])
/ rate(http_requests_total[5m]) > 0.01
for: 5m
labels:
severity: critical
annotations:
summary: "Error rate above 1% for 5 minutes"
runbook: "https://wiki.example.com/runbooks/high-error-rate"
- alert: HighLatency
expr: |
histogram_quantile(0.95,
rate(http_request_duration_seconds_bucket[5m])
) > 2
for: 5m
labels:
severity: warning
annotations:
summary: "P95 latency above 2 seconds"
- alert: DiskSpaceLow
expr: |
node_filesystem_avail_bytes{mountpoint="/"}
/ node_filesystem_size_bytes{mountpoint="/"} < 0.2
for: 10m
labels:
severity: warning
annotations:
summary: "Disk space below 20% on {{ $labels.instance }}"
- alert: SSLCertExpiringSoon
expr: |
probe_ssl_earliest_cert_expiry - time() < 14 * 24 * 3600
labels:
severity: warning
annotations:
summary: "SSL certificate expires within 14 days"
توجيه التنبيه
# alertmanager.yml
global:
slack_api_url: "${SLACK_WEBHOOK_URL}"
route:
group_by: ['alertname', 'severity']
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
receiver: 'default'
routes:
- match:
severity: critical
receiver: 'pagerduty'
repeat_interval: 15m
- match:
severity: warning
receiver: 'slack'
receivers:
- name: 'default'
slack_configs:
- channel: '#alerts'
title: '{{ .GroupLabels.alertname }}'
text: '{{ .CommonAnnotations.summary }}'
- name: 'pagerduty'
pagerduty_configs:
- routing_key: "${PAGERDUTY_KEY}"
severity: '{{ .GroupLabels.severity }}'
- name: 'slack'
slack_configs:
- channel: '#alerts-warnings'
title: '{{ .GroupLabels.alertname }}'
قواعد جودة التنبيه
| ممارسة | لماذا |
|---|---|
| التنبيه على الأعراض وليس الأسباب | "معدل الخطأ مرتفع" قابل للتنفيذ؛ "وحدة المعالجة المركزية عند 80%" قد لا تكون |
| كل تنبيه له دليل تشغيل | لا ينبغي للمهندسين تحت الطلب أن يفكروا في الساعة 3 صباحًا |
| يجب أن تكون التنبيهات قابلة للتنفيذ | إذا لم يتمكن أحد من التصرف بناءً على ذلك، فهذا ضجيج وليس تنبيهًا |
| ضبط العتبات بعد أسبوعين | العتبات الأولية هي التخمينات. ضبط على أساس خطوط الأساس |
| مراجعة تنبيه التعب شهريا | إذا تم إطلاق التنبيهات يوميًا دون اتخاذ إجراء، فارفع الحدود أو قم بإزالتها |
لوحات معلومات جرافانا
التسلسل الهرمي للوحة المعلومات
- لوحة معلومات عامة: صحة عالية المستوى في جميع الخدمات. هذه هي الشاشة الأولى التي ينظر إليها أي شخص أثناء وقوع حادث ما.
- لوحات معلومات الخدمة: مقاييس تفصيلية لكل خدمة (واجهة برمجة التطبيقات، الويب، العاملين).
- لوحات معلومات البنية التحتية: مقاييس على مستوى العقدة (وحدة المعالجة المركزية، الذاكرة، القرص، الشبكة).
- لوحات معلومات الأعمال: الإيرادات، الطلبات، نشاط المستخدم.
الطريقة الحمراء للوحات معلومات الخدمة
لكل خدمة، قم بعرض:
- Rate: الطلبات في الثانية
- E الأخطاء: معدل الخطأ كنسبة مئوية
- المدة: توزيع زمن الوصول (P50، P95، P99)
وهذا يوفر رؤية فورية لسلامة الخدمة دون التحميل الزائد المعرفي.
تتبع الأخطاء باستخدام Sentry
// sentry.config.ts
import * as Sentry from '@sentry/nestjs';
Sentry.init({
dsn: process.env.SENTRY_DSN,
environment: process.env.NODE_ENV,
tracesSampleRate: 0.1,
profilesSampleRate: 0.1,
integrations: [
Sentry.postgresIntegration(),
],
beforeSend(event) {
// Strip sensitive data
if (event.request?.headers) {
delete event.request.headers['authorization'];
delete event.request.headers['cookie'];
}
return event;
},
});
سنتري يوفر:
- تجميع الأخطاء تلقائيًا وإلغاء البيانات المكررة
- آثار المكدس مع خرائط المصدر
- تتبع الإصدار (الذي أدى إلى نشر الخطأ)
- مراقبة الأداء (تتبع المعاملات)
الأسئلة المتداولة
ما هي تكلفة مكدس المراقبة؟
الاستضافة الذاتية (Prometheus + Grafana + Loki): حوالي 50-100 دولار شهريًا لموارد الاستضافة. البدائل المُدارة: يبدأ سعر Datadog بـ 15 دولارًا أمريكيًا للمضيف شهريًا للبنية التحتية، بالإضافة إلى 0.10 دولارًا أمريكيًا للجيجابايت للسجلات. تبلغ تكلفة Sentry Cloud 26 دولارًا شهريًا لخطة الفريق. تتراوح الميزانية المبدئية المعقولة للأعمال التجارية الصغيرة بين 100 و200 دولار شهريًا.
ما الفرق بين المراقبة وإمكانية الملاحظة؟
يخبرك الرصد عندما يكون هناك خطأ ما. القدرة على الملاحظة تخبرك بالسبب. تتعلق المراقبة بلوحات المعلومات والتنبيهات المحددة مسبقًا لأنماط الفشل المعروفة. تتعلق إمكانية الملاحظة بالقدرة على طرح أسئلة عشوائية حول سلوك نظامك باستخدام المقاييس والسجلات والتتبعات. أنت بحاجة إلى كليهما، لكن المراقبة هي الأساس.
كيف نتجنب إرهاق التنبيه؟
ثلاث قواعد: (1) يجب أن يتطلب كل تنبيه إجراءً بشريًا، (2) تحديد الحدود بناءً على خطوط الأساس الفعلية وليس المُثُل النظرية، (3) مراجعة التنبيهات وضبطها شهريًا. إذا تم إطلاق التنبيه أكثر من مرة واحدة في الأسبوع دون الحاجة إلى اتخاذ إجراء، فقم إما بإصلاح المشكلة الأساسية أو رفع الحد. الفرق التي تعاني من إرهاق التنبيه تتجاهل جميع التنبيهات، بما في ذلك التنبيهات الحرجة.
هل يجب علينا مراقبة نظام تخطيط موارد المؤسسات لدينا بشكل مختلف؟
تتمتع أنظمة تخطيط موارد المؤسسات (ERP) بمتطلبات مراقبة فريدة. بالإضافة إلى مقاييس الويب القياسية، قم بمراقبة: استخدام مجمع اتصال قاعدة البيانات، وعمق قائمة انتظار المهام في الخلفية، وحالة مزامنة التكامل (Shopify، وبوابات الدفع)، ووقت تنفيذ التقرير المجدول، وعدد جلسات المستخدم حسب الوحدة. توفر ECOSIRE مراقبة Odoo المُدارة كجزء من حزم الدعم الخاصة بنا.
ما يأتي بعد ذلك
المراقبة هي أعين وآذان البنية التحتية للإنتاج لديك. قم بإقرانه مع أتمتة CI/CD للحصول على ثقة النشر والتخطيط للتعافي من الكوارث من أجل المرونة. للحصول على خريطة طريق DevOps شاملة، راجع دليل DevOps للشركات الصغيرة.
اتصل بـ ECOSIRE لمراقبة الإعداد وخدمات البنية التحتية المُدارة.
تم النشر بواسطة ECOSIRE - لمساعدة الشركات على معرفة ما يهم في الإنتاج.
بقلم
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
قم بتنمية أعمالك مع ECOSIRE
حلول المؤسسات عبر تخطيط موارد المؤسسات (ERP) والتجارة الإلكترونية والذكاء الاصطناعي والتحليلات والأتمتة.
مقالات ذات صلة
تصحيح أخطاء Webhook ومراقبتها: الدليل الكامل لاستكشاف الأخطاء وإصلاحها
أتقن تصحيح أخطاء خطاف الويب باستخدام هذا الدليل الكامل الذي يغطي أنماط الفشل وأدوات تصحيح الأخطاء وإستراتيجيات إعادة المحاولة ومراقبة لوحات المعلومات وأفضل ممارسات الأمان.
إجراءات GitHub CI/CD لمشاريع Monorepo
دليل GitHub Actions CI/CD الكامل لـ Turborepo monorepos: الإصدارات المتأثرة فقط، والوظائف الموازية، واستراتيجيات التخزين المؤقت، وعمليات النشر القائمة على البيئة، وأفضل الممارسات الأمنية.
اختبار ومراقبة وكلاء الذكاء الاصطناعي في الإنتاج
دليل كامل لاختبار ومراقبة عوامل الذكاء الاصطناعي في بيئات الإنتاج. يغطي أطر التقييم، وإمكانية الملاحظة، والكشف عن الانجراف، والاستجابة للحوادث لعمليات نشر OpenClaw.
المزيد من Performance & Scalability
تصحيح أخطاء Webhook ومراقبتها: الدليل الكامل لاستكشاف الأخطاء وإصلاحها
أتقن تصحيح أخطاء خطاف الويب باستخدام هذا الدليل الكامل الذي يغطي أنماط الفشل وأدوات تصحيح الأخطاء وإستراتيجيات إعادة المحاولة ومراقبة لوحات المعلومات وأفضل ممارسات الأمان.
اختبار التحميل k6: اختبار الضغط على واجهات برمجة التطبيقات الخاصة بك قبل الإطلاق
اختبار التحميل الرئيسي لـ k6 لواجهات برمجة تطبيقات Node.js. يغطي عمليات تكثيف المستخدم الافتراضي، والعتبات، والسيناريوهات، وHTTP/2، واختبار WebSocket، ولوحات معلومات Grafana، وأنماط تكامل CI.
تكوين إنتاج Nginx: SSL والتخزين المؤقت والأمان
دليل تكوين إنتاج Nginx: إنهاء SSL، HTTP/2، رؤوس التخزين المؤقت، رؤوس الأمان، تحديد المعدل، إعداد الوكيل العكسي، وأنماط تكامل Cloudflare.
ضبط أداء Odoo: تحسين PostgreSQL والخادم
دليل الخبراء لضبط أداء Odoo 19. يغطي تكوين PostgreSQL، والفهرسة، وتحسين الاستعلام، والتخزين المؤقت لـ Nginx، وحجم الخادم لعمليات النشر المؤسسية.
Odoo vs Acumatica: Cloud ERP للشركات المتنامية
مقارنة بين Odoo وAcumatica لعام 2026: نماذج تسعير فريدة، وقابلية التوسع، وعمق التصنيع، وأي نظام تخطيط موارد المؤسسات (ERP) السحابي يناسب مسار النمو الخاص بك.
اختبار ومراقبة وكلاء الذكاء الاصطناعي في الإنتاج
دليل كامل لاختبار ومراقبة عوامل الذكاء الاصطناعي في بيئات الإنتاج. يغطي أطر التقييم، وإمكانية الملاحظة، والكشف عن الانجراف، والاستجابة للحوادث لعمليات نشر OpenClaw.