2013-09-28 9 views
7

जावा प्ले फ्रेमवर्क के पिछले संस्करण के साथ समर्थन नहीं करता है, हम निगरानी एजेंट लोड करने के लिए कमांड लाइन तर्क प्रदान कर सकते हैं। उदाहरण के लिए, NewRelic लोड किया जा सकता के रूप मेंजावा प्ले 2.2 जावा प्लेग

./path/to/start -javaagent:/path/to/newrelic.jar 

2,2 की रिलीज के साथ, प्ले टीम काफी शुरू स्क्रिप्ट बदल गया है। जो मैं बता सकता हूं, वह अब जावागेंट का समर्थन नहीं करता है। क्या जावा प्ले 2.2+ के साथ चल रहे न्यूरेलिक को कोई और मिला है? Play बहुत अच्छा है, लेकिन इसका बेकार तकनीक यदि आप इसे उत्पादन वातावरण में निगरानी नहीं कर सकते हैं ...

उत्तर

12

ऐसा लगता है कि आप -J साथजावा विकल्पों उपसर्ग कर सकते हैं (एक तरह से प्रणाली गुण-D उपयोग करने के समान में):

$ bin/<app> -J-javaagent:lib/newrelic.jar 

इस जबकि स्क्रिप्ट अपने आप में चारों ओर poking की खोज की लेकिन यह ध्यान दिया जाता है उपयोग सारांश में:

$ bin/<app> -h 
Usage: [options]  
... 
    -J-X    pass option -X directly to the java runtime 
        (-J is stripped) 
... 
+0

हालांकि यह "काम" लगता है मुझे कोई डेटा नहीं मिल रहा है ... – penfold

+0

ग्रेट मिल !! -जे तर्क ने न्यूरेलिक एजेंट को लोड करने का कारण बना दिया। किसी कारण से न्यूरेलिक लॉग इंगित करते हैं कि यह डेटा भेज रहा है, लेकिन न्यूरेलिक का वेब यूआई अपडेट नहीं हो रहा है। एक बार जब मैं उनकी सहायता टीम से सुनता हूं तो मैं वापस रिपोर्ट करूंगा। – Chris

+0

मुझे लगता है कि अब डेटा प्राप्त हो रहा है। विडंबना यह है कि, मुझे लगता है कि संग्रह विफल रहा था। – penfold

1

Play Framework 2.2 में नए मूल पैकेजर के साथ आपको JAVA_OPTS पर्यावरण चर में जावा विकल्प सेट करने की आवश्यकता है।

+0

हाय जेम्स - महान सुझाव। जब मैंने इसका प्रयास किया, तो यह-डी फ्लैग के साथ सिस्टम गुणों के लिए काम किया, लेकिन -जे जावा विकल्पों के लिए काम नहीं किया। जब मैं JAVA_OPTS निर्यात को "-J-javaagent: /path/to/newrelic.jar -Dnewrelic.bootstrap_classpath = true" के रूप में सेट करता हूं, तो जावागेंट प्रारंभ नहीं हुआ था। – Chris

+0

बमर। मैं जांच करूंगा कि यह क्यों काम नहीं करता है। ऐसा लगता है कि यह चाहिए। –

+1

मैंने बस अपना JAVA_OPTS = "- जे-जावाएन्ट: पथ/जावा.न्यूरेलिक-एजेंट-3.0.1.jar" सेट किया और यह काम किया। (play2.2, नया अवशेष, heroku का उपयोग कर) – codaR0y

0

प्ले फ्रेमवर्क संस्करण 2.2 में, एप्लिकेशन लॉन्च स्क्रिप्ट एक अलग निर्देशिका में बदल गई। जावाजेंट लाइब्रेरी को लोड करने के लिए, इसे अपना पूरा पथ निर्दिष्ट करना आवश्यक है।

उदाहरण के लिए, यदि Heroku-javaagent-1.4.jar परियोजना की lib निर्देशिका में है:

heroku config:set JAVA_OPTS="-Xmx384m -Xss512k -XX:+UseCompressedOops -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCDateStamps -javaagent:/app/lib/heroku-javaagent-1.4.jar=stdout=true,lxmem=true" 
0

यह PlayFramework 2.3.x लिए काम करता है मैं एजेंट जार + YML कॉन्फ़िग फ़ाइल की नकल की PLAY_APP_ROOT/lib

sbt start -J-javaagent:lib/newrelic.jar 
संबंधित मुद्दे