Metrics و Logs و Traces
Observability ليست أداة واحدة
Section titled “Observability ليست أداة واحدة”Observability تعني القدرة على فهم حالة النظام من خارجه. غالبا تعتمد على 3 إشارات:
| الإشارة | تجيب على |
|---|---|
| Metrics | كم؟ CPU، Memory، latency، request count |
| Logs | ماذا حدث؟ رسائل التطبيق والأخطاء |
| Traces | أين قضى الطلب وقته بين الخدمات؟ |
Metrics Server
Section titled “Metrics Server”Metrics Server يعطي Kubernetes metrics أساسية مثل CPU و Memory.
kubectl top nodeskubectl top podsPrometheus و Grafana
Section titled “Prometheus و Grafana”Prometheus يجمع metrics، و Grafana يعرض dashboards. هذا شائع جدا في Kubernetes.
kubectl logs deployment/apikubectl logs deployment/api --tail=100kubectl logs deployment/api -fفي Production تحتاج نظام مركزي للـ logs مثل Loki أو Elasticsearch أو أي بديل مناسب.
Traces
Section titled “Traces”Traces مهمة في microservices لأنها تريك رحلة request عبر أكثر من خدمة. غالبا تستخدم OpenTelemetry لجمع traces.
Alerts
Section titled “Alerts”Alert جيد يجب أن يكون قابلا للتصرف. لا ترسل alert لكل شيء. ركز على:
- التطبيق لا يستقبل traffic.
- error rate مرتفع.
- latency مرتفع.
- Pods تعاد تشغيلها كثيرا.
- PVC يقترب من الامتلاء.
Lab: قراءة الموارد
الهدف: تثبيت أو استخدام Metrics Server ثم قراءة استهلاك Pods.
kubectl top nodeskubectl top podskubectl describe pod <pod>قارن بين requests/limits والاستهلاك الفعلي.