配置覆盖 | 学习笔记

简介: 快速学习配置覆盖

开发者学堂课程【分布式链路追踪 Skywalking配置覆盖】学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/743/detail/13161


配置覆盖


内容介绍:

一、学前需知

二、Skywalking 支持的几种配置方式:

三、演示


一、学前需知

skywalking 的插件,了解 skywalking 的一个重要特性:配置覆盖。在之前的案例中,每次部署应用都需要复制一份agent,因为需要修改其中的服务名称,服务名称是在 agent 配置文件中指定的,故复制一份agent,覆盖服务名。这样可以区别每次的服务名都是不同的。这样非常麻烦。所以可以使用Skywalking提供的配置覆盖功能通过启动命令动态指定服务名,来进行服务名的覆盖,这样每次启动 jar 包时,指定不同的服务名,用的同一个 agent 。


二、Skywalking 支持的几种配置方式:

1、系统配置:

在使用 jar -jar 命令时我们可以通过 - D 来指定参数,参数格式为 skywalking. 再 +配置文件作为系统配置来进行覆盖。当前的服务名称的配置项: agent.service_name 。通过系统配置来进行配置的变更,则需要如此写:

-Dskywa1king.agent.service_name=skywalkirg_mysq1

2、探针配置

针对 javaagent 它的一个 jar 包来启动时指定一个参数。标准格式

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

所以案列:

-javaagent:/path/to/skywalking-agent.jar=agent.servjce_name=skywalking_mysql

通过这种方式也可以进行配置,假设在配置项的值里面加入一些特殊字符 比如 ,或 = 。这些为分隔符,如果配置中包含分隔符,必须使用引号包裹起来。 skywalking 在加载配置时会去掉引号,并将引号内的字符串当成一个配置的值进行处理。

3、系统环境变量:

在环境变量中设置一些值,这些值的 t 指的是在配置文件指定的字符串:SW_AGENT_NAME  ,可以在环境变量中设置SW_AGENT_NAME的值来指定服务名。

4、配置文件中的值:

在配置文件中有一个默认的值 Your_ApplicationName ,假设上面三种方式都不设置值,就会使用 Your_ApplicationName。

5、在 skywalking 中配置有优先级,覆盖优先级为:

探针配置>系统配置>系统环境变量>配置文件中的值

通过上面这种方式配置覆盖,可以在每次启动应用时指定不同名字


三、演示

可以使用探针配置,系统配置来进行指定,演示探针配置,探针配置就是在 .jar 后加一个项目名,同时指定最终的名称,打开虚拟机,清空,找到 jar 包,通过 springboot 来启动,命令如下:

java-javaagent:/usr/1oca1/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar=agent.service_name=config_springboot -jar skywalking_springboot.jar &

启动后,访问 springboot 接口,没有默认启动端口,通过 sayboot来访问,地址栏输入:192.168.62.141:8080/sayboot,回车,得到如下页面:

image.png

之后,找到 bin 目录,然后 cd agent 。再输入ls 查看该目录下文件,然后再输入:cd config 。再输入:car agent.config。由于优先级探针配置>配置文件中的值,所以等同探针配置覆盖掉配置文件中的值,达到了动态修改服务名的效果。

然后先停掉服务,输入:ps -ef|grep 8080 ,然后输入 config_springboot,输入:kill -9 1605//杀掉进程。

再启动时就不需要探针配置,换为系统配置。

进入 skywalking 目录,然后再输入:

java-javaagent:/usr/1oca1/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar-Dskywalking.agent.service_name=config_springboot2 -jar skywalking_springboot.jar &

启动成功,再去访问地址:如下图所示:

image.png

所以这里提供多种方式对配置进行覆盖,可以利用同一种 agent 来来启动不同应用时动态的指定不同的服务名,达到只用一份 agent 对各种应用进行覆盖的效果,配置覆盖在 skywalking 使用中应用场景非常广泛,当启动应用时需要去动态的指定一些参数值的时。都可以去使用这样的方式,推荐使用探针配置。它优先级最高,可以保证我们的配置能够覆盖掉其他的配置。

相关文章
|
6月前
|
编译器 C# 开发者
C# 11.0中的新特性:覆盖默认接口方法
C# 11.0进一步增强了接口的灵活性,引入了覆盖默认接口方法的能力。这一新特性允许类在实现接口时,不仅可以提供接口中未实现的方法的具体实现,还可以覆盖接口中定义的默认方法实现。本文将详细介绍C# 11.0中接口默认方法覆盖的工作原理、使用场景及其对现有代码的影响,帮助开发者更好地理解和应用这一新功能。
文件覆盖写入和追加写入:使用场景、命令和技巧详解
文件覆盖写入和追加写入:使用场景、命令和技巧详解
1154 0
|
1月前
|
测试技术
软件测试区分:条件组合覆盖、语句覆盖、判定覆盖、条件覆盖、路径覆盖
本文解释了软件测试中的不同覆盖标准,包括语句覆盖、判定覆盖、条件覆盖、条件组合覆盖和路径覆盖,并讨论了每种覆盖标准的特点、优点和缺点。
479 62
|
3月前
|
JavaScript Serverless 数据安全/隐私保护
函数计算产品使用问题之怎么动态设置.npmrc文件以配置私有仓库访问
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
Windows
覆盖生活中各方面的5款软件,非常好用
在现代生活中,工具软件如日历清单、SendAnywhere、燃精灵、Dism++及CyberLink等,提供了从日程管理、文件传输、微信空号检测、系统优化到多媒体编辑的全方位解决方案,极大地提升了工作与生活的效率,简化了繁杂任务,为数字体验带来便利与乐趣。
37 2
|
6月前
DataphinV4.0来啦 | 自定义全局角色 ,实时研发全场景覆盖
DataphinV4.0来啦 | 自定义全局角色 ,实时研发全场景覆盖
52 0
|
6月前
|
分布式计算 DataWorks 数据处理
DataWork数据处理问题之属性覆盖掉如何解决
DataWork数据处理是指使用DataWorks平台进行数据开发、数据处理和数据治理的活动;本合集将涵盖DataWork数据处理的工作流程、工具使用和问题排查,帮助用户提高数据处理的效率和质量。
|
Java 数据库 开发者
自动配置要点解读
自动配置要点解读
|
计算机视觉
VS2019如何添加已有的配置表(使得之前已经配置好的属性可以无需配置直接使用)
VS2019如何添加已有的配置表(使得之前已经配置好的属性可以无需配置直接使用)
173 0
|
Windows
怎么批量给文件添加拓展名?
怎么批量给文件添加拓展名?
176 0
怎么批量给文件添加拓展名?