تخطَّ إلى المحتوى

Metrics و Logs و Traces

Observability ليست أداة واحدة

Section titled “Observability ليست أداة واحدة”

Observability تعني القدرة على فهم حالة النظام من خارجه. غالبا تعتمد على 3 إشارات:

الإشارةتجيب على
Metricsكم؟ CPU، Memory، latency، request count
Logsماذا حدث؟ رسائل التطبيق والأخطاء
Tracesأين قضى الطلب وقته بين الخدمات؟

Metrics Server يعطي Kubernetes metrics أساسية مثل CPU و Memory.

Terminal window
kubectl top nodes
kubectl top pods

Prometheus يجمع metrics، و Grafana يعرض dashboards. هذا شائع جدا في Kubernetes.

Terminal window
kubectl logs deployment/api
kubectl logs deployment/api --tail=100
kubectl logs deployment/api -f

في Production تحتاج نظام مركزي للـ logs مثل Loki أو Elasticsearch أو أي بديل مناسب.

Traces مهمة في microservices لأنها تريك رحلة request عبر أكثر من خدمة. غالبا تستخدم OpenTelemetry لجمع traces.

Alert جيد يجب أن يكون قابلا للتصرف. لا ترسل alert لكل شيء. ركز على:

  • التطبيق لا يستقبل traffic.
  • error rate مرتفع.
  • latency مرتفع.
  • Pods تعاد تشغيلها كثيرا.
  • PVC يقترب من الامتلاء.

Lab: قراءة الموارد

المستوى: مبتدئ الوقت: 25 دقيقة الأدوات: kubectl, metrics-server

الهدف: تثبيت أو استخدام Metrics Server ثم قراءة استهلاك Pods.

Terminal window
kubectl top nodes
kubectl top pods
kubectl describe pod <pod>

قارن بين requests/limits والاستهلاك الفعلي.