Skip to content

Skywalking 各类程序配置

Java Agent 配置

  1. 在 Java Shell 启动环境变量中加上如下配置
shell
export SW_AGENT_NAME=jdcp-governor #Agent名字,一般使用`spring.application.name`
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=localhost:11800 #配置 Collector 地址。
export SW_AGENT_SPAN_LIMIT=2000 #配置链路的最大Span数量,默认为 300。
export JAVA_AGENT=-javaagent:/Users/zhenqin/software/apache-skywalking-apm-bin/skywalking-agent/skywalking-agent.jar
# java $JAVA_OPTS $JAVA_AGENT -jar|-cp jar classpath args
  1. 在 Java JVM 参数中加上如下配置
shell
-Dskywalking.agent.service_name=skywalking_mysql
-Dskywalking.collector.backend_service=localhost:11800
# 也可如下配置
-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]

Java Agent配置

  • 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。
  • 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: 日志文件的最大大小。当日志文件大小超过这个数,归档当前的日志文件,将日志写入到新文件。30010241024
  • logging.max_history_files: 最大历史记录日志文件。发生翻转时,如果日志文件超过此值,则最早的文件将被删除。默认情况下,负数或零表示关闭。-1
  • jvm.buffer_size: 收集JVM信息的buffer的大小。如果为true,endpoint的name为方法的全限定名,而不是请求的URL。默认为false。
  • plugin.toolit.use_qualified_name_as_operation_name: 如果为true,operation的name为方法的全限定名,而不是给定的operation name。默认为false。FALSE
  • plugin.jdbc.trace_sql_parameters: 如果设置为true,则将收集sql的参数(通常为java.sql.PreparedStatement)。FALSE
  • plugin.jdbc.sql_parameters_max_length: 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. 将被忽略)

加载步骤如下:

加载配置信息:${skywalking-agent}/config/agent.config -> 系统环境变量 -> Agent参数

优先级是从后往前, 即: 1.agent参数 > 2.系统环境变量 > 3.${skywalking-agent}/config/agent.config

Java 程序监控点

在 Java 工程 Maven pom 中加上如下依赖

xml
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>8.14.0</version>
</dependency>

在 Java 代码函数中加上如下注解

java
@Tags(Tag())
@Trace