Skywalking系列博客4-Java Agent配置

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.Runnablejava.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/

本文由博客一文多发平台 OpenWrite 发布!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349