0

你好,stackoverflow 的仁慈社区,我有一个在 Red hat、Nginx、Jruby with sinatra 和 Passenger Enterprise 上运行的 Web 服务堆栈。我的最终目标是启用可以推送到我的 App Dynamics 控制器(由 SaaS 托管)中的 JMX 指标。

App Dynamics 安装相对容易配置,尽管指标没有通过。我认为 JMX 未启用,我正在尝试找到初始化 JVM 以供客运企业启动 java 的脚本。我一直未能准确跟踪在何处输入附加参数以启用 JMX。

这是我当前所有的 java 应用程序

root     19260     1  0 Mar20 ?        00:05:12 /usr/lib/jvm/jre/bin/java -Xmx500m -Xss2048k -Djffi.boot.library.path=/opt/jruby-1.7.12/lib/jni -Xbootclasspath/a:/opt/jruby-1.7.12/lib/jruby.jar -classpath : -Djruby.home=/opt/jruby-1.7.12 -Djruby.lib=/opt/jruby-1.7.12/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main mojo_copytruncate.rb
nobody   20996 20861  4 17:02 ?        00:02:42 java -Xmx500m -Xss2048k -Djffi.boot.library.path=/opt/jruby-1.7.12/lib/jni -Xbootclasspath/a:/opt/jruby-1.7.12/lib/jruby.jar -classpath : -Djruby.home=/opt/jruby-1.7.12 -Djruby.lib=/opt/jruby-1.7.12/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main /opt/passenger/passenger-enterprise-server-5.0.4/helper-scripts/rack-loader.rb

我感兴趣的是从 rack-loader.rb 获取 JMX 指标。

这是我追溯 PPID 20861 时的过程

root     20861 20858  0 17:02 ?        00:00:09 PassengerAgent server
nobody   20996 20861  4 17:02 ?        00:02:42 java -Xmx500m -Xss2048k -Djffi.boot.library.path=/opt/jruby-1.7.12/lib/jni -Xbootclasspath/a:/opt/jruby-1.7.12/lib/jruby.jar -classpath : -Djruby.home=/opt/jruby-1.7.12 -Djruby.lib=/opt/jruby-1.7.12/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main /opt/passenger/passenger-enterprise-server-5.0.4/helper-scripts/rack-loader.rb

我不知道在哪里可以找到PassengerAgent 服务器中的配置...

4

1 回答 1

0

找到了我自己的解决方案。

由于PassengerAgent 使用名为rack-loader.rb 的ruby 脚本启动,因此每当使用RVM 时我都应该附加Java 代理。这个解决方案适合我的场景,因为我们的堆栈完全基于 Ruby,并且没有其他任何东西可以运行 RVM。为了传递 java 代理,我在 /etc/profile.d/ 文件夹中创建了一个名为 appdynamics.sh 的脚本。

我在里面写

export AGENT_HOME=YOUR_AGENT_FILE_PATH.jar
export JRUBY_OPTS=-J-javaagent:$AGENT_HOME

重新启动您的终端,它应该将其加载为环境变量。指标很好。

于 2015-03-28T20:38:01.720 回答