TIPS
本文基于Skywalking 6.6.0編寫扭弧,除特別注明的小節(jié)外,理論支持Skywalking 6.0+记舆。
本文詳細探討Java Agent的配置鸽捻。
Java Agent支持的配置屬性
TIPS
本表格基于Skywalking 6.6.0,官方文檔詳見:
https://github.com/apache/skywalking/blob/v6.6.0/docs/en/setup/service-agent/java-agent/README.md
,其他版本配置項不完全相同御蒲,請自行將鏈接中的v6.6.0
修改成你所使用的版本衣赶。
屬性名 | 描述 | 默認值 |
---|---|---|
agent.namespace |
命名空間,用于隔離跨進程傳播的header厚满。如果進行了配置府瞄,header將為HeaderName:Namespace . |
未設(shè)置 |
agent.service_name |
在SkyWalking UI中展示的服務(wù)名。5.x版本對應(yīng)Application碘箍,6.x版本對應(yīng)Service摘能。 建議:為每個服務(wù)設(shè)置個唯一的名字,服務(wù)的多個服務(wù)實例為同樣的服務(wù)名 | Your_ApplicationName |
agent.sample_n_per_3_secs |
負數(shù)或0表示不采樣敲街,默認不采樣团搞。SAMPLE_N_PER_3_SECS表示每3秒采樣N條。 | 未設(shè)置 |
agent.authentication |
鑒權(quán)是否開啟取決于后端的配置多艇,可查看application.yml的詳細描述逻恐。對于大多數(shù)的場景,需要后端對鑒權(quán)進行擴展峻黍。目前僅實現(xiàn)了基本的鑒權(quán)功能复隆。 | 未設(shè)置 |
agent.span_limit_per_segment |
單個segment中的span的最大個數(shù)。通過這個配置項姆涩,Skywalking可評估應(yīng)用程序內(nèi)存使用量挽拂。 | 300 |
agent.ignore_suffix |
如果這個集合中包含了第一個span的操作名,這個segment將會被忽略掉骨饿。 | 未設(shè)置 |
agent.is_open_debugging_class |
如果為true亏栈,skywalking會將所有經(jīng)Instrument轉(zhuǎn)換過的類文件保存到/debugging 文件夾下。Skywalking團隊會要求你提供這些類文件以解決兼容性問題宏赘。 |
未設(shè)置 |
agent.active_v2_header |
是否默認使用v2版本的header绒北。 | true |
agent.instance_uuid |
實例id。skywalking會將實例id相同的看做一個實例察署。如果為空闷游,skywalking agent會生成一個32位的uuid。 | "" |
agent.instance_properties[key]=value |
添加服務(wù)實例的定制屬性贴汪。 | 未設(shè)置 |
agent.cause_exception_depth |
agent記錄的異常時脐往,代理進入的深度 | 5 |
agent.active_v1_header |
是否默認使用v1版本的header。 | false |
agent.cool_down_threshold |
收到reset命令后扳埂,代理應(yīng)等待多久(以分鐘為單位)才能重新注冊到OAP服務(wù)器业簿。 | 10 |
agent.force_reconnection_period |
根據(jù)grpc_channel_check_interval強制重新連接grpc。 | 1 |
agent.operation_name_threshold |
operationName最大長度聂喇,不建議將此值設(shè)置為> 500辖源。 | 500 |
collector.grpc_channel_check_interval |
檢查grpc的channel狀態(tài)的時間間隔。 | 30 |
collector.app_and_service_register_check_interval |
檢查應(yīng)用和服務(wù)的注冊狀態(tài)的時間間隔希太。 | 3 |
collector.backend_service |
接收skywalking trace數(shù)據(jù)的后端地址 | 127.0.0.1:11800 |
collector.grpc_upstream_timeout |
grpc客戶端向上游發(fā)送數(shù)據(jù)時的超時時間克饶,單位秒。 |
30 秒 |
logging.level |
日志級別誊辉。默認為debug矾湃。 | DEBUG |
logging.file_name |
日志文件名 | skywalking-api.log |
logging.output |
日志輸出,默認FILE堕澄。CONSOLE表示輸出到stdout邀跃。 | FILE |
logging.dir |
日志目錄。默認為空串蛙紫,表示使用"system.out"輸出日志拍屑。 | "" |
logging.pattern |
日志記錄格式。所有轉(zhuǎn)換說明符: * %level 表示日志級別坑傅。* %timestamp 表示現(xiàn)在的時間僵驰,格式yyyy-MM-dd HH:mm:ss:SSS 。* %thread 表示當前線程的名稱唁毒。* %msg 表示消息蒜茴。* %class 表示TargetClass的SimpleName。* %throwable 表示異常浆西。* %agent_name 表示agent.service_name
|
%level %timestamp %thread %class : %msg %throwable |
logging.max_file_size |
日志文件的最大大小粉私。當日志文件大小超過這個數(shù),歸檔當前的日志文件近零,將日志寫入到新文件诺核。 | 300 * 1024 * 1024 |
logging.max_history_files |
最大歷史記錄日志文件。發(fā)生翻轉(zhuǎn)時久信,如果日志文件超過此值猪瞬,則最早的文件將被刪除。默認情況下入篮,負數(shù)或零表示關(guān)閉陈瘦。 | -1 |
jvm.buffer_size |
收集JVM信息的buffer的大小。 | 60 * 10 |
buffer.channel_size |
buffer的channel大小潮售。 | 5 |
buffer.buffer_size |
buffer的大小 | 300 |
dictionary.service_code_buffer_size |
The buffer size of application codes and peer | 10 * 10000 |
dictionary.endpoint_name_buffer_size |
The buffer size of endpoint names and peer | 1000 * 10000 |
plugin.peer_max_length |
Peer最大描述限制 | 200 |
plugin.mongodb.trace_param |
如果為true痊项,記錄所有訪問MongoDB的參數(shù)信息。默認為false酥诽,表示僅記錄操作名鞍泉,不記錄參數(shù)信息。 | false |
plugin.mongodb.filter_length_limit |
如果設(shè)為正數(shù)肮帐,WriteRequest.params 將被截斷為該長度咖驮,否則將被完全保存边器,這可能會導(dǎo)致性能問題。 |
256 |
plugin.elasticsearch.trace_dsl |
如果為true托修,記錄所有訪問ElasticSearch的DSL信息忘巧。默認為false。 | false |
plugin.springmvc.use_qualified_name_as_endpoint_name |
如果為true睦刃,endpoint的name為方法的全限定名砚嘴,而不是請求的URL。默認為false涩拙。 | false |
plugin.toolit.use_qualified_name_as_operation_name |
如果為true际长,operation的name為方法的全限定名,而不是給定的operation name兴泥。默認為false工育。 | false |
plugin.mysql.trace_sql_parameters |
如果設(shè)置為true,則將收集sql的參數(shù)(通常為java.sql.PreparedStatement )搓彻。 |
false |
plugin.mysql.sql_parameters_max_length |
如果設(shè)置為正數(shù)翅娶,db.sql.parameters 將被截斷為該長度,否則將被完全保存好唯,這可能會導(dǎo)致性能問題竭沫。 |
512 |
plugin.postgresql.trace_sql_parameters |
如果設(shè)置為true,則將收集sql的參數(shù)(通常為java.sql.PreparedStatement )骑篙。 |
false |
plugin.postgresql.sql_parameters_max_length |
如果設(shè)置為正數(shù)蜕提,db.sql.parameters 將被截斷為該長度,否則將被完全保存靶端,這可能會導(dǎo)致性能問題谎势。 |
512 |
plugin.solrj.trace_statement |
如果為true,則在Solr查詢請求中跟蹤所有查詢參數(shù)(包括deleteByIds和deleteByQuery) | false |
plugin.solrj.trace_ops_params |
如果為true杨名,則跟蹤Solr請求中的所有操作參數(shù) | false |
plugin.light4j.trace_handler_chain |
如果為true脏榆,請跟蹤Light4J的請求的所有中間件/業(yè)務(wù)handler。 | false |
plugin.opgroup.* |
支持操作名稱自定義不同插件中的組的規(guī)則台谍。詳見 支持組規(guī)則的插件 | 未設(shè)置 |
plugin.springtransaction.simplify_transaction_definition_name |
設(shè)為true须喂,則簡化事務(wù)定義名稱。 | false |
plugin.jdkthreading.threading_class_prefixes |
將對名稱與任意一個 THREADING_CLASS_PREFIXES (多個使用 , 分隔)匹配的線程化類( java.lang.Runnable 和 java.util.concurrent.Callable )及其子類進行 Instrument趁蕊,請確保僅將窄前綴指定為您希望Instrument的前綴(安全考慮坞生, java. 和 javax. 將被忽略) |
未設(shè)置 |
Java Agent配置方式
agent配置有多種姿勢,上面修改 agent.config
文件中的值掷伙,只是其中一種是己。下面專門探討agent支持的配置方式。
系統(tǒng)屬性(-D)
使用 -Dskywalking.
+ agent.config配置文件中的key
即可任柜。例如:
agent.config
文件中有一個屬性名為 agent.service_name
卒废,那么如果使用系統(tǒng)屬性的方式沛厨,則可以寫成
java -javaagent:/opt/agent/skywalking-agent.jar -Dskywalking.agent.service_name=你想設(shè)置的值 -jar somr-spring-boot.jar
代理選項
在JVM參數(shù)中的代理路徑之后添加屬性即可。格式:
-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]
例如:
java -javaagent:/opt/agent/skywalking-agent.jar=agent.service_name=你想設(shè)置的值 -jar somr-spring-boot.jar
系統(tǒng)環(huán)境變量
agent.config
文件中默認的大寫值摔认,都可以作為環(huán)境變量引用逆皮。例如,agent.config
中有如下內(nèi)容
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
這說明Skywalking會讀取名為 SW_AGENT_NAME
的環(huán)境變量级野。
優(yōu)先級
代理選項
> 系統(tǒng)屬性(-D)
> 系統(tǒng)環(huán)境變量
> 配置文件
參考文檔
https://github.com/apache/skywalking/blob/v6.6.0/docs/en/setup/service-agent/java-agent/README.md
本文首發(fā)
http://www.itmuch.com/skywalking/java-agent-config/
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!