1. 程式人生 > >各大廠商伺服器匯入探針到 JVM 啟動引數參考說明書

各大廠商伺服器匯入探針到 JVM 啟動引數參考說明書


本文件將介紹如何在特定框架下傳遞 -javaagent 引數給 JVM。本文的操作步驟能夠確保將探針引入到你的應用中去。對於所有的應用伺服器,要確認定義的 -javaagent 引數是探針程式包的絕對路徑。
本文只針對 -javaagent 引數的傳入做一個簡要參考,對於探針的詳細安裝請參考 Java agent installation
譯者注:下文中統一使用 *newrelic.jar* 作為探針程式包示例。

Coldfusion

傳遞 -javaagent 給 Coldfusion:

  1. 啟動 ColdFusion 後開啟 ColdFusion 管理控制檯。
  2. 左側選單中,依次選擇 SERVER SETTINGS > Java and JVM
  3. 要使用探針 API 的話:在 ColdFusion Class Path 屬性里加入 newrelic-api.jar 的路徑。
  4. 加入 -javaagent 引數到 JVM Arguments 屬性:
-javaagent:/full/path/to/newrelic.jar
  1. 選擇 Submit Changes,然後重啟 ColdFusion 伺服器。

Geronimo

要傳遞 -javaagent 引數給 Geronimo,執行啟動命令的時候在 JAVA_OPTS 環境變數中加入探針程式包:

export JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar" && geronimo run

Glassfish

傳遞 -javaagent 引數給 Glassfish:

  1. 在 Glassfish 控制檯上依次選擇 Application Server > JVM Settings > JVM Options
  2. 在開啟的 JVM Options 頁面中,選擇 Add JVM Option
  3. 新增 -javaagent 引數:
-javaagent:/full/path/to/newrelic.jar
  1. 儲存並重啟 Glassfish。
    如果 Glassfish 啟動失敗,可能是 -javaagent 引數沒有正確設定。這時候你可以通過編輯 domain.xml 檔案的方式修改伺服器 JVM 引數。

Glassfish 2.1 之前的版本存在 bug:bootstrap 類載入器無法使用 Java logging API。2.1.1 之後的版本修復了這一缺陷。

Grails

傳遞 -javaagent 引數到 Grails:
run-app

  1. 非綠色版的 Grails。
  2. 執行命令
grails -noreloading -javaagent:/full/path/to/newrelic.jar run-app

run-war

  1. 編輯你的 Grails 應用中的這一檔案:
grails-app/conf/BuildConfig.groovy
  1. 新增或編輯以下 JVM 引數行:
grails.tomcat.jvmArgs = ["-javaagent:/full/path/to/newrelic.jar"]

JBoss

傳遞 -javaagent 引數給 JBoss:
domain 模式的設定 (6.x EAP 及 7.0 AS)
domain 模式下 JBoss 6.x EAP 及 7.0 AS 或以上:

  1. 編輯伺服器組的 JVM 屬性,該檔案位於:
domain/configuration/domain.xml
  1. 加入 -javaagent 引數:
<server-group name="main-server-group" profile="full">
  <jvm name="default">
  <jvm-options>
  <option value="-javaagent:/full/path/to/newrelic.jar"/>
  </jvm-options>
  </jvm>
  ...
</server-group>

standalone 模式的設定 (其他版本)
對於其他平臺及版本使用 standalone 模式:

平臺 指南
Unix / Mac OS,6.x EAP 或 7.0.x AS 及以上版本 bin/standalone.conf 檔案的尾部新增:JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar"
Windows,6.x EAP 或 7.0.x AS 或更高版本 bin/standalone.bat 檔案的這一行之前:set JBOSS_ENDORSED_DIRS=%JBOSS_HOME%\lib\endorsed,新增:set “JAVA_OPTS=-javaagent:C:/full/path/to/newrelic.jar %JAVA_OPTS%”
Unix / Mac OS,6.x 或更早版本 bin/run.conf 尾部新增:JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar"
Windows,6.x 或更早版本 bin/run.bat 檔案的這一行之前:set JBOSS_CLASSPATH=%RUN_CLASSPATH%,新增:set “JAVA_OPTS=-javaagent:C:/full/path/to/newrelic.jar %JAVA_OPTS%”

Jetty

傳遞 -javaagent 引數給 Jetty:

在你的 指令碼中編輯 JAVA_OPTIONS

export JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/full/path/to/newrelic.jar"

如果你在 start.ini 設定啟動資訊
在你的 start.ini 配置檔案中新增探針路徑:

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

Play

