agent 端配置
配置文件路径在 ./agent/config/agent.config 下
警告: 中文配置是8.0的, 可能存在修改情况
核心配置
- agent.service_name: 服务名称, 可以采用 <group name>::<logic name>, 包含 <group name> ,拓扑图会自动显示分组
- collector.backend_service: oap服务端地址
配置优先级
配置优先级, 每种配置功能一样, 没有区别, 不过存在优先级之分, 按如下顺序
- 系统属性, 例如 -Dskywalking.agent.service_name=abc
系统属性: 使用 skywalking. + 配置文件中的配置名 作为系统属性的配置名来覆盖配置文件中的值。
- 探针参数, 在 JVM 参数的探针路径后面增加配置,
-javaagent:/.../skywalking-agent.jar=agent.service_name=abc,logging.level=debug
, 多个用 ',' 分开, 如果值中包含 , = 则用 "" - 系统环境变量, 例如在agent.config 中有配置, agent.service_name, 则使用值配置的名称SW_AGENT_NAME用来做环境变量, 对应关系如下
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
logging.level=${SW_LOGGING_LEVEL:INFO}
# 使用环境变量覆盖
SW_AGENT_NAME=demo-application
SW_LOGGING_LEVEL=debug
- agent.config 配置文件
令牌认证
令牌身份验证是关于监控应用数据是可信的。
应用端 agent.config
agent.authentication = ${SW_AGENT_AUTHENTICATION:xxxx}
服务端 application.yml
receiver-sharing-server:
default:
authentication: ${SW_AUTHENTICATION:""}
如果令牌不正确,将会在 agent 端看到如下日志
org.apache.skywalking.apm.dependencies.io.grpc.StatusRuntimeException: PERMISSION_DENIED
注意: agent.config 中的配置默认是未打开状态, 因此可能无法读取到环境变量 SW_AGENT_AUTHENTICATION
常用的调试参数
spring mvc 参数收集
默认是false, 通过设置为true打开, 方便调试
plugin.springmvc.collect_http_params=${SW_SPRING_MVC_HTTP_PARAMETERS:false}
sql 参数收集
默认是false, 通过设置为true打开, 方便调试
plugin.jdbc.trace_sql_parameters=${SW_JDBC_TRACE_SQL_PARAMETERS:false}
skywalking 的追踪功能 可以查看到
image.png
警告: 线上环境可能存在信息泄露风险, 慎重使用
CDS 部分 (Configuration Discovery Service)
仅支持一下几个动态配置
image.png
注意: agent.trace.ignore_path 需要插件 apm-trace-ignore-plugin-8.5.0.jar
插件
分为 bootstrap 插件和 optional 插件
Java agent的所有插件都是可插拔的。在agent或第三方仓库的optional-plugins 文件夹下提供了可选的插件。 想要使用可选插件,你需要将对应插件移动到/plugins文件夹下。
已知的 Bootstrap 插件.
- JDK HttpURLConnection 插件. Agent 兼容 JDK 1.6+
- JDK Callable and Runnable 插件. Agent 兼容 1.6
目前,我们提供了如下的可选插件。
- 追踪Spring注解的bean
- 追踪Oracle和Resin
- 通过指定endpoint模式来过滤trace
- Gson序列化库
- Lettuce 5.x(JRE1.8+)
- Zookeeper 3.4.x。 将此插件定为可选插件的原因在于:会生成大量的业务不相关的trace,对agent和后端产生了额外的负载。并且,这些trace数据可能仅仅是心跳数据。
- 自定义增强 基于描述文件对方法进行追踪,而不是通过写插件或修改源代码。
- Spring Cloud Gateway 2.1.x 插件. 只有当你在 Spring Gateway 端安装了插件时才开启此插件.
由于意外风险,所有 Bootstrap 插件都是可选的。