इस प्रोजेक्ट के बारे में
Grafana Pyroscope एप्लिकेशन प्रदर्शन डेटा को एकत्र करने और विश्लेषण करने के लिए एक ओपन-सोर्स निरंतर प्रोफाइलिंग प्लेटफॉर्म है। इसका लक्ष्य संसाधन खपत को दृश्यमान बनाना है: पूरे सिस्टम में CPU, मेमोरी और I/O व्यवहार की जांच की जा सकती है और फिर इसे एक विशिष्ट सेवा, फ़ंक्शन या कोड की एक एकल पंक्ति तक सीमित किया जा सकता है।
README में वर्णित विशिष्ट उपयोग सक्रिय और प्रतिक्रियात्मक दोनों हैं। सक्रिय रूप से, टीमें संसाधन खपत को कम कर सकती हैं, एप्लिकेशन प्रदर्शन में सुधार कर सकती हैं, या समस्याओं के सामने आने से पहले लेटेंसी समस्याओं को रोक सकती हैं। प्रतिक्रियात्मक रूप से, यह प्लेटफॉर्म सक्रिय CPU, मेमोरी या I/O बाधाओं को डीबग करने के लिए लाइन-लेवल विवरण के साथ घटनाओं को जल्दी हल करने के उद्देश्य से है।
आर्किटेक्चर
परियोजना के तीन मुख्य भाग हैं:
- Pyroscope Server: प्रोफाइलिंग डेटा को स्टोर और प्रोसेस करता है और क्वेरीज़ को सर्व करता है।
- Clients and instrumentation: प्रोफाइल Pyroscope भाषा SDKs (push), Grafana Alloy (pull या push), या OpenTelemetry-संगत स्रोतों जैसे OpenTelemetry eBPF profiler से OTLP के माध्यम से सर्वर तक पहुँचते हैं।
- Grafana Profiles Drilldown: प्रोफाइलिंग डेटा को विज़ुअलाइज़ और विश्लेषण करने के लिए एक क्वेरीलेस इंटरफ़ेस, जिसे पहले Explore Profiles के रूप में जाना जाता था।
Pyroscope 2.0 एक नए v2 आर्किटेक्चर को डिफ़ॉल्ट बनाता है। प्रोफाइल सीधे ऑब्जेक्ट स्टोरेज में लिखे जाते हैं, जिससे इन-मेमोरी इनजेस्टर्स और लोकल डिस्क की आवश्यकता समाप्त हो जाती है, जिसके बारे में परियोजना का कहना है कि यह संचालन को सरल बनाता है और बड़े पैमाने पर संसाधन उपयोग को कम करता है। कॉम्पैक्शन वर्कर्स बैकग्राउंड में छोटे सेगमेंट को बड़े ब्लॉक्स में मर्ज करते हैं, जबकि क्वेरीज़ Grafana Profiles Drilldown में फ्लेम ग्राफ बनाने के लिए ऑब्जेक्ट स्टोरेज में फैल जाती हैं। मौजूदा v1 परिनियोजन एक फ्लैग के माध्यम से विकल्प चुन सकते हैं और माइग्रेट कर सकते हैं, और README रिलीज़ नोट्स, आर्किटेक्चर ओवरव्यू और माइग्रेशन गाइड के लिंक प्रदान करता है।
इंस्ट्रुमेंटेशन और भाषा समर्थन
Go, Java, Python, Ruby, Node.js, .NET और Rust के लिए SDK दस्तावेज़ीकरण और उदाहरण सूचीबद्ध हैं। SDK-आधारित पुश के अलावा, README पुल या पुश संग्रह के लिए Grafana Alloy और Grafana Alloy के माध्यम से eBPF-आधारित ऑटो-इंस्ट्रुमेंटेशन, साथ ही OpenTelemetry-संगत प्रोफाइलर्स से OTLP इंजेक्शन की ओर संकेत करता है। परियोजना समर्थित भाषाओं की एक सूची और प्रत्येक पर लागू प्रोफाइलिंग प्रकारों का दस्तावेज़ीकरण करती है।
शुरुआत करना
सर्वर को स्थानीय रूप से कई तरीकों से चलाया जा सकता है:
- Docker: docker run -it -p 4040:4040 grafana/pyroscope
- macOS/Linux पर Homebrew: brew install pyroscope-io/brew/pyroscope, फिर brew services start pyroscope
- Binary: नवीनतम रिलीज़ से अपने OS और आर्किटेक्चर के लिए आर्काइव डाउनलोड करें, इसे अनपैक करें और ./pyroscope चलाएं
सर्वर पोर्ट 4040 पर सुनता है। README में Kubernetes/Helm परिनियोजन, Linux पैकेज, सोर्स से बिल्ड करने और पूर्ण सर्वर कॉन्फ़िगरेशन के लिए दस्तावेज़ीकरण का भी संदर्भ है। Grafana Play पर एक होस्टेड लाइव डेमो उपलब्ध है, और Profiles Drilldown को Grafana Cloud/OSS में प्रोफाइल एक्सप्लोर करने के डिफ़ॉल्ट तरीके के रूप में प्री-इंस्टॉल बताया गया है।
समुदाय और लाइसेंसिंग
परियोजना AGPLv3 के तहत लाइसेंस प्राप्त है, इसमें CI और Go Report Card बैज हैं, रिलीज़ और Docker इमेज प्रकाशित करती है, और Go पैकेज संदर्भ प्रदान करती है। रिपॉजिटरी में एक योगदानकर्ता गाइड शामिल है, और README उन कार्यों को श्रेय देता है जिन पर यह प्लेटफॉर्म आधारित है, जिसमें Brendan Gregg के Flame Graphs, rbspy, py-spy और phpspy सैंपलिंग प्रोफाइलर्स, flamebearer, speedscope, और वे योगदान शामिल हैं जिन्होंने Linux कर्नेल में BPF-आधारित प्रोफाइलिंग को संभव बनाया। वांछित एकीकरण पर फीडबैक GitHub इश्यू और Grafana Slack के माध्यम से मांगा जाता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.