Skywalking系列博客4-Java Agent配置參數詳細說明


轉載自博客:https://blog.csdn.net/lilizhou2008/article/details/107050692

TIPS

本文基於Skywalking 6.6.0編寫,除特別注明的小節外,理論支持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. 未設置
agent.service_name 在SkyWalking UI中展示的服務名。5.x版本對應Application,6.x版本對應Service。 建議:為每個服務設置個唯一的名字,服務的多個服務實例為同樣的服務名 Your_ApplicationName
agent.sample_n_per_3_secs 負數或0表示不采樣,默認不采樣。SAMPLE_N_PER_3_SECS表示每3秒采樣N條。 未設置
agent.authentication 鑒權是否開啟取決於后端的配置,可查看application.yml的詳細描述。對於大多數的場景,需要后端對鑒權進行擴展。目前僅實現了基本的鑒權功能。 未設置
agent.span_limit_per_segment 單個segment中的span的最大個數。通過這個配置項,Skywalking可評估應用程序內存使用量。 300
agent.ignore_suffix 如果這個集合中包含了第一個span的操作名,這個segment將會被忽略掉。 未設置
agent.is_open_debugging_class 如果為true,skywalking會將所有經Instrument轉換過的類文件保存到/debugging文件夾下。Skywalking團隊會要求你提供這些類文件以解決兼容性問題。 未設置
agent.active_v2_header 是否默認使用v2版本的header。 true
agent.instance_uuid 實例id。skywalking會將實例id相同的看做一個實例。如果為空,skywalking agent會生成一個32位的uuid。 ""
agent.instance_properties[key]=value 添加服務實例的定制屬性。 未設置
agent.cause_exception_depth agent記錄的異常時,代理進入的深度 5
agent.active_v1_header 是否默認使用v1版本的header。 false
agent.cool_down_threshold 收到reset命令后,代理應等待多久(以分鍾為單位)才能重新注冊到OAP服務器。 10
agent.force_reconnection_period 根據grpc_channel_check_interval強制重新連接grpc。 1
agent.operation_name_threshold operationName最大長度,不建議將此值設置為> 500。 500
collector.grpc_channel_check_interval 檢查grpc的channel狀態的時間間隔。 30
collector.app_and_service_register_check_interval 檢查應用和服務的注冊狀態的時間間隔。 3
collector.backend_service 接收skywalking trace數據的后端地址 127.0.0.1:11800
collector.grpc_upstream_timeout grpc客戶端向上游發送數據時的超時時間,單位秒。 30 秒
logging.level 日志級別。默認為debug。 DEBUG
logging.file_name 日志文件名 skywalking-api.log
logging.output 日志輸出,默認FILE。CONSOLE表示輸出到stdout。 FILE
logging.dir 日志目錄。默認為空串,表示使用"system.out"輸出日志。 ""
logging.pattern 日志記錄格式。所有轉換說明符:
%level 表示日志級別。
%timestamp 表示現在的時間,格式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 日志文件的最大大小。當日志文件大小超過這個數,歸檔當前的日志文件,將日志寫入到新文件。 300 * 1024 * 1024
logging.max_history_files 最大歷史記錄日志文件。發生翻轉時,如果日志文件超過此值,則最早的文件將被刪除。默認情況下,負數或零表示關閉。 -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的參數信息。默認為false,表示僅記錄操作名,不記錄參數信息。 false
plugin.mongodb.filter_length_limit 如果設為正數,WriteRequest.params 將被截斷為該長度,否則將被完全保存,這可能會導致性能問題。 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 如果設置為true,則將收集sql的參數(通常為java.sql.PreparedStatement)。 false
plugin.mysql.sql_parameters_max_length 如果設置為正數,db.sql.parameters 將被截斷為該長度,否則將被完全保存,這可能會導致性能問題。 512
plugin.postgresql.trace_sql_parameters 如果設置為true,則將收集sql的參數(通常為java.sql.PreparedStatement)。 false
plugin.postgresql.sql_parameters_max_length 如果設置為正數,db.sql.parameters 將被截斷為該長度,否則將被完全保存,這可能會導致性能問題。 512
plugin.solrj.trace_statement 如果為true,則在Solr查詢請求中跟蹤所有查詢參數(包括deleteByIds和deleteByQuery) false
plugin.solrj.trace_ops_params 如果為true,則跟蹤Solr請求中的所有操作參數 false
plugin.light4j.trace_handler_chain 如果為true,請跟蹤Light4J的請求的所有中間件/業務handler。 false
plugin.opgroup.* 支持操作名稱自定義不同插件中的組的規則。詳見 支持組規則的插件 未設置
plugin.springtransaction.simplify_transaction_definition_name 設為true,則簡化事務定義名稱。 false
plugin.jdkthreading.threading_class_prefixes 將對名稱與任意一個 THREADING_CLASS_PREFIXES (多個使用 , 分隔)匹配的線程化類( java.lang.Runnable 和 java.util.concurrent.Callable )及其子類進行 Instrument,請確保僅將窄前綴指定為您希望Instrument的前綴(安全考慮, java. 和 javax. 將被忽略) 未設置

Java Agent配置方式

agent配置有多種姿勢,上面修改 agent.config 文件中的值,只是其中一種。下面專門探討agent支持的配置方式。

系統屬性(-D)

使用 -Dskywalking. + agent.config配置文件中的key 即可。例如:

agent.config 文件中有一個屬性名為 agent.service_name ,那么如果使用系統屬性的方式,則可以寫成

java -javaagent:/opt/agent/skywalking-agent.jar -Dskywalking.agent.service_name=你想設置的值 -jar somr-spring-boot.jar

代理選項

在JVM參數中的代理路徑之后添加屬性即可。格式:

-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]

例如:

java -javaagent:/opt/agent/skywalking-agent.jar=agent.service_name=你想設置的值 -jar somr-spring-boot.jar

系統環境變量

agent.config 文件中默認的大寫值,都可以作為環境變量引用。例如,agent.config 中有如下內容

agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}

這說明Skywalking會讀取名為 SW_AGENT_NAME 的環境變量。

優先級

代理選項 > 系統屬性(-D) > 系統環境變量 > 配置文件

參考文檔

https://github.com/apache/skywalking/blob/v6.6.0/docs/en/setup/service-agent/java-agent/README.md

本文首發

http://www.itmuch.com/skywalking/java-agent-config/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM