为了账号安全,请及时绑定邮箱和手机立即绑定

Skywalking系列博客7-动态配置

标签:
Java

> TIPS
>
> 本文基于Skywalking 6.6.0,理论支持Skywalking 6.5.0及更高版本。

从Skywalking 6.5.0开始,部分Skywalking配置项支持“动态配置”——这样修改完配置后,就无需重启Skywalking啦。

支持动态配置的配置项如下:

配置 Key 描述 值的格式
receiver-trace.default.slowDBAccessThreshold 访问数据库慢的阈值,该值将会覆盖applciation.yml文件中的 receiver-trace/default/slowDBAccessThreshold 属性 例如:default:200,mongodb:50
receiver-trace.default.uninstrumentedGateways 非仪表网关 相关配置,该值将会覆盖gateways.yml 格式同 gateways.yml
alarm.default.alarm-settings 告警 相关配置,该值将会覆盖 alarm-settings.yml. 格式同 alarm-settings.yml
core.default.apdexThreshold apdex阈值 相关配置,该值将会覆盖service-apdex-threshold.yml 格式同 service-apdex-threshold.yml

要想实现动态配置,需要一个额外的配置服务器。引入配置服务器之后,架构图如下:

图片描述

Skywalking支持使用如下配置服务器:

  • [Dynamic Configuration Service] github.com/apache/skywalking/blob/v6.6.0/oap-server/server-configuration/grpc-configuration-sync/src/main/proto/configuration-service.proto
  • [Apollo] github.com/ctripcorp/apollo/
  • [Nacos] github.com/alibaba/nacos
  • [Zookeeper] github.com/apache/zookeeper
  • [Etcd] github.com/etcd-io/etcd
  • [Consul] github.com/rickfast/consul-client

就目前来看,除 [Dynamic Configuration Service] github.com/apache/skywalking/blob/v6.6.0/oap-server/server-configuration/grpc-configuration-sync/src/main/proto/configuration-service.proto尚不完备以外,其他的都可以直接用在生产。

下面,以Nacos为例,讲解如何用Nacos实现动态配置,其他配置服务器可点击上面的链接,查看官方文档。

搭建Nacos Server

安装

  • 前往 github.com/alibaba/nacos/releases 下载合适版本即可,本文用的是Nacos 1.1.4

  • 根据您的操作系统,到 bin 目录执行对应命令,即可启动Nacos。

    # Linux/Unix/Mac
    sh startup.sh -m standalone
    
    # Windows
    cmd startup.cmd
    
  • 启动后,访问 http://127.0.0.1:8848/nacos 即可看到类似如下的界面:

    图片描述

  • 输入账号密码:nacos/nacos ,即可进入首页。

停止

根据您的操作系统,到 bin 目录执行对应命令,即可停止Nacos:

# Linux/Unix/Mac
sh shutdown.sh

# Windows
cmd shutdown.cmd

Skywalking使用Nacos管理配置

  • 修改Skywalking的application.yml,找到:

    configuration:
      none:
    注释掉 none这一行,即改为:
    # none
    

    解开Nacos相关配置:

    configuration:
      nacos:
        # Nacos Server IP
        serverAddr: 127.0.0.1
        # Nacos Server端口
        port: 8848
        # Nacos Group
        group: 'skywalking'
        # Nacos namespace
        namespace: ''
        # 多久从Nacos Server上同步一次配置,单位秒
        period : 60
        # 集群名称
        clusterName: "default"
    
  • 以管理告警规则为例,在Nacos Server上创建DataId为 alarm.default.alarm-settings (其他配置类似,参照本文最上面的表格即可),配置的值参照 [alarm-settings.yml] github.com/apache/skywalking/blob/v6.6.0/docs/en/setup/backend/backend-alarm.md的写法。例如:

    rules:
      service_resp_time_rule:
        metrics-name: service_resp_time
        op: ">"
        threshold: 1
        period: 2
        count: 1
        silence-period: 5
        message: Response time of service {name} is more than 1ms in 1 minutes of last 2 minutes.
    
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
架构师
手记
粉丝
6593
获赞与收藏
1737

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消