0Pricing
AWS Solutions Architect · درس

مقاييس CloudWatch ومساحات الأسماء والأبعاد

افهم مقاييس خدمات AWS المضمّنة، وانشر مقاييس مخصّصة من تطبيقك، وطبّق التصفية حسب الأبعاد للتعمّق في موارد محددة

مقاييس CloudWatch ومساحات الأسماء والأبعاد درس مجاني في AWS Solutions Architect على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AWS Solutions Architect، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

ما هو Amazon CloudWatch؟

Amazon CloudWatch هي خدمة AWS موحّدة للرصد، تجمع المقاييس والسجلات وآثار التتبع من موارد AWS وتطبيقاتكم. وتمنحكم صورة شاملة عن حالة البنية التحتية، مما يتيح لكم اكتشاف الحالات الشاذة وإعداد التنبيهات والاستجابة تلقائيًا للتغييرات التشغيلية. تتكامل CloudWatch بعمق مع معظم خدمات AWS تقريبًا، وهي أداة المراقبة الأساسية التي يختبرها امتحان SAA-C03.

فهم مقاييس CloudWatch

مقياس CloudWatch هو مجموعة مرتبة زمنيًا من نقاط البيانات تمثل قيمة جانب قابل للقياس من مورد ما بمرور الوقت، مثل CPUUtilization لمثيل EC2 يتم قياسه كل دقيقة. وتُعرَّف المقاييس من خلال مساحة الأسماء والاسم والأبعاد. تنشر AWS تلقائيًا مئات المقاييس المضمّنة، ويمكنكم نشر مقاييس مخصصة من التعليمات البرمجية لتطبيقكم أو من البرامج النصية.

مساحات الأسماء: تنظيم المقاييس

مساحة الأسماء هي حاوية لمقاييس CloudWatch تمنع تعارض الأسماء بين المقاييس القادمة من مصادر مختلفة. تستخدم خدمات AWS مساحات أسماء مثل AWS/EC2 وAWS/RDS وAWS/Lambda وAWS/S3. عند نشر مقاييس مخصصة، تختارون مساحة الأسماء الخاصة بكم، مثل MyApp/OrderService. وتكون المقاييس الموجودة في مساحات أسماء مختلفة معزولة تمامًا عن بعضها، حتى إن اشتركت في اسم المقياس نفسه.

# List all namespaces in your account
aws cloudwatch list-metrics \
  --query 'Metrics[].Namespace' \
  --output text | tr '\t' '\n' | sort -u

# List metrics in the AWS/EC2 namespace
aws cloudwatch list-metrics \
  --namespace AWS/EC2 \
  --query 'Metrics[].MetricName' \
  --output text | tr '\t' '\n' | sort -u

الأبعاد: تصفية المقاييس

الأبعاد هي أزواج مفتاح-قيمة تحدد المقياس بشكل فريد داخل مساحة الأسماء. فعلى سبيل المثال، في مساحة الأسماء AWS/EC2، يمكن تصفية CPUUtilization باستخدام البعد InstanceId=i-0123456789abcdef0 لعرض مثيل محدد، أو باستخدام AutoScalingGroupName=my-asg لعرض المقياس المجمع عبر مجموعة من المثيلات. يمكن أن يتضمن المقياس الواحد ما يصل إلى 30 بُعدًا، وتحدد AWS مسبقًا الأبعاد المتاحة لكل مقياس خدمة.

# Get CPU utilization for a specific EC2 instance
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z \
  --period 300 \
  --statistics Average

المراقبة القياسية مقابل المراقبة التفصيلية

تنشر خدمات AWS افتراضيًا المقاييس على فواصل مدتها 5 دقائق، أي ضمن المراقبة القياسية، إلى CloudWatch من دون رسوم إضافية. وبالنسبة إلى أعباء العمل الحساسة زمنيًا، يمكنكم تفعيل المراقبة التفصيلية للحصول على دقة مقدارها دقيقة واحدة. تتوفر المراقبة التفصيلية لـEC2 وAuto Scaling وELB وRDS وخدمات أخرى، وتترتب عليها رسوم إضافية من CloudWatch. تذكروا لامتحان SAA-C03 أن سياسات Auto Scaling التي تستخدم التحجيم التدريجي تعتمد على تنبيهات CloudWatch، وتعمل بصورة أفضل مع مقاييس مدتها دقيقة واحدة.

