在之前的案例中,我们每次部署应用都需要复制一份agent,修改其中的服务名称,这样显得非常麻烦。可以使用Skywalking提供的配置覆盖功能通过启动命令动态指定服务名,这样agent只需要部署一份即可。Skywalking支持的几种配置方式:
1、系统配置(System properties)使用 skywalking. + 配置文件中的配置名作为系统配置项来进行覆盖.
- 为什么需要添加前缀?
agent的系统配置和环境与目标应用共享,所以加上前缀可以有效的避免冲突。
- 案例
通过如下进行 agent.service_name 的覆盖
-Dskywalking.agent.service_name=skywalking_mysql
2、探针配置(Agent options)
Add the properties after the agent path in JVM arguments。
-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]
- 案例
通过 如下进行 agent.service_name 的覆盖
-javaagent:/path/to/skywalking-agent.jar=agent.service_name=skywalking_mysql
- 特殊字符
如果配置中包含分隔符( , 或者 = ) , 就必须使用引号包裹起来
-javaagent:/path/to/skywalking-agent.jar=agent.ignore_suffix='.jpg,.jpeg'
3、系统环境变量(System environment variables)
- 案例
由于agent.service_name配置项如下所示:
# The service name in UI
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
可以在环境变量中设置SW_AGENT_NAME的值来指定服务名。
4、覆盖优先级探针配置 > 系统配置 >系统环境变量 > 配置文件中的值
所以我们的启动命令可以修改为:
java -javaagent:/usr/local/skywalking/apache-skywalking-apm-bin/agent_mysql/skywalking-agent.jar - Dskywalking.agent.service_name=skywalking_mysql -jar skywalking_mysql.jar &
或
java -javaagent:/usr/local/skywalking/apache-skywalking-apm-bin/agent_mysql/skywalking-agent.jar=agent.service_name=skywalking_mysql -jar skywalking_mysql.jar &
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)