مراقبة مقاييس وحدة تحكم ingress-nginx في الوظيفة الإضافية لتوجيه التطبيق باستخدام Prometheus في Grafana (معاينة)
تعرض وحدة تحكم ingress-nginx في الوظيفة الإضافية لتوجيه التطبيق العديد من المقاييس للطلبات وعملية nginx ووحدة التحكم التي يمكن أن تكون مفيدة في تحليل أداء التطبيق واستخدامه.
تعرض الوظيفة الإضافية لتوجيه التطبيق نقطة نهاية مقاييس Prometheus في /metrics
المنفذ 10254.
هام
تتوفر ميزات معاينة AKS على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات AKS جزئيًا بواسطة دعم العملاء على أساس بذل أفضل الجهود. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:
المتطلبات الأساسية
- نظام مجموعة Azure Kubernetes Service (AKS) مع تمكين الوظيفة الإضافية لتوجيه التطبيق.
- مثيل Prometheus، مثل خدمة Azure Monitor المدارة ل Prometheus.
- مثيل Grafana، مثل Azure Managed Grafana.
التحقق من صحة نقطة نهاية المقاييس
للتحقق من صحة المقاييس التي يتم تجميعها، يمكنك إعداد منفذ إعادة توجيه إلى إحدى وحدات التحكم ingress-nginx.
kubectl get pods -n app-routing-system
NAME READY STATUS RESTARTS AGE
external-dns-667d54c44b-jmsxm 1/1 Running 0 4d6h
nginx-657bb8cdcf-qllmx 1/1 Running 0 4d6h
nginx-657bb8cdcf-wgcr7 1/1 Running 0 4d6h
الآن قم بإعادة توجيه منفذ محلي إلى المنفذ 10254 على أحد pods nginx.
kubectl port-forward nginx-657bb8cdcf-qllmx -n app-routing-system :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254
لاحظ المنفذ المحلي (43307
في هذه الحالة) وافتحه http://localhost:43307/metrics في المستعرض. يجب أن تشاهد تحميل مقاييس وحدة تحكم ingress-nginx.
يمكنك الآن إنهاء port-forward
العملية لإغلاق إعادة التوجيه.
تكوين خدمة Azure Monitor المدارة ل Prometheus وAzure Managed Grafana باستخدام Container Insights
خدمة Azure Monitor المدارة ل Prometheus هي خدمة متوافقة مع Prometheus مدارة بالكامل تدعم الميزات القياسية للصناعة مثل PromQL ولوحات معلومات Grafana وتنبيهات Prometheus. تتطلب هذه الخدمة تكوين ملحق المقاييس لعامل Azure Monitor، الذي يرسل البيانات إلى Prometheus. إذا لم يتم تكوين نظام المجموعة الخاص بك باستخدام الوظيفة الإضافية، يمكنك اتباع هذه المقالة لتكوين نظام مجموعة Azure Kubernetes Service (AKS) لإرسال البيانات إلى خدمة Azure Monitor المدارة ل Prometheus وإرسال المقاييس المجمعة إلى مثيل Azure Managed Grafana.
تمكين الاستخراج المستند إلى التعليق التوضيحي للجراب
بمجرد تحديث نظام المجموعة الخاص بك باستخدام عامل Azure Monitor، تحتاج إلى تكوين العامل لتمكين الاستخراج استنادا إلى التعليقات التوضيحية ل Pod، والتي تتم إضافتها إلى pods ingress-nginx. توجد إحدى طرق تعيين هذا الإعداد في ama-metrics-settings-configmap
ConfigMap في kube-system
مساحة الاسم.
تنبيه
سيؤدي ذلك إلى استبدال ConfigMap الموجود ama-metrics-settings-configmap
في kube-system
. إذا كان لديك تكوين بالفعل، فقد ترغب في أخذ نسخة احتياطية أو دمجها مع هذا التكوين.
يمكنك النسخ الاحتياطي ConfigMap الموجود ama-metrics-settings-config
إذا كان موجودا عن طريق تشغيل kubectl get configmap ama-metrics-settings-configmap -n kube-system -o yaml > ama-metrics-settings-configmap-backup.yaml
يقوم التكوين التالي بتعيين المعلمة podannotationnamespaceregex
إلى .*
لاستخراج كافة مساحات الأسماء.
kubectl apply -f - <<EOF
kind: ConfigMap
apiVersion: v1
metadata:
name: ama-metrics-settings-configmap
namespace: kube-system
data:
schema-version:
#string.used by agent to parse config. supported versions are {v1}. Configs with other schema versions will be rejected by the agent.
v1
config-version:
#string.used by customer to keep track of this config file's version in their source control/repository (max allowed 10 chars, other chars will be truncated)
ver1
prometheus-collector-settings: |-
cluster_alias = ""
default-scrape-settings-enabled: |-
kubelet = true
coredns = false
cadvisor = true
kubeproxy = false
apiserver = false
kubestate = true
nodeexporter = true
windowsexporter = false
windowskubeproxy = false
kappiebasic = true
prometheuscollectorhealth = false
# Regex for which namespaces to scrape through pod annotation based scraping.
# This is none by default. Use '.*' to scrape all namespaces of annotated pods.
pod-annotation-based-scraping: |-
podannotationnamespaceregex = ".*"
default-targets-metrics-keep-list: |-
kubelet = ""
coredns = ""
cadvisor = ""
kubeproxy = ""
apiserver = ""
kubestate = ""
nodeexporter = ""
windowsexporter = ""
windowskubeproxy = ""
podannotations = ""
kappiebasic = ""
minimalingestionprofile = true
default-targets-scrape-interval-settings: |-
kubelet = "30s"
coredns = "30s"
cadvisor = "30s"
kubeproxy = "30s"
apiserver = "30s"
kubestate = "30s"
nodeexporter = "30s"
windowsexporter = "30s"
windowskubeproxy = "30s"
kappiebasic = "30s"
prometheuscollectorhealth = "30s"
podannotations = "30s"
debug-mode: |-
enabled = false
EOF
في بضع دقائق، ama-metrics
يجب إعادة تشغيل pods في kube-system
مساحة الاسم واستلام التكوين الجديد.
مراجعة تصور المقاييس في Azure Managed Grafana
الآن بعد أن تم تكوين خدمة Azure Monitor المدارة ل Prometheus وAzure Managed Grafana، يجب عليك الوصول إلى مثيل Grafana المدار.
هناك لوحتا معلومات رسميتان للوحات معلومات ingress-nginx يمكنك تنزيلها واستيرادها إلى مثيل Grafana الخاص بك:
- لوحة معلومات وحدة تحكم Ingress-nginx
- طلب معالجة لوحة معلومات الأداء
لوحة معلومات وحدة تحكم Ingress-nginx
تمنحك لوحة المعلومات هذه رؤية لحجم الطلب والاتصالات ومعدلات النجاح وإعادة تحميل التكوينات والتهيئة خارج المزامنة. يمكنك أيضا استخدامه لعرض ضغط الإدخال/الإخراج للشبكة والذاكرة واستخدام وحدة المعالجة المركزية لوحدة تحكم الدخول. وأخيرا، فإنه يظهر أيضا أوقات الاستجابة المئوية P50 وP95 وP99 من دخولك ومعدل نقلها.
يمكنك تنزيل لوحة المعلومات هذه من GitHub.
طلب معالجة لوحة معلومات الأداء
تمنحك لوحة المعلومات هذه رؤية لأداء معالجة الطلب لوجهات انتقال البيانات المختلفة، وهي نقاط نهاية تطبيقاتك التي تقوم وحدة التحكم في الدخول بإعادة توجيه حركة المرور إليها. يظهر P50 وP95 وP99 النسبة المئوية لإجمالي الطلب وأوقات الاستجابة الأولية. يمكنك أيضا عرض تجميعات أخطاء الطلب وزمن الانتقال. استخدم لوحة المعلومات هذه لمراجعة وتحسين أداء تطبيقاتك وقابليتها للتوسع.
يمكنك تنزيل لوحة المعلومات هذه من GitHub.
استيراد لوحة معلومات
لاستيراد لوحة معلومات Grafana، قم بتوسيع القائمة اليسرى وانقر فوق استيراد ضمن لوحات المعلومات.
ثم قم بتحميل ملف لوحة المعلومات المطلوب وانقر فوق تحميل.
الخطوات التالية
- يمكنك تكوين تحجيم أحمال العمل باستخدام مقاييس الدخول التي تم استخراجها باستخدام Prometheus باستخدام Kubernetes Event Driven Autoscaler (KEDA). تعرف على المزيد حول دمج KEDA مع AKS.
- إنشاء اختبار تحميل وتشغيله باستخدام Azure Load Testing لاختبار أداء حمل العمل وتحسين قابلية التوسع لتطبيقاتك.
Azure Kubernetes Service