傳遞 -javaagent 引數給 Play:
Play 1.2.4
執行 Play 應用時追加 -javaagent 引數:

play run your_app_name -javaagent:/full/path/to/newrelic.jar

Play 2.0

  1. 包含 start 指令碼的綠色版:
play clean dist && unzip dist/*.zip
  1. 啟動 Play 應用時追加 -javaagent 引數:
cd unzipped/folder; chmod a+x start; ./start -javaagent:/full/path/to/newrelic.jar

Play 2.2

  1. 包含 start 指令碼的綠色版:
play clean dist && unzip target/directory/universal/*.zip
  1. 啟動 Play 應用時追加 -J-javaagent 引數:
cd unzipped/folder; ./bin/scriptname -J-javaagent:/full/path/to/newrelic.jar

Play 2.3, 2.4 及 2.5

  1. 包含 start 指令碼的綠色版:
activator clean dist && unzip target/directory/universal/*.zip
  1. 啟動 Play 應用時追加 -J-javaagent 引數:
cd unzipped/folder; ./bin/scriptname -J-javaagent:/full/path/to/newrelic.jar
  1. 如果你使用了 Typesafe Activator (Play 2.4),在 build.sbt 下新增這一行:
javaOptions ++= Seq("-javaagent:/full/path/to/newrelic.jar")

Resin

傳遞 -javaagent 引數給 Resin,只需將其新增到 resin.confresin.xml 檔案的 jvm-args 標籤下即可:

<jvm-arg>-javaagent:/full/path/to/newrelic.jar</jvm-arg>

Solr

傳遞 -javaagent 引數給 Solr:
Standalone Solr 5.x 或更高版本
新增 -javaagent 屬性到 bin/solr.in.sh

SOLR_OPTS="$SOLR_OPTS -javaagent:/full/path/to/newrelic.jar"

Standalone Solr 4.x 或更低版本
啟動命令中在 start.jar 前新增 -javaagent

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

伺服器模式 Solr
當 Solr 運行於一個應用伺服器下時,遵循本文件相關應用伺服器新增 -javaagent 引數的指示。還要確認該應用伺服器是否啟用 JMX。如果你在 APM UI 的 Solr 頁面下看不到資料,請參考 troubleshooting procedures for Solr data

Sring Boot

要傳遞 -javaagent 引數到 Spring Boot,只需要將其新增到啟動應用的命令列裡即可。但要確保在 -jar 引數前新增:

java -javaagent:/full/path/to/newrelic.jar -jar app.jar

Tanuki Wrapper

要傳遞 -javaagent 引數給 Tanuki Wrapper,需要在 wrapper.conf 檔案中新增一個 wrapper 選項。在以下示例行中,將 XXX 替換為一個未使用的數字即可:

wrapper.java.additional.XXX=-javaagent:/full/path/to/newrelic.jar

在 Linux 系統中不需要為這些設定值標使用引號進行標記。其他作業系統中可能會有所不同。

Tomcat

要傳遞 -javaagent 引數給 Tomcat:

使用 JAVA_OPTS 環境變數來配置探針:

export JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar"

catalina.bat 方式
如果你使用 catalina.bat 來啟動 Tomcat,在該檔案的前面部分設定 JAVA_OPTS 變數:

SET JAVA_OPTS=%JAVA_OPTS% -javaagent:/full/path/to/newrelic.jar

Windows 下

  1. 依次選擇 Start > Apache Tomcat X.Y.Z. > Configure Tomcat > Java
  2. Java Options 文字框中新增該引數。注意要使用正斜槓來做路徑分隔符。此外對於 Tomcat 6 還要在 -javaagent 引數後多加一個換行符。
-javaagent:/full/path/to/newrelic.jar
  1. 選擇 Apply,然後重啟 Tomcat。
    Apache Commons daemon
    Tomcat 6 版本的 Apache Commons Daemon (jsvc) 不支援 -javaagent 引數。儘管如此,一個基於 trunk 構建的包能夠通過 -X 字首來支援 -javaagent 引數。參考 Apache bug tracking the issue
    此外 Apache Commons 原始碼庫中對此也有修復。更多資訊:

Weblogic

要傳遞 -javaagent 給 Weblogic:
Linux 或 MacOS 上的管理端

  1. 在檔案的前邊部分,新增:
export JAVA_OPTIONS="$JAVA_OPTIONS -javaagent:/full/path/to/newrelic.jar"

Windows 上的管理端

  1. 在該 domain 下的 bin 目錄中編輯 startWebLogic.bat 檔案。
  2. 在檔案的前邊部分,新增:
set JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:"C:\full\path\to\newrelic.jar"

被管理端
對於管理端例項要遵循上述 Linux/MacOS 或 Windows 指示。不可以使用管理端控制檯來安裝管理端例項。
對於被管理端伺服器例項,使用管理端控制檯:

  1. 在管理端控制檯上,依次切換 Environments > Servers > (select a server) > Server Start > Arguments
  2. Arguments 項中新增:
-javaagent:/full/path/to/newrelic.jar
  1. 儲存該頁面配置,然後重啟該服務例項。

WebSphere

要傳遞 -javaagent 引數給 WebSphere:

  1. 在管理控制檯,依次選擇 Servers > Application servers > (select a server) > Configuration > Service Infrastructure > Java and Process Management
  2. 選擇 Process Definition > Additional Properties,然後選擇 Java Virtual Machine
  3. Generic JVM arguments 屬性中,新增 -javaagent 變數:
-javaagent:/full/path/to/newrelic.jar

WebSphere Community

要傳遞 -javaagent 引數給 WebSphere Community 版本,只需要在執行 startup 命令前將其包含於 JAVA_OPTS 環境變數即可:

export JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar" && startup

WebSphere Liberty Profile

傳遞 -javaagent 引數給 WebSphere Liberty Profile:

  1. 編輯 ${server.config.dir}/jvm.options
  2. 新增 -javaagent 引數以指向你的探針檔案:
-javaagent:/full/path/to/newrelic.jar
  1. 重啟伺服器。

Wildfly

傳遞 -javaagent 引數給 Wildfly (如果使用 Wildfly 11 或更高版本,請參考 additional install instructions):
domain 模式

  1. 為伺服器組修改 JVM 屬性,該檔案為:
domain/configuration/domain.xml
  1. 加入 -javaagent 引數:
<server-group name="main-server-group" profile="full">
  <jvm name="default">
  <jvm-options>
  <option value="-javaagent:/full/path/to/newrelic.jar"/>
  </jvm-options>
  </jvm>
  ...
</server-group>

standalone 模式

平臺 指南
Unix 或 OS 在 bin/standalone.conf 的尾部新增:JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar"
Windows 在 bin/standalone.bat 中找到這一行:rem Setup JBoss specific properties,然後在其後新增:set “JAVA_OPTS=-javaagent:C:/full/path/to/newrelic.jar %JAVA_OPTS%”

其他應用伺服器

Java 探針可以運行於任何 supported app server。如果你的應用伺服器沒有在這個列表中,請遵循標準新增步驟,即在應用 jar 前將這一引數傳遞給 JVM:
-javaagent:/full/path/to/newrelic.jar

更多幫助

進一步學習推薦:

相關推薦

廠商伺服器匯入探針JVM 啟動引數參考說明書

本文件將介紹如何在特定框架下傳遞 -javaagent 引數給 JVM。本文的操作步驟能夠確保將探針引入到你的應用中去。對於所有的應用伺服器,要確認定義的 -javaagent 引數是探針程式包的絕對路徑。 本文只針對 -javaagent 引數的傳入做一個簡

廠商企業級BOM解決方案PK

節點和 sce 響應 重要 管理系統 出現 left IE 分析系統 傳統的PDM對於靜態的BOM數據管理不再有意義,真正有業務價值的系統應該做到讓和產品信息相關的參與者和數據都與業務流程緊密結合,使得利益相關者對於產品的構成、產品的狀態、產品如何設計、產品如何制造、所依據

人臉識別的廠商

礦視faceID https://faceid.com/ 曠視人工智慧平臺 https://www.faceplusplus.com.cn/v2/pricing-details/ 雲從科技 https://ai.cloudwalk.cn/ 海康 https://open.hikvis

手機CPU廠商以及手機 cpu架構體系分類

本人準備瞭解手機cpu相關知識,這對於開發android應用程式適應各個廠商有一定的輔助作用,希望能得到各位朋友的支援與指導,不吝賜教,有好的文章請回覆在連結謝謝。 手機CPU各大廠商 引用連結 1 德州儀器 這個品牌想必大家都不陌

通過ps -ef | grep java檢視到java程序相應jvm啟動引數

/opt/ln/java/bin/java -server -Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -Xmn2g -XX:MaxDirectMemorySize=1g -XX:SurvivorRatio

JVM啟動引數 -D作用

原文:https://blog.csdn.net/u012345283/article/details/40823637 JVM啟動引數 -D是用來做什麼的呢?去查詢了一下官方解釋: Set a system property value. If value is a s

jvm 啟動引數設定

jvm記憶體區域劃分 Eden Space、Survivor Space、Tenured Gen jvm區域總體分兩類,heap區和非heap區。heap區又分:Eden Space(伊甸園)、Survivor Space(倖存者區)、Tenured Gen

idea配置jvm啟動引數

前言:         最近在看《深入理解JAVA虛擬機器》這本書,需要在IDE中設定JVM的一些引數資訊。本人使用的是idea,所以記錄一下如何使用idea配置JVM引數。 1、Run-EditCo

JVM啟動引數用法及釋義

本篇文章記錄一下日常用到的一些JVM啟動引數及相關功能釋義 基於Jdk8 JVM概述 JVM即Java Virtual Machine,用於執行任何被編譯為Java bytecode的java程式, 同時相容各個作業系統底層或硬體差異, 始終保證執行結果一致。可

Jvm啟動引數設定

引言: 在google、baidu中輸入關鍵字,出現的連結大部分都是關於: 1、jdk提供java 命令引數說明 2、eclipse啟動引數配置(即eclipse.ini檔案的配置) 很少有一篇文章對這些引數在各個環境中的配置進行一個整體上的總結。故小生在此故弄玄虛一把,請

JVM 啟動引數說明

-XX:NewSize 設定新物件生產堆記憶體 -XX:MaxNewSize: 設定最大新物件生產堆記憶體 -XX:SurvivorRatio 設定新物件身纏堆記憶體的比例 -Xms 設定堆記憶體池的最小值 -Xmx 設定堆記憶體池的最大值 -xnoclassgc 取消垃圾

JVM啟動引數大全

 前段時間系統升級時遭遇了OOM,具體解決過程見 遭遇OutOfMemoryError;為了鞏固對於java啟動各項引數的認識,決定將所有引數列舉出來,並一一解釋,以便後查;java啟動引數共分為三類;其一是標準引數(-),所有的JVM實現都必須實現這些引數的功能,而且向後相

resin設定jvm啟動引數

在resin.xml的 <cluster id="web">後面加上 <server-default>     <jvm-arg>-Xms4096m</jvm-arg>     <jvm-arg>-Xmx2048m

JVM啟動引數大全及預設值

Java啟動引數共分為三類; 其一是標準引數(-),所有的JVM實現都必須實現這些引數的功能,而且向後相容; 其二是非標準引數(-X),預設jvm實現這些引數的功能,但是並不保證所有jvm實現都滿足,且不保證向後相容; 其三是非Stable引數(-XX),

JVM啟動引數的類別及使用

本文和大家重點討論一下JVM啟動引數,JVM啟動引數共分為三類,分別是標準引數(-),非標準引數(-X)和非Stable引數(-XX),相信本文介紹一定會讓你有所收穫。 JVM啟動引數還是比較實用的,於是我研究了一下它的用法,前段時間下了et專案,啟動jBoss的時候出現

JVM 啟動引數詳解

JAVA虛擬機器(JVM)通過作業系統命令JAVA_HOME\bin\java –option 來啟動,-option為虛擬機器引數,JAVA_HOME為JDK安裝路徑,通過這些引數可對虛擬機器的執行狀態進行調整,掌握引數的含義可對虛擬機器的執行模式有更深入的理解。虛擬機器

Android調app許可權設定介面(適配手機廠商終極版本)

背景:        眾所周知,國內的android是在google之上,各大手機廠商加了一層,諸如MIUI、EUI,之類的系統。因此在我們開發過程中想調出某應用的許可權設定頁面,調出的是google原生的許可權控制介面,但是我們在此頁授予應用許可權後,實際上應用還是沒有許可

GIS——地圖廠商為什麼偏愛web墨卡託投影

一、引言       本科地理學的時候學了一推投影,沒用的居多,現在常用的就是高斯投影、墨卡託投影(橫軸墨卡託[UTM,高斯]),但是當時也沒學好,這裡就介紹一下網路地圖最常用的web墨卡託投影了

Android手機廠商開發文件

Android系統開源,使得市場競爭這一塊很大,各大手機廠商為了建立自己的特有風格,都去原有系統上修改,為了我們開發增大很懂難度,所以我們需要知道各大手機廠商的文件,方便我們去適配和相容我們的App; 一加、360等手機廠商,有的沒有,還有的沒找

[RTMP] 國內視訊直播CDN廠商推流搶流行為分析

# 背景 當存在一個推流客戶端正在向**rtmp://xxx.com/live/yyy**推流時,又有另外一個推流客戶端同時對這個地址進行推流,會發生什麼呢? 查閱了 [Adobe RTMP Spec](https://www.adobe.com/devnet/rtmp.html) 發現規範本身並未說明和定