2013-09-28 2 views
7

이전 버전의 Java Play 프레임 워크에서는 모니터링 에이전트를로드하는 명령 줄 argent를 제공 할 수있었습니다. 2.2의 출시와 함께Java Play 2.2는 javaagent를 지원하지 않습니다.

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

는, 재생 팀은 크게 시작 스크립트를 변경 예를 들어, NewRelic로드 할 수 있습니다. 내가 알 수 있듯이, java 에이전트를 더 이상 지원하지 않습니다. Java Play 2.2 이상에서 NewRelic을 실행 한 적이 있습니까? 재생 환경은 훌륭하지만, 프로덕션 환경에서 모니터 할 수 없다면 쓸데없는 기술입니다 ...

답변

12

당신이 (-D를 사용하여 시스템 속성 유사한 방식으로) -JJava 옵션을을 앞에 할 수있는 것 같다

$ bin/<app> -J-javaagent:lib/newrelic.jar 
스크립트 자체에서 주변에 파고 동안이 발견 된

하지만 주목 사용 요약 :

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

이것은 "작동"하는 동안 어떤 데이터도 얻지 못하고 있습니다 ... – penfold

+0

그레이트 발견 !! -J 인수로 인해 NewRelic 에이전트가로드되었습니다. 어떤 이유로 NewRelic 로그는 데이터를 전송하고 있음을 나타내지 만 NewRelic의 웹 UI는 업데이트되지 않습니다. 지원 팀으로부터 연락을 받으면 다시보고하겠습니다. – Chris

+0

지금 데이터를 받고있는 것 같습니다. 아이러니하게도, 나는 그 수집이 실패한 것 같아요. – penfold

1

Play Framework 2.2의 새로운 기본 패키지 프로그램을 사용하면 JAVA_OPTS 환경 변수에서 Java 옵션을 설정해야합니다.

+0

안녕하세요 제임스 - 좋은 제안. 이 시도했을 때 -D 플래그를 사용하여 시스템 속성에 대해 작동하지만 -J java 옵션에는 작동하지 않습니다. JAVA_OPTS 내보내기를 "-J-javaagent : /path/to/newrelic.jar -Dnewrelic.bootstrap_classpath = true"로 설정하면 javaagent가 시작되지 않았습니다. – Chris

+0

Bummer. 왜 이것이 작동하지 않는지 조사해 보겠습니다. 그것은해야하는 것처럼 보인다. –

+1

방금 ​​JAVA_OPTS = "- J-javaagent : path/java.newrelic-agent-3.0.1.jar"을 설정하고 작동했습니다. (play2.2, 새로운 유적, heroku 사용) – codaR0y

0

응용 프로그램 시작 스크립트가 다른 디렉토리로 변경되었습니다. javaagent 라이브러리를로드하려면 전체 경로를 지정해야합니다. Heroku가-javaagent-1.4.jar 프로젝트의 LIB 디렉토리에있는 경우

예를 들어, :이 PlayFramework 2.3.x를 작동

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

나는 에이전트 항아리 + YML 설정 파일을 복사 PLAY_APP_ROOT/lib

sbt start -J-javaagent:lib/newrelic.jar