
Kyanos eBPF का उपयोग करने वाला एक नेटवर्किंग विश्लेषण उपकरण है। यह कर्नेल में पैकेटों द्वारा बिताए गए समय को विज़ुअलाइज़ कर सकता है, अनुरोधों/प्रतिक्रियाओं को कैप्चर कर सकता है, जिससे समस्या निवारण अधिक कुशल हो जाता है।

简体中文 | अंग्रेज़ी
Kyanos एक eBPF-आधारित नेटवर्क समस्या विश्लेषण उपकरण है जो आपको HTTP, Redis, MySQL, Kafka, MongoDB, RocketMQ और DNS अनुरोधों जैसे नेटवर्क अनुरोधों को कैप्चर करने में सक्षम बनाता है। यह असामान्य नेटवर्क समस्याओं का विश्लेषण करने और पैकेट कैप्चरिंग, डाउनलोड और विश्लेषण के जटिल चरणों के बिना त्वरित समस्या निवारण में भी मदद करता है।
# Filter by pid
./kyanos watch --pids 1234
# Filter by container id
./kyanos watch --container-id abc
# Filter by Redis key
./kyanos watch redis --keys my-key1,my-key2
# Filter by response byte size
./kyanos watch --resp-size 10000
उन्नत विश्लेषण क्षमताएँ : tcpdump के विपरीत, जो केवल सूक्ष्म-स्तरीय पैकेट कैप्चर प्रदान करता है, Kyanos कैप्चर किए गए पैकेट मेट्रिक्स को विभिन्न आयामों में एकत्रित करने का समर्थन करता है, जो समस्या निवारण के लिए सबसे उपयोगी महत्वपूर्ण डेटा तुरंत प्रदान करता है।
कल्पना करें कि आपकी HTTP सेवा का बैंडविड्थ अचानक पूरी तरह से उपयोग हो जाए—तो आप which IPs और which requests का तुरंत विश्लेषण कैसे करेंगे?
Kyanos के साथ, आपको केवल एक कमांड चलानी है: kyanos stat http --bigresp ताकि रिमोट IP को भेजे गए सबसे बड़े प्रतिक्रिया बाइट आकार का पता लगा सकें और अनुरोध तथा प्रतिक्रिया मेट्रिक्स पर विशिष्ट डेटा देख सकें।

गहन कर्नेल-स्तरीय विलंबता विवरण: वास्तविक दुनिया में, Redis जैसी रिमोट सेवाओं के धीमे क्वेरीज़ का सटीक निदान करना चुनौतीपूर्ण हो सकता है। Kyanos नेटवर्क कार्ड पर अनुरोध/प्रतिक्रिया के आगमन से लेकर कर्नेल सॉकेट बफर तक कर्नेल ट्रेस पॉइंट प्रदान करता है, इन विवरणों को एक दृश्य प्रारूप में प्रदर्शित करता है। यह आपको यह पहचानने की अनुमति देता है कि देरी वास्तव में किस चरण में हो रही है।

हल्का और निर्भरता-मुक्त: लगभग शून्य निर्भरताएँ—केवल एक बाइनरी फ़ाइल और एक कमांड, सभी परिणाम कमांड लाइन में प्रदर्शित होते हैं।
स्वचालित SSL ट्रैफ़िक डिक्रिप्शन : सभी कैप्चर किए गए अनुरोध और प्रतिक्रियाएँ प्लेन टेक्स्ट में प्रस्तुत की जाती हैं।
विलंबता विवरण के साथ HTTP ट्रैफ़िक कैप्चर करें
कमांड चलाएँ:
./kyanos watch http
परिणाम इस प्रकार है:

विलंबता विवरण के साथ Redis ट्रैफ़िक कैप्चर करें
कमांड चलाएँ:
./kyanos watch redis
परिणाम इस प्रकार है:

पिछले 5 सेकंड में सबसे धीमे अनुरोधों की पहचान करें
कमांड चलाएँ:
./kyanos stat --slow --time 5
परिणाम इस प्रकार है:

Kyanos वर्तमान में कर्नेल संस्करण 3.10(from 3.10.0-957) और 4.14 या उससे ऊपर का समर्थन करता है (भविष्य में 4.7 और 4.14 के बीच के संस्करणों का समर्थन करने की योजना है)।
आप
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 दबाकर विवरण दृश्य तक पहुँचें:

विवरण दृश्य में, पहला अनुभाग विलंबता विवरण दिखाता है। प्रत्येक ब्लॉक एक "नोड" का प्रतिनिधित्व करता है जिससे डेटा पैकेट गुजरता है, जैसे प्रक्रिया, नेटवर्क कार्ड और सॉकेट बफर।
प्रत्येक ब्लॉक में एक समय मान शामिल होता है जो पिछले नोड से इस नोड तक बीता समय दर्शाता है, प्रक्रिया द्वारा अनुरोध भेजने से लेकर नेटवर्क कार्ड तक, प्रतिक्रिया के सॉकेट बफर में कॉपी होने तक, और अंत में प्रक्रिया द्वारा पढ़े जाने तक की प्रक्रिया प्रवाह दिखाता है, जिसमें प्रत्येक चरण की अवधि प्रदर्शित होती है।
दूसरा अनुभाग विस्तृत अनुरोध और प्रतिक्रिया सामग्री प्रदान करता है, जो अनुरोध और प्रतिक्रिया भागों में विभाजित है, और 1024 बाइट्स से अधिक की सामग्री को काट देता है।
लक्षित ट्रैफ़िक कैप्चर के लिए, जैसे HTTP ट्रैफ़िक:
./kyanos watch http
आप इसे किसी विशिष्ट HTTP पथ के लिए ट्रैफ़िक कैप्चर करने हेतु और अधिक सीमित कर सकते हैं:
./kyanos watch http --path /abc
और जानें: Kyanos दस्तावेज़
[!IMPORTANT]
यदि आपको टूल का उपयोग करते समय कोई समस्या या बग मिले, तो कृपया बेझिझक इश्यू ट्रैकर में प्रश्न पूछें।
kyanos के विकास के दौरान, निम्नलिखित परियोजनाओं से कुछ कोड उधार लिया गया था:
अधिक विस्तृत पूछताछ के लिए, आप निम्नलिखित संपर्क विधियों का उपयोग कर सकते हैं: