2012-08-30 11 views
6

मैं FOSRestBundle का उपयोग करके सिम्फनी 2 में एक विश्वसनीय सेवा बना रहा हूं। मैं Google Analytics का उपयोग कर वेब क्लाइंट में पेज उपयोग को ट्रैक कर सकता हूं। हालांकि, यह स्पष्ट रूप से गैर-एचटीएमएल ग्राहकों द्वारा अनुरोधों के लिए काम नहीं करेगा।मैं Symfony2 में API उपयोग को कैसे ट्रैक कर सकता हूं?

इससे पहले कि मैं रेडिस, लेखन सेवाएं, घटना प्रेषक इत्यादि स्थापित करने से पहले, इस समस्या को हल कर लिया गया है? क्या कोई ऐसा समाधान है जिस पर प्रदर्शन पर गंभीर प्रभाव नहीं पड़ता है?

प्रोजेक्ट के आंकड़ों के आधार पर मैं प्रतिस्थापित कर रहा हूं, मुझे उम्मीद है कि 9 0% ट्रैफ़िक ब्राउज़र से आते हैं। मैं गैर-एचटीएमएल ग्राहकों के नियंत्रण में नहीं रहूंगा, इसलिए वहां ट्रैकिंग जोड़ने का कोई विकल्प नहीं है।

मुझे उसी कारण से डेटा की आवश्यकता है कि किसी को भी एनालिटिक्स डेटा की आवश्यकता है - सुंदर ग्राफ बनाने के लिए, और विकास संसाधनों को ध्यान केंद्रित करने के बारे में मात्रात्मक सबूत दें।

+4

शायद आप ऐसा कुछ खोज सकते हैं जो आपके एक्सेस लॉग का विश्लेषण करता है (प्रदर्शन पर कोई प्रभाव नहीं) – greg0ire

+0

कोई बुरा विचार नहीं है। मुझे अपाचे के बारे में बहुत कुछ नहीं पता - मैं इसे प्रत्येक अनुरोध के लिए 'स्वीकार करें' शीर्षलेख लॉग करने के लिए कैसे कह सकता हूं? –

+0

मुझे पता है कि आप लॉग प्रारूप को कस्टमाइज़ कर सकते हैं। [LogFormat] (http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#logformat) निर्देश दस्तावेज़ देखें। – greg0ire

उत्तर

1

कुछ विकल्प हैं, और यह इस बात पर निर्भर करता है कि आपको कितनी जानकारी चाहिए। यदि आप केवल मूल गतिविधि जानना चाहते हैं (प्रत्येक वेब सेवा के लिए कितने कॉल, कब, स्रोत आईपी, उपयोगकर्ता एजेंट), तो अपाचे लॉग में पहले से ही वह सारी जानकारी होती है। आपको आवश्यक अतिरिक्त फ़ील्ड जोड़ने के लिए कस्टमलॉग का उपयोग करें। जैसे इसे पाने के है, पोस्ट, PUT, आदि% r भाग में निहित है, तो

CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{Accept}i\"" 

: यदि आप स्वीकार करें हैडर, जो इस तरह जोड़ा जा सकता है उल्लेख किया।

यदि आप जानना चाहते हैं कि वास्तव में POST या PUT डेटा में क्या है, तो यह अधिक कठिन है। चरम समाधान mod_dumpio मॉड्यूल का उपयोग करना है। वह सभी क्लाइंट इनपुट लॉग करता है (सभी शीर्षलेख, सभी कुकीज़, सभी पोस्ट डेटा)। यदि लोग छवियों को अपलोड करने के लिए आपके आरईएसटी एपीआई का उपयोग करते हैं, तो अच्छे या बुरे के लिए, आपको अपने लॉग में पूरी छवि मिलती है। वह बहुत बड़ा हो सकता है।

मैं जिस समाधान का समर्थन करता हूं वह PHP से लॉग इन करना है: या तो अपनी PHP स्क्रिप्ट के शीर्ष पर एक कस्टम लॉग, या जब आप अनुरोध संसाधित करते हैं। फिर आपके पास लॉग इन करने के लिए पूर्ण नियंत्रण है, विश्लेषण करने का सबसे आसान प्रारूप, और आप इसे संदर्भ में भी डाल सकते हैं (उदा। लॉग टेक्स्ट डेटा, लेकिन छवि बाइट लॉगिंग नहीं)। विकास और छोटी साइटों के लिए मैं इसे अपाचे लॉगिंग के साथ समानांतर में करता हूं। यदि अपाचे बहुत अधिक CPU ले रहा है, तो अपाचे लॉगिंग अक्षम करें, या अपाचे को पूरी तरह बाईपास करें। (मैं वर्तमान में built-in webserver in php 5.4 का मूल्यांकन कर रहा हूं - इसमें रूटिंग के लिए समर्थन है, इसलिए वेब सेवाओं के लिए बहुत उपयुक्त हो सकता है।)

बीटीडब्ल्यू, सर्वर लॉग का विश्लेषण Google Analytics के साथ समानांतर में अच्छा है: यह आपको सटीकता की सराहना करने में मदद करता है प्रत्येक की।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^