2013-06-26 4 views
5

मैं बैकएंड के रूप में ग्रेफाइट (0.9.10) के साथ सांख्यिकी (गिट मास्टर शाखा से नवीनतम संस्करण) का उपयोग कर रहा हूं।मैं आंकड़े और ग्रेफाइट के साथ एक संचयी गिनती ग्राफ कैसे प्राप्त कर सकता हूं?

मेरे (Django) कोड में मैं statsd.incr("signups") पर कॉल करता हूं जब कोई उपयोगकर्ता साइन अप करता है। ग्रेफाइट के वेब इंटरफ़ेस में, अब मुझे एक सुंदर ग्राफ दिखाई देता है जो ग्रेफाइट/आंकड़े/साइनअप के तहत प्रति सेकंड साइनअप की संख्या दिखाता है। जब मैं ग्रेफाइट/आंकड़े_counts/साइनअप के तहत आलेख को देखता हूं, तो मुझे साइनअप की कुल संख्या देखने की उम्मीद है, लेकिन ऐसा लगता है कि प्रति 10s अंतराल (यह आंकड़े के ताज़ा अंतराल, मुझे लगता है) के साइनअप की संख्या है।

I storage-aggregation.conf कॉन्फ़िगर किया गया, शायद मुझे यह गलत तरीके से मिला? इसके अलावा, मैंने कार्बन को रोक दिया (stop के साथ नहीं, लेकिन वास्तव में इसे मार डाला, क्योंकि जाहिर है कि इसे रोकना इसे कॉन्फ़िगरेशन को फिर से लोड करने की अनुमति नहीं देता है)। मैंने /opt/graphite/storage/whisper/stats_counts निर्देशिका भी हटा दी है। फिर मैंने कार्बन डिमन को फिर से शुरू किया। मुझे अभी भी प्रति 10s अंतराल के साइनअप की संख्या मिलती है।

# /opt/graphite/conf/storage-aggregation.conf 

[lower] 
pattern = \.lower$ 
xFilesFactor = 0.1 
aggregationMethod = min 

[upper] 
pattern = \.upper$ 
xFilesFactor = 0.1 
aggregationMethod = max 

[upper_90] 
pattern = \.upper_90$ 
xFilesFactor = 0.1 
aggregationMethod = max 

[count] 
pattern = \.count$ 
xFilesFactor = 0 
aggregationMethod = sum 

[count_ps] 
pattern = \.count_ps$ 
xFilesFactor = 0 
aggregationMethod = sum 

[sum] 
pattern = \.sum$ 
xFilesFactor = 0 
aggregationMethod = sum 

[sum_90] 
pattern = \.sum_90$ 
xFilesFactor = 0 
aggregationMethod = sum 

[stats_counts] 
pattern = ^stats_counts\. 
xFilesFactor = 0 
aggregationMethod = sum 

[min] 
pattern = \.min$ 
xFilesFactor = 0.1 
aggregationMethod = min 

[max] 
pattern = \.max$ 
xFilesFactor = 0.1 
aggregationMethod = max 

[default_average] 
pattern = .* 
xFilesFactor = 0.5 
aggregationMethod = average 

और यह: :-(

यहाँ मेरी विन्यास है

# /opt/graphite/conf/storage-schemas.conf 

[stats] 
priority = 110 
pattern = ^stats.* 
retentions = 10s:6h,1m:7d,10m:1y 

मुझे लगता है कि मैं सब कुछ सही किया सोचने के लिए शुरू कर रहा हूँ और कि ग्रेफाइट वास्तव में क्या कर रही है क्या यह माना जाता है कर रहा है। तो सवाल यह है:

साइन्यू की कुल संख्या खींचने के लिए figuresd & ग्रेफाइट को कॉन्फ़िगर करने का उचित तरीका क्या है समय की शुरुआत के बाद से पीएस?

मुझे लगता है मैं, उपयोगकर्ताओं की कुल संख्या गिनती करने के लिए कभी-कभार मेरे Django कोड को बदल सकता है, और फिर एक incr के बजाय एक gauge उपयोग करते हैं, लेकिन यह महसूस करता है ग्रेफाइट की तरह बस जो कुछ भी यह योग में सक्षम होना चाहिए फ्लाई पर प्राप्त होता है, न कि जब यह डेटा एकत्र करता है।

संपादित करें:

ग्रेफाइट के वेब इंटरफ़ेस का उपयोग करना, ग्रेफाइट संगीतकार में, मैं लागू किया ग्राफ बुनियादी "प्रति सेकंड साइन-अप" के लिए integral समारोह (ग्रेफाइट में/आँकड़े/साइन अप), और मैं वांछित गया ग्राफ (यानी साइनअप की कुल संख्या)। क्या यह एक संचयी ग्राफ प्राप्त करने का उचित तरीका है? यह कष्टप्रद है क्योंकि मुझे समय की शुरुआत के बाद से पूर्ण तिथि सीमा का चयन करने की आवश्यकता है, मैं ग्राफ में ज़ूम नहीं कर सकता, अन्यथा मुझे ज़ूम किए गए हिस्से का अभिन्न अंग मिलता है। :-(

उत्तर

1

हां integral() फ़ंक्शन ऐसा करने का सही तरीका है। चूंकि स्टैट्सडी उस संबंध में स्टेटलेस है (सभी एकत्रित डेटा ग्रेफाइट में फ्लश के बाद रीसेट/हटा दिया जाता है) इसके लिए सक्षम होने का कोई तरीका नहीं है

This will show the sum over time, sort of like a continuous addition function. Useful for finding totals or trends in metrics that are collected per minute.

: integral() समारोह के ग्रेफाइट प्रलेखन से योग करने के लिए सभी एक निश्चित बिंदु के बाद से डेटा प्राप्त

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

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