2013-09-28 242 views
7

Với phiên bản trước của khung công tác Java Play, chúng tôi có thể cung cấp một dòng lệnh argent để tải các tác nhân giám sát. Ví dụ: NewRelic có thể được tải dưới dạngJava Play 2.2 không hỗ trợ javaagent

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

Với việc phát hành 2.2, nhóm Play đã thay đổi đáng kể tập lệnh bắt đầu. Từ những gì tôi có thể nói, nó không còn hỗ trợ javaagents nữa. Có bất kỳ người nào khác nhận được NewRelic chạy với Java Play 2.2+? Chơi là tuyệt vời, nhưng công nghệ vô dụng của nó nếu bạn không thể giám sát nó trong một môi trường sản xuất ...

Trả lời

12

Dường như bạn có thể thêm tiền tố tùy chọn Java với -J (một cách tương tự để thuộc tính hệ thống sử dụng -D):

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

phát hiện trong khi điều này chọc xung quanh trong kịch bản gốc nhưng cần lưu ý trong tóm tắt sử dụng:

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

Trong khi điều này dường như "làm việc" tôi không nhận được bất kỳ dữ liệu ... – penfold

+0

Tìm thấy tuyệt vời !! Đối số -J làm cho tác nhân NewRelic được tải. Vì một số lý do, nhật ký NewRelic cho biết nó đang gửi dữ liệu, nhưng giao diện người dùng web của NewRelic không cập nhật. Tôi sẽ báo cáo lại khi tôi nghe từ nhóm hỗ trợ của họ. – Chris

+0

Tôi dường như đang nhận dữ liệu ngay bây giờ. Trớ trêu thay, tôi nghĩ bộ sưu tập đã thất bại. – penfold

1

Với trình đóng gói gốc mới trong Play Framework 2.2, bạn cần đặt tùy chọn Java trong biến môi trường JAVA_OPTS.

+0

Xin chào James - Đề xuất tuyệt vời. Khi tôi cố gắng này, nó làm việc cho các thuộc tính hệ thống với cờ -D, nhưng không làm việc cho các tùy chọn java -J. Khi tôi đặt xuất JAVA_OPTS là "-J-javaagent: /path/to/newrelic.jar -Dnewrelic.bootstrap_classpath = true", javaagent không được bắt đầu. – Chris

+0

Rất tiếc. Tôi sẽ điều tra tại sao điều này không hiệu quả. nó có vẻ như nó nên. –

+1

Tôi chỉ cần đặt JAVA_OPTS = "- J-javaagent: path/java.newrelic-agent-3.0.1.jar" và nó hoạt động. (sử dụng play2.2, di tích mới, heroku) – codaR0y

0

Trong khung chơi phiên bản 2.2, tập lệnh khởi chạy ứng dụng được thay đổi thành một thư mục khác. Để tải thư viện javaagent, cần phải xác định đường dẫn đầy đủ của nó.

Ví dụ, nếu Heroku-javaagent-1.4.jar là trong lib thư mục của dự án:

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

này làm việc cho play framework 2.3.x tôi sao chép các đại lý jar + yml tập tin cấu hình tới PLAY_APP_ROOT/lib

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