# Enable detailed (1-minute) monitoring for an EC2 instance
aws ec2 monitor-instances \
  --instance-ids i-0123456789abcdef0

# Verify monitoring state
aws ec2 describe-instance-status \
  --instance-ids i-0123456789abcdef0 \
  --query 'InstanceStatuses[].Monitoring'

نشر المقاييس المخصصة

يمكنكم إرسال مقاييس مخصصة إلى CloudWatch من أي تطبيق باستخدام واجهة برمجة التطبيقات put-metric-data أو CloudWatch Agent. ومن المقاييس المخصصة الشائعة مؤشرات الأداء الرئيسية للأعمال، مثل عدد الطلبات في الدقيقة، وزمن الاستجابة على مستوى التطبيق، وعمق قائمة الانتظار، ومعدلات الأخطاء. تُحتفظ بالمقاييس المخصصة لمدة 15 شهرًا بدرجات دقة مختلفة، وتُفرض رسوم على كل مقياس شهريًا. كما تتوفر المقاييس المخصصة عالية الدقة، بدقة مقدارها ثانية واحدة، مقابل تكلفة أعلى.

# Publish a custom metric from the CLI
aws cloudwatch put-metric-data \
  --namespace 'MyApp/OrderService' \
  --metric-name 'OrdersProcessedPerMinute' \
  --value 47 \
  --unit Count \
  --dimensions Environment=Production,Region=us-east-1

# Publish from application code (Python boto3)
# cloudwatch.put_metric_data(
#   Namespace='MyApp/OrderService',
#   MetricData=[{'MetricName': 'ErrorRate', 'Value': 0.5, 'Unit': 'Percent'}]
# )

CloudWatch Agent لمقاييس EC2

إن CloudWatch Agent هو وكيل برمجي تثبتونه على مثيلات EC2، وكذلك على الخوادم المحلية، لجمع المقاييس غير المتاحة عبر برنامج مراقبة EC2 المضمّن، مثل استخدام الذاكرة ومساحة القرص واتصالات الشبكة. ويجمع الوكيل السجلات أيضًا ويرسلها إلى CloudWatch Logs. ويُعد استخدام الذاكرة سيناريو شائعًا في الامتحان؛ فهو ليس مقياس EC2 افتراضيًا، ويجب جمعه باستخدام CloudWatch Agent.

# Install and start the CloudWatch Agent on Amazon Linux 2
sudo yum install -y amazon-cloudwatch-agent

# Use the wizard to generate a config
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

# Start the agent with the generated config
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
  -a fetch-config \
  -m ec2 \
  -s \
  -c ssm:/AmazonCloudWatch-linux

حسابات المقاييس واكتشاف الحالات الشاذة

تتيح حسابات المقاييس إنشاء سلاسل زمنية جديدة من خلال إجراء عمليات حسابية على مقاييس موجودة، من دون تخزين النتيجة كمقياس منفصل. فعلى سبيل المثال، يمكنكم حساب معدل الأخطاء باستخدام Errors / Requests * 100 مباشرةً في تعبير لوحة معلومات CloudWatch. ويطبّق اكتشاف الحالات الشاذة تعلّم الآلة على بيانات المقاييس التاريخية لإنشاء نطاقات للقيم المتوقعة، كما يمكنكم إنشاء تنبيهات تعمل عندما ينحرف المقياس خارج تلك النطاقات، حتى في حال عدم وجود حد ثابت.

# Get metric data using metric math
aws cloudwatch get-metric-data \
  --metric-data-queries '[
    {"Id":"e1","Expression":"m1/m2*100","Label":"ErrorRate%"},
    {"Id":"m1","MetricStat":{"Metric":{"Namespace":"MyApp","MetricName":"Errors"},"Period":60,"Stat":"Sum"}},
    {"Id":"m2","MetricStat":{"Metric":{"Namespace":"MyApp","MetricName":"Requests"},"Period":60,"Stat":"Sum"}}
  ]' \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z

فترات الاحتفاظ بالمقاييس

