
كيانوس هي أداة تحليل شبكات تستخدم eBPF. يمكنها تصور الوقت الذي تقضيه الحزم في النواة، والتقاط الطلبات/الاستجابات، مما يجعل استكشاف الأخطاء وإصلاحها أكثر كفاءة.

Kyanos هي أداة تحليل مشاكل الشبكة قائمة على eBPF تمكنك من التقاط طلبات الشبكة، مثل طلبات HTTP وRedis وMySQL وKafka وMongoDB ورسائل RocketMQ وDNS. كما تساعدك في تحليل مشاكل الشبكة غير الطبيعية وسرعة استكشاف الأخطاء وإصلاحها دون الخطوات المعقدة لالتقاط الحزم وتنزيلها وتحليلها.
# التصفية حسب pid
./kyanos watch --pids 1234
# التصفية حسب معرف الحاوية
./kyanos watch --container-id abc
# التصفية حسب مفتاح Redis
./kyanos watch redis --keys my-key1,my-key2
# التصفية حسب حجم بايت الاستجابة
./kyanos watch --resp-size 10000
قدرات تحليل متقدمة: على عكس tcpdump الذي يوفر فقط التقاط حزم
دقيق، يدعم Kyanos تجميع مقاييس الحزم الملتقطة عبر أبعاد متنوعة،
مما يوفر بسرعة البيانات الحرجة الأكثر فائدة لاستكشاف الأخطاء.
تخيل أن عرض النطاق الترددي لخدمة HTTP الخاصة بك قد وصل فجأة إلى الحد
الأقصى — كيف يمكنك تحليل أي عناوين IP وأي طلبات تسبب ذلك بسرعة؟
مع Kyanos، تحتاج فقط إلى أمر واحد: kyanos stat http --bigresp للعثور
على أكبر أحجام بايت الاستجابة المرسلة إلى عناوين IP البعيدة وعرض بيانات
محددة حول مقاييس الطلب والاستجابة.

تفاصيل زمن الانتظار العميقة على مستوى النواة: في العالم الحقيقي، قد يكون تشخيص الاستعلامات البطيئة للخدمات البعيدة مثل Redis تحديًا. يوفر Kyanos نقاط تتبع kernel من وصول الطلبات/الاستجابات إلى بطاقة الشبكة وحتى المخزن المؤقت للـ socket kernel، ويعرض هذه التفاصيل بتنسيق بصري. يتيح لك ذلك تحديد أي مرحلة تسبب التأخير بالضبط.

خفيف الوزن وخالٍ من التبعيات: لا توجد تبعيات تقريبًا — مجرد ملف ثنائي واحد وأمر واحد، مع عرض جميع النتائج في سطر الأوامر.
فك تشفير حركة مرور SSL تلقائيًا: يتم تقديم جميع الطلبات والاستجابات الملتقطة بنص عادي.
التقاط حركة مرور HTTP مع تفاصيل زمن الانتظار
شغّل الأمر:
./kyanos watch http
النتيجة كما يلي:

التقاط حركة مرور Redis مع تفاصيل زمن الانتظار
شغّل الأمر:
./kyanos watch redis
النتيجة كما يلي:

تحديد أبطأ الطلبات في آخر 5 ثوانٍ
شغّل الأمر:
./kyanos stat --slow --time 5
النتيجة كما يلي:

يدعم Kyanos حاليًا إصدارات kernel 3.10 (من 3.10.0-957) و4.14 أو أعلى (مع خطط لدعم الإصدارات بين 4.7 و4.14 في المستقبل).
يمكنك التحقق من إصدار kernel باستخدام
uname -r.
يمكنك تنزيل ملف ثنائي مرتبط بشكل ثابت متوافق مع معماريتي amd64 وarm64 من صفحة الإصدارات:
tar xvf kyanos_vx.x.x_linux_amd64.tar.gz
ثم قم بتشغيل kyanos بصلاحية الجذر:
sudo ./kyanos watch
إذا ظهر الجدول التالي:
🎉
تهانينا! تم تشغيل Kyanos بنجاح.
أبسط استخدام هو التقاط جميع البروتوكولات التي يدعمها Kyanos حاليًا:
sudo ./kyanos watch
يتم تخزين كل سجل طلب-استجابة كصف في جدول، مع التقاط كل عمود للمعلومات
الأساسية حول ذلك الطلب. يمكنك استخدام مفاتيح الأسهم أو j/k للتحرك
لأعلى ولأسفل عبر السجلات:

اضغط على Enter للوصول إلى عرض التفاصيل:

في عرض التفاصيل، يظهر القسم الأول تفاصيل زمن الانتظار. تمثل كل
كتلة "عقدة" يمر بها حزمة البيانات، مثل العملية وبطاقة الشبكة والمخزن
المؤقت للـ socket.
تتضمن كل كلة قيمة زمنية تشير إلى الوقت المنقضي من العقدة السابقة إلى
هذه العقدة، وتظهر سير العملية من إرسال العملية للطلب إلى بطاقة الشبكة،
ثم نسخ الاستجابة إلى المخزن المؤقت للـ socket، ثم قراءتها بواسطة العملية،
مع عرض مدة كل خطوة.
يقدم القسم الثاني تفاصيل الطلب والاستجابة التفصيلية، مقسمة إلى أجزاء الطلب والاستجابة، ويقوم باقتطاع المحتوى الذي يتجاوز 1024 بايت.
لالتقاط حركة مرور مستهدفة، مثل حركة مرور HTTP:
./kyanos watch http
يمكنك تضييق النطاق أكثر لالتقاط حركة مرور لمسار HTTP معين:
./kyanos watch http --path /abc
اعرف المزيد: Kyanos Docs
[!IMPORTANT]
إذا واجهت أي مشاكل أو أخطاء أثناء استخدام الأداة، فلا تتردد في طرح الأسئلة في متتبع المشكلات.
أثناء تطوير kyanos، تم استعارة بعض التعليمات البرمجية من المشاريع التالية:
للاستفسارات الأكثر تفصيلاً، يمكنك استخدام طرق الاتصال التالية: