升级 v6.6.9 引入的不兼容问题

创建时间:2024-07-10 最近修改时间:2025-04-27

#1. 升级 v6.6.9 引入的不兼容问题

修改 deepflow-server 配置文件优化,需要手动处理 values-custom.yaml 文件

#2. 升级到 v6.6.9 之前的操作

#2.1 版本兼容

  • 不兼容原来的 deepflow server 配置文件格式,需要手动修改为新的配置文件格式

#2.2 修改 deepflow server 配置文件格式

diff 旧版本 values-custom.yaml 文件和 values.yaml 文件中配置差异:

python -c "import sys, yaml; print(yaml.safe_dump(yaml.safe_load(open(sys.argv[1]))['deepflow']['configmap']))" /usr/local/deepflow/templates/values.yaml > section1.yaml
python -c "import sys, yaml; print(yaml.safe_dump(yaml.safe_load(open(sys.argv[1]))['deepflow']['configmap']))" /usr/local/deepflow/templates/values-custom.yaml > section2.yaml
diff section1.yaml section2.yaml
1
2
3

如果 python 环境中没有 yaml 模块导致的命令执行失败,也可以手动将两个文件中的 deepflow.configmap 模块分别提取到两个新的文件中,并进行diff,查看差异。

将 diff 结果中 section2.yaml 文件的差异部分(即手动修改的配置部分),单独更新到新的 values-custom.yaml 文件。

参考 server 配置文件 (opens new window)修改 values 中的对应字段即可, 例如修改日志级别:

deepflow:
  configmap:
    server.yaml:
      log-level: debug
1
2
3
4

新版本的 deepflow server 配置文件只需要修改对应的字段,不需要全部拷贝到 values-custom.yaml 文件中,降低维护配置文件的成本,对齐开源版本功能。

#2.3 资源同步采集器 功能和 ONLY_WATCH_K8S_RESOURCE 环境变量废弃

  • 新版本支持 K8S_WATCH_POLICY 环境变量,可选配置为 watch-onlywatch-disabled
  • 旧的 ONLY_WATCH_K8S_RESOURCE 使用 K8S_WATCH_POLICY=watch-only 环境变量配置

#2.4 适配采集器组配置

采集器组配置的部分配置项,需要额外处理,有以下两种方式可以选择操作:

  1. 使用 序号 #45 的 ISO (opens new window) 进行升级
  2. 如果使用序号 #45 之前的 ISO 升级
    • 记录旧配置项相关值,升级后更新到新配置项中:
      • 将旧配置项 static_config.ebpf.on-cpu-profile.regex 的值,更新到新配置项 process_matcher 中。process_matcher 值是一个列表,如果新配置中没有 process_matcher,则添加配置项后,加入配置值;如果已有配置,则追加配置值:

        旧配置项:

        static_config:
          ebpf:
            on-cpu-profile:
              regex: ^deepflow-.*
        
        1
        2
        3
        4

        新配置项:

        inputs:
          proc:
            process_matcher:
              - match_regex: ^deepflow-.*
                enabled_features:
                  - ebpf.profile.on_cpu
        
        1
        2
        3
        4
        5
        6

        追加配置项:

        inputs:
          proc:
            process_matcher:
              - match_regex: ^others-.*
              - match_regex: ^deepflow-.*
                enabled_features:
                  - ebpf.profile.on_cpu
        
        1
        2
        3
        4
        5
        6
        7
      • 将旧配置项 static_config.ebpf.off-cpu-profile.regex 的值,更新到新配置项 process_matcher 中。process_matcher 值是一个列表,如果新配置中没有 process_matcher,则添加配置项后,加入配置值;如果已有配置,则追加配置值:

        旧配置项:

        static_config:
          ebpf:
            off-cpu-profile:
              regex: ^deepflow-.*
        
        1
        2
        3
        4

        新配置项:

        inputs:
          proc:
            process_matcher:
              - match_regex: ^deepflow-.*
                enabled_features:
                  - ebpf.profile.off_cpu
        
        1
        2
        3
        4
        5
        6

        追加配置项:

        inputs:
          proc:
            process_matcher:
              - match_regex: ^others-.*
              - match_regex: ^deepflow-.*
                enabled_features:
                  - ebpf.profile.off_cpu
        
        1
        2
        3
        4
        5
        6
        7
    • 升级后查看所有采集器组配置,在高级配置页面,检查并修改以下字段值:
      • 将配置项 max_capture_pps 的值乘以 1000,例:配置为 10,需要改为 10000

        修改前:

        inputs:
          cbpf:
            tunning:
              max_capture_pps: 10
        
        1
        2
        3
        4

        修改后:

        inputs:
          cbpf:
            tunning:
              max_capture_pps: 10000
        
        1
        2
        3
        4
      • 将配置项 inference_result_ttl 的值加上单位 s,例: 配置为 60,需要修改为 60s

        修改前:

        processors:
          request_log:
            application_protocol_inference:
              inference_result_ttl: 60
        
        1
        2
        3
        4

        修改后:

        processors:
          request_log:
            application_protocol_inference:
              inference_result_ttl: 60s
        
        1
        2
        3
        4