2012-03-14 8 views
7

हमारे मध्यम आकार के रेल ऐप तीन सर्वरों पर (उत्पादन में) चलाता है। हमने नए अवशेष को मणि के रूप में उपयोग करके परीक्षण अवधि समाप्त कर दी है। परीक्षण अवधि के दौरान हमने सभी तीन सर्वरों को ट्रैक किया, लेकिन सदस्यता के साथ जारी रखने के लिए हमें केवल एप 1 ट्रैक करने के लिए (और केवल बजट है) की आवश्यकता है।केवल 1 (3) ऐप सर्वर पर चलाने के लिए नए अवशेष को लक्षित करना

तो हमें एप 2 और एपी 3 पर नए अवशेष को अक्षम करने की आवश्यकता है। उनकी ग्राहक सेवा के साथ संचार में मुझे बताया गया है कि यह संभव है और this page पर अंतिम प्रविष्टि के लिए निर्देशित किया गया है, लेकिन मुझे यह पता नहीं लगाया जा सकता है कि इससे मुझे अन्य दो सर्वरों पर नए रिलिक ट्रैकिंग को अक्षम करने में मदद मिलती है, विशेष रूप से क्योंकि वहां पर्यावरण.आरबी में उल्लिखित कोई newrelic_rpm - यह एक मणि है, आखिरकार, और इसलिए केवल Gemfile में उल्लेख किया गया है।

newrelic.yml में agent_enabled बूलियन विकल्प है, जिसे मैंने सोचा था कि हम प्रति-सर्वर आधार पर सेट कर सकते हैं, लेकिन मुझे नहीं पता कि यह कैसे करें। रेलवे_एनवीवी वैरिएबल के समान रेलवे में कौन सा सर्वर चल रहा है, यह जानने का कोई तरीका है?

+0

आप तैनाती के लिए क्या उपयोग कर रहे हैं? Capistrano? – iltempo

+0

हाँ, कैपर मणि के माध्यम से। हमारे पास हमारे कैपफ़ाइल में एक मॉनीटर है जो हम तैनात करते समय नए अवशेष को सूचित करते हैं, अन्यथा सब कुछ मणि और newrelic.yml – omnikron

उत्तर

11

एजेंट द्वारा कॉन्फ़िगरेशन मानों को पढ़ने से पहले newrelic.yml फ़ाइल ईआरबी के साथ प्रस्तुत की जाती है। तो अगर आप ऐसा कर सकते हैं:

monitor_mode: <%= 'app1' == Socket.gethostname ? 'true' : 'false' %> 

कि एजेंट केवल उसी एक मेजबान के लिए नई अवशेष के लिए रिपोर्टिंग सक्षम हो जाएगा।

+0

यह शानदार होगा अगर यह काम करता है लेकिन उसने ऐप 1 सहित सभी सर्वरों पर ट्रैकिंग अक्षम कर दी है। ईआरबी प्रतिपादन वास्तव में कैसे/कहाँ है? – omnikron

+0

गलत ईआरबी उद्घाटन टैग था। अब फिक्स्ड!/facepalm – rkb

+0

मुझे यह भी ध्यान रखना चाहिए था ... बेवकूफ HAML मुझे चीजों को भूलने! – omnikron

1

मैं केवल उस सर्वर पर newrelic.yml लिंक करने का सुझाव दूंगा जहां इसकी आवश्यकता है। ऐसा करने के लिए आपको config/newrelic.yml को पूरी तरह से रिपोजिटरी से हटा दें और इसके बजाय अपने सर्वर में shared निर्देशिका में डालें।

फिर इस फ़ाइल को केवल कैपिस्ट्रानो में एक निश्चित भूमिका के लिए config/newrelic.yml में लिंक करें। आप एक नई भूमिका निभा सकते हैं जिसमें केवल आपका ऐप 1 सर्वर शामिल हो।

नया अवशेष मणि असफल-सुरक्षित बनाता है। तो यह उस मामले में बस अक्षम है।

+0

कॉन्फ़िगरेशन/newrelic.yml को हटाकर पूरी तरह से newrelic_rpm को लोड होने पर त्रुटि को फेंक देता है, जो बहुत ही थकाऊ हो जाता है विकास। अन्यथा यह एक अच्छा समाधान होगा। हमारी वर्तमान योजना दो अतिरिक्त फाइलें, newrelic_disabled/_enabled.yml है, और तैनाती पर इनके साथ newrelic.yml को ओवरराइट करना है। – omnikron

+0

क्या आपका मतलब चेतावनी सही है? यदि आप उस फ़ाइल को उस गिट के माध्यम से अनदेखा करते हैं जो आपके विकास की प्रतिलिपि में रखता है तो आपको चेतावनी के आसपास भी मिल जाएगा। – iltempo

+0

हाँ, एक चेतावनी, कोई त्रुटि नहीं, क्षमा करें। यह एक अच्छा चाल है! मैं निश्चित रूप से भविष्य के लिए इसे ध्यान में रखूंगा, मुझे हमेशा याद हैरान है कि फाइलें गिट रेपो के _outside_ भी मौजूद हो सकती हैं :) इस मामले में हम फ़ाइलों को स्थानांतरित करने से बचने के लिए हमारी तैनाती विधि के साथ रहेंगे टीम पुराने तरीके से, यह बाद में सिरदर्द हो सकता है। आपकी सहायता के लिए बहुत धन्यवाद! – omnikron

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