تخزن CloudWatch المقاييس لفترات احتفاظ متفاوتة بحسب دقتها: إذ تُحتفظ بنقاط البيانات ذات دقة الثانية الواحدة لمدة 3 ساعات، وبيانات الدقيقة الواحدة لمدة 15 يومًا، وبيانات الخمس دقائق لمدة 63 يومًا، وبيانات الساعة الواحدة لمدة 15 شهرًا. وتجمع CloudWatch تلقائيًا البيانات عالية الدقة في بيانات أقل دقة بمرور الوقت. وهذا يعني أنه إذا احتجتم إلى تحليل الاتجاهات طويلة الأجل، فسترون متوسطات مدتها ساعة واحدة، وليس القراءات الأصلية ذات الدقيقة الواحدة من الأشهر السابقة.

عرض المقاييس في وحدة تحكم CloudWatch

توفر وحدة تحكم CloudWatch أداتي Metrics Explorer وMetrics browser، حيث يمكنكم اختيار أي مجموعة من مساحة الأسماء والمقياس والأبعاد وعرض البيانات بصريًا بمرور الوقت. ويمكنكم وضع مقاييس متعددة فوق رسم بياني واحد، وتغيير فترات التجميع، وإضافتها إلى لوحات المعلومات. وللوصول البرمجي، تعيد واجهتا برمجة التطبيقات GetMetricStatistics وGetMetricData نقاط البيانات الأولية أو الإحصاءات المجمعة (Average وSum وMinimum وMaximum وSampleCount).

# Get average CPU for all instances in an ASG over the last hour
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=AutoScalingGroupName,Value=my-asg \
  --start-time $(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
  --period 300 \
  --statistics Average Maximum

مقاييس EC2 وRDS الأساسية

لامتحان SAA-C03، احفظوا هذه المقاييس المهمة: EC2 — CPUUtilization وNetworkIn/Out وDiskReadOps/WriteOps (لمخزن المثيل فقط)؛ غير المتاحة في EC2 افتراضيًا: الذاكرة ومساحة القرص (استخدموا CloudWatch Agent). RDS — DatabaseConnections وFreeStorageSpace وReadLatency وWriteLatency وReplicaLag. ELB — RequestCount وTargetResponseTime وUnHealthyHostCount. Lambda — Invocations وErrors وDuration وThrottles وConcurrentExecutions.

تحقق سريع

اختبروا مدى فهمكم لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.

مراجعة الدرس

تعلمتم في هذا الدرس أن مساحات الأسماء تنظّم المقاييس حسب الخدمة وتمنع تعارض الأسماء، وأن الأبعاد تصفّي المقاييس للوصول إلى موارد محددة، مثل مثيل EC2 واحد أو مجموعة Auto Scaling، وأن استخدام الذاكرة ليس مقياس EC2 افتراضيًا، بل تحتاجون إلى CloudWatch Agent لجمعه. بعد ذلك سنستكشف تنبيهات CloudWatch والتنبيهات المركبة لإجراء التنبيهات التلقائية.

الأسئلة الشائعة

هل درس «مقاييس CloudWatch ومساحات الأسماء والأبعاد» مجاني؟

نعم — نص درس «مقاييس CloudWatch ومساحات الأسماء والأبعاد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AWS Solutions Architect، انتقل إلى CoddyKit PRO. تتضمن دورة AWS Solutions Architect 4 دروس في المجموع.

ماذا ستتعلم في «مقاييس CloudWatch ومساحات الأسماء والأبعاد»؟

افهم مقاييس خدمات AWS المضمّنة، وانشر مقاييس مخصّصة من تطبيقك، وطبّق التصفية حسب الأبعاد للتعمّق في موارد محددة تتمرن على AWS Solutions Architect مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ AWS Solutions Architect؟

لا تُشترط خبرة سابقة. AWS Solutions Architect على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «مقاييس CloudWatch ومساحات الأسماء والأبعاد»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس AWS Solutions Architect هذا؟

نعم. كل درس في AWS Solutions Architect يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقاييس CloudWatch ومساحات الأسماء والأبعاد
  2. إنذارات CloudWatch والإنذارات المركّبة
  3. سجلات CloudWatch وLog Insights
  4. لوحات معلومات CloudWatch وContainer Insights
← العودة إلى AWS Solutions Architect