Agent

创建时间:-- 最近修改时间:--

#1. 全局配置

#1.1 资源限制

控制 deepflow-agent 资源用量

#1.1.1 CPU 限制

标签:

hot_update

FQCN:

global.limits.max_millicpus

Upgrade from old version: max_millicpus

默认值:

global:
  limits:
    max_millicpus: 1000
1
2
3

模式:

Key Value
Type int
Unit Logical Milli Cores
Range [1, 100000]

详细描述:

deepflow-agent 使用 cgroups 来限制自身的 CPU 用量, 1 millicpu = 1 millicore = 0.001 core。

#1.1.2 内存限制

标签:

hot_update

FQCN:

global.limits.max_memory

Upgrade from old version: max_memory

默认值:

global:
  limits:
    max_memory: 768
1
2
3

模式:

Key Value
Type int
Unit MiB
Range [128, 100000]

详细描述:

deepflow-agent 使用 cgroups 限制自身的 memory 用量.

#1.1.3 日志每小时回传上限

标签:

hot_update

FQCN:

global.limits.max_log_backhaul_rate

Upgrade from old version: log_threshold

默认值:

global:
  limits:
    max_log_backhaul_rate: 300
1
2
3

模式:

Key Value
Type int
Unit Lines/Hour
Range [0, 10000]

详细描述:

用于 deepflow-agent 控制自身运行日志的每小时回传数量,设置为 0 表示不设限制。

#1.1.4 本地日志文件大小上限

标签:

hot_update

FQCN:

global.limits.max_local_log_file_size

Upgrade from old version: log_file_size

默认值:

global:
  limits:
    max_local_log_file_size: 1000
1
2
3

模式:

Key Value
Type int
Unit MiB
Range [10, 10000]

详细描述:

用于 deepflow-agent 控制自身运行日志在本地的存储量。

#1.1.5 本地日志留存时间

标签:

hot_update

FQCN:

global.limits.local_log_retention

Upgrade from old version: log_retention

默认值:

global:
  limits:
    local_log_retention: 300d
1
2
3

模式:

Key Value
Type duration
Range ['10d', '10000d']

详细描述:

用于 deepflow-agent 控制自身运行日志在本地的留存时长。

#1.2 告警

#1.2.1 线程数限制

标签:

hot_update

FQCN:

global.alerts.thread_threshold

Upgrade from old version: thread_threshold

默认值:

global:
  alerts:
    thread_threshold: 500
1
2
3

模式:

Key Value
Type int
Range [1, 1000]

详细描述:

用于控制 deepflow-agent 创建的线程数量。

#1.2.2 进程数限制

标签:

hot_update

FQCN:

global.alerts.process_threshold

Upgrade from old version: process_threshold

默认值:

global:
  alerts:
    process_threshold: 10
1
2
3

模式:

Key Value
Type int
Range [1, 100]

详细描述:

用于控制 deepflow-agent 创建的进程数量。

#1.2.3 Core File 检查

标签:

agent_restart deprecated

FQCN:

global.alerts.check_core_file_disabled

Upgrade from old version: static_config.check-core-file-disabled

默认值:

global:
  alerts:
    check_core_file_disabled: false
1
2
3

模式:

Key Value
Type bool

详细描述:

When the host has an invalid NFS file system or a docker is running, sometime program hang when checking the core file, so the core file check provides a switch to prevent the process hang. Additional links:

  • https://serverfault.com/questions/367438/ls-hangs-for-a-certain-directory
  • https://unix.stackexchange.com/questions/495854/processes-hanging-when-trying-to-access-a-file

#1.3 熔断机制

控制 deepflow-agent 在一定的环境条件下停止运行或停止部分功能。

#1.3.1 系统空闲内存百分比

计算公式:(free_memory / total_memory) * 100%

#1.3.1.1 触发阈值

标签:

hot_update

FQCN:

global.circuit_breakers.sys_memory_percentage.trigger_threshold

Upgrade from old version: sys_free_memory_limit

默认值:

global:
  circuit_breakers:
    sys_memory_percentage:
      trigger_threshold: 0
1
2
3
4

模式:

Key Value
Type int
Unit %
Range [0, 100]

详细描述:

当系统空闲内存低于此阈值的 90% 时,deepflow-agent 将自动重启。

#1.3.1.2 观测指标

标签:

hot_update

FQCN:

global.circuit_breakers.sys_memory_percentage.metric

Upgrade from old version: sys_free_memory_metric

默认值:

global:
  circuit_breakers:
    sys_memory_percentage:
      metric: free
1
2
3
4

枚举可选值:

Value Note
free
available

模式:

Key Value
Type string

详细描述:

deepflow-agent 观测该内存指标的百分比

#1.3.2 相对系统负载

计算公式: system_load / total_cpu_cores

#1.3.2.1 触发阈值

标签:

hot_update

FQCN:

global.circuit_breakers.relative_sys_load.trigger_threshold

Upgrade from old version: system_load_circuit_breaker_threshold

默认值:

global:
  circuit_breakers:
    relative_sys_load:
      trigger_threshold: 1.0
1
2
3
4

模式:

Key Value
Type float
Range [0, 10]

详细描述:

相对系统负载(load 除以 CPU 核数)高于此阈值时,采集器自动停止运行。 设置该值或 recovery_threshold 为 0 时,该特性不生效。

#1.3.2.2 恢复阈值

标签:

hot_update

FQCN:

global.circuit_breakers.relative_sys_load.recovery_threshold

Upgrade from old version: system_load_circuit_breaker_recover

默认值:

global:
  circuit_breakers:
    relative_sys_load:
      recovery_threshold: 0.9
1
2
3
4

模式:

Key Value
Type float
Range [0, 10]

详细描述:

在采集器处于停止状态后,当相对系统负载(load 除以 CPU 核数)连续 5 分钟低于此阈值时, 采集器自动从停止状态恢复运行。 设置该值或 trigger_threshold 为 0 时,该特性不生效。

#1.3.2.3 观测指标

标签:

hot_update

FQCN:

global.circuit_breakers.relative_sys_load.metric

Upgrade from old version: system_load_circuit_breaker_metric

默认值:

global:
  circuit_breakers:
    relative_sys_load:
      metric: load15
1
2
3
4

枚举可选值:

Value Note
load1
load5
load15

模式:

Key Value
Type string

详细描述:

deepflow-agent 默认每 10 秒监控一次所设定的系统负载指标项。

#1.3.3 发送吞吐

#1.3.3.1 触发阈值

标签:

hot_update ee_feature

FQCN:

global.circuit_breakers.tx_throughput.trigger_threshold

Upgrade from old version: max_tx_bandwidth

默认值:

global:
  circuit_breakers:
    tx_throughput:
      trigger_threshold: 0
1
2
3
4

模式:

Key Value
Type int
Unit Mbps
Range [0, 100000]

详细描述:

如果流量分发所用网络接口的出方向吞吐量达到或超出此阈值,deepflow-agent 停止流量 分发;如果该网络接口的出方向吞吐量连续 5 个监控周期低于(trigger_threshold - outputs.npb.max_tx_throughput)*90%,deepflow-agent 恢复流量分发。

注意:

  1. 取值为 0 时,该特性不生效;
  2. 若取非 0 值,必须大于 max_tx_throughput

#1.3.3.2 吞吐监控间隔

标签:

hot_update ee_feature

FQCN:

global.circuit_breakers.tx_throughput.throughput_monitoring_interval

Upgrade from old version: bandwidth_probe_interval

默认值:

global:
  circuit_breakers:
    tx_throughput:
      throughput_monitoring_interval: 10s
1
2
3
4

模式:

Key Value
Type duration
Range ['1s', '60s']

详细描述:

deepflow-agent 对流量分发所使用网络接口的出方向吞吐量指标的监控周期。

#1.4 调优

对 deepflow-agent 的运行进行调优。

#1.4.1 CPU 亲和性

标签:

agent_restart

FQCN:

global.tunning.cpu_affinity

Upgrade from old version: static_config.cpu-affinity

默认值:

global:
  tunning:
    cpu_affinity: []
1
2
3

模式:

Key Value
Type int
Range [0, 65536]

详细描述:

操作系统尽可能使用指定 ID 的 CPU 核运行 deepflow-agent 进程。无效的 ID 将被忽略。举例:

global:
  tunning:
    cpu_affinity: [1, 3, 5, 7, 9]
1
2
3

#1.4.2 进程调度优先级

标签:

agent_restart

FQCN:

global.tunning.process_scheduling_priority

Upgrade from old version: static_config.process-scheduling-priority

默认值:

global:
  tunning:
    process_scheduling_priority: 0
1
2
3

模式:

Key Value
Type int
Range [-20, 19]

详细描述:

控制 deepflow-agent 进程的调度优先级。数值越小,调度优先级越高;数值越大,调度优先级越低。

#1.4.3 闲置内存修剪

标签:

agent_restart

FQCN:

global.tunning.idle_memory_trimming

Upgrade from old version: static_config.memory-trim-disabled

默认值:

global:
  tunning:
    idle_memory_trimming: true
1
2
3

模式:

Key Value
Type bool

详细描述:

开启闲置内存修剪特性,将降低 agent 内存使用量,但可能会损失 agent 处理性能。

#1.4.4 资源监控间隔

标签:

agent_restart

FQCN:

global.tunning.resource_monitoring_interval

Upgrade from old version: static_config.guard-interval

默认值:

global:
  tunning:
    resource_monitoring_interval: 10s
1
2
3

模式:

Key Value
Type duration
Range ['1s', '3600s']

详细描述:

deepflow-agent 将以配置的时间周期监控如下资源:

  1. 系统空闲内存
  2. 系统负载
  3. agent 的线程数量(通过读取 /proc 目录下的文件信息获取)
  4. agent 的日志数量和日志大小
  5. agent 的内存用量

#1.5 NTP 时钟同步

此同步机制获取的时间仅供 deepflow-agent 进程内部使用,不影响主机时间。

#1.5.1 Enabled

标签:

hot_update

FQCN:

global.ntp.enabled

Upgrade from old version: ntp_enabled

默认值:

global:
  ntp:
    enabled: false
1
2
3

模式:

Key Value
Type bool

详细描述:

deepflow-agent 是否向 deepflow-server 做 NTP 同步的开关。

#1.5.2 最大时钟偏差

标签:

agent_restart

FQCN:

global.ntp.max_drift

Upgrade from old version: static_config.ntp-max-interval

默认值:

global:
  ntp:
    max_drift: 300s
1
2
3

模式:

Key Value
Type duration
Range [0, '365d']

详细描述:

当 deepflow-agent 与 deepflow-server 之间的时间偏移大于‘max_drift’设置值时,agent 会自动重启。

#1.5.3 最小时钟偏差

标签:

agent_restart

FQCN:

global.ntp.min_drift

Upgrade from old version: static_config.ntp-min-interval

默认值:

global:
  ntp:
    min_drift: 10s
1
2
3

模式:

Key Value
Type duration
Range [0, '365d']

详细描述:

当 deepflow-agent 与 deepflow-server 之间的时间偏移大于‘min_drift’设置值时,对 agent 的 时间戳进行纠正。

#1.6 通信

配置 deepflow-agent 的通信参数。

#1.6.1 主动请求间隔

标签:

hot_update

FQCN:

global.communication.proactive_request_interval

Upgrade from old version: sync_interval

默认值:

global:
  communication:
    proactive_request_interval: 60s
1
2
3

模式:

Key Value
Type duration
Range ['10s', '3600s']

详细描述:

deepflow-agent 以设置的时间间隔周期性向 deepflow-server 请求配置数据和标签信息。

#1.6.2 最大逃逸时长

标签:

hot_update

FQCN:

global.communication.max_escape_duration

Upgrade from old version: max_escape_seconds

默认值:

global:
  communication:
    max_escape_duration: 3600s
1
2
3

模式:

Key Value
Type duration
Range ['600s', '30d']

详细描述:

最大逃逸时长是指 deepflow-agent 与 deepflow-server 失联后,自主运行的最长 时间;超过该时长后,仍未与 server 恢复联系,agent 自动进入 disabled 状态。

#1.6.3 Controller IP 地址

标签:

hot_update

FQCN:

global.communication.proxy_controller_ip

Upgrade from old version: proxy_controller_ip

默认值:

global:
  communication:
    proxy_controller_ip: 127.0.0.1
1
2
3

模式:

Key Value
Type ip

详细描述:

用于设置 deepflow-agent 与 server 通信的控制面通信 IP;如果不设置本 参数,server 下发自己的节点 IP 作为 server 端控制面通信IP。 该参数通常用于 server 端使用负载均衡或虚 IP 对外提供服务的场景。

#1.6.4 Controller 端口号

标签:

hot_update

FQCN:

global.communication.proxy_controller_port

Upgrade from old version: proxy_controller_port

默认值:

global:
  communication:
    proxy_controller_port: 30035
1
2
3

模式:

Key Value
Type int
Range [1, 65535]

详细描述:

用于设置 deepflow-server 向 deepflow-agent 下发的 server 端控制面通信端口。

#1.6.5 Ingester IP 地址

标签:

hot_update

FQCN:

global.communication.ingester_ip

Upgrade from old version: analyzer_ip

默认值:

global:
  communication:
    ingester_ip: ''
1
2
3

模式:

Key Value
Type ip

详细描述:

用于设置 deepflow-server 向 deepflow-agent 下发的 server 端数据面通信 IP。

#1.6.6 Ingester 端口号

标签:

hot_update

FQCN:

global.communication.ingester_port

Upgrade from old version: analyzer_port

默认值:

global:
  communication:
    ingester_port: 30033
1
2
3

模式:

Key Value
Type int
Range [1, 65535]

详细描述:

用于设置 deepflow-server 向 deepflow-agent 下发的 server 端数据面通信端口。

#1.6.7 gRPC Socket 缓冲区大小

标签:

agent_restart

FQCN:

global.communication.grpc_buffer_size

Upgrade from old version: static_config.grpc-buffer-size

默认值:

global:
  communication:
    grpc_buffer_size: 5
1
2
3

模式:

Key Value
Type int
Unit MiB
Range [5, 1024]

详细描述:

设置 deepflow-agent 的 gRPC socket 缓冲区大小。

#1.6.8 请求 NAT IP 地址

标签:

hot_update

FQCN:

global.communication.request_via_nat_ip

Upgrade from old version: nat_ip_enabled

默认值:

global:
  communication:
    request_via_nat_ip: false
1
2
3

模式:

Key Value
Type bool

详细描述:

当 deepflow-agent 使用外部 IP 地址访问 deepflow-server 时,设置本参数为 true。 例如,当 deepflow-server 位于 NAT 网关后,或 deepflow-server 所在的主机有多个 节点 IP 地址,不同的 deepflow-agent 需要访问不同的节点 IP 地址时,可以为每个 deepflow-server 地址设置一个额外的 NAT IP,并将本参数设置为 true。

#1.7 自监控

配置 deepflow-agent 自身诊断相关的参数

#1.7.1 日志

deepflow-agent 运行日志相关参数

#1.7.1.1 日志等级

标签:

hot_update

FQCN:

global.self_monitoring.log.log_level

Upgrade from old version: log_level

默认值:

global:
  self_monitoring:
    log:
      log_level: INFO
1
2
3
4

枚举可选值:

Value Note
DEBUG
INFO
WARNING
ERROR

模式:

Key Value
Type string

详细描述:

deepflow-agent 运行日志输出等级。

#1.7.1.2 日志文件

标签:

agent_restart

FQCN:

global.self_monitoring.log.log_file

Upgrade from old version: static_config.log-file

默认值:

global:
  self_monitoring:
    log:
      log_file: /var/log/deepflow-agent/deepflow-agent.log
1
2
3
4

模式:

Key Value
Type string

详细描述:

deepflow-agent 运行日志的写入位置。

#1.7.1.3 启用日志回传

标签:

hot_update

FQCN:

global.self_monitoring.log.log_backhaul_enabled

Upgrade from old version: rsyslog_enabled

默认值:

global:
  self_monitoring:
    log:
      log_backhaul_enabled: true
1
2
3
4

模式:

Key Value
Type bool

详细描述:

开启后,deepflow-agent 将向 deepflow-server 回传运行日志。

#1.7.2 持续剖析

deepflow-agent 自身持续剖析数据配置参数

#1.7.2.1 Enabled

标签:

agent_restart deprecated

FQCN:

global.self_monitoring.profile.enabled

Upgrade from old version: static_config.profiler

默认值:

global:
  self_monitoring:
    profile:
      enabled: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

该参数仅对 deepflow-trident 有效,对 deepflow-agent 无效。 开启后,支持对 Trident 持续剖析。

#1.7.3 诊断

deepflow-agent 的诊断功能配置参数

#1.7.3.1 Enabled

标签:

hot_update

FQCN:

global.self_monitoring.debug.enabled

Upgrade from old version: debug_enabled

默认值:

global:
  self_monitoring:
    debug:
      enabled: true
1
2
3
4

模式:

Key Value
Type bool

详细描述:

禁用 / 启用 deepflow-agent 的诊断功能。

#1.7.3.2 本地 UDP 端口号

标签:

agent_restart

FQCN:

global.self_monitoring.debug.local_udp_port

Upgrade from old version: static_config.debug-listen-port

默认值:

global:
  self_monitoring:
    debug:
      local_udp_port: 0
1
2
3
4

模式:

Key Value
Type int
Range [0, 65535]

详细描述:

该参数仅对 deepflow-trident 有效,对 deepflow-agent 无效。用于配置 trident 用于诊断的 UDP 监听端口,默认值为 0 ,表示使用随机的端口。

#1.7.3.3 启用调试指标

标签:

agent_restart deprecated

FQCN:

global.self_monitoring.debug.debug_metrics_enabled

Upgrade from old version: static_config.enable-debug-stats

默认值:

global:
  self_monitoring:
    debug:
      debug_metrics_enabled: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

该参数仅对 deepflow-trident 有效,对 deepflow-agent 无效。

#1.7.4 Interval

标签:

hot_update

FQCN:

global.self_monitoring.interval

Upgrade from old version: stats_interval

默认值:

global:
  self_monitoring:
    interval: 10s
1
2
3

模式:

Key Value
Type duration
Range ['1s', '3600s']

详细描述:

statsd 时间间隔。

#1.8 独立运行模式

deepflow-agent 独立运行模式的相关参数

#1.8.1 最大数据文件大小

标签:

agent_restart

FQCN:

global.standalone_mode.max_data_file_size

Upgrade from old version: static_config.standalone-data-file-size

默认值:

global:
  standalone_mode:
    max_data_file_size: 200
1
2
3

模式:

Key Value
Type int
Unit MiB
Range [1, 1000000]

详细描述:

独立运行模式下,单个数据文件的最大值,当文件大小超过最大值时,数据将滚动覆盖。 deepflow-agent 在独立运行模式下不受 deepflow-server 管理/控制,会将采集数据以文件 形式保存在本地磁盘中。目前支持 2 种数据:l4_flow_log 和 l7_flow_log,每种数据分开写入 不同的数据文件,每种数据最多可产生 2 个数据文件。

#1.8.2 数据文件目录

标签:

agent_restart

FQCN:

global.standalone_mode.data_file_dir

Upgrade from old version: static_config.standalone-data-file-dir

默认值:

global:
  standalone_mode:
    data_file_dir: /var/log/deepflow-agent/
1
2
3

模式:

Key Value
Type string

详细描述:

数据文件的写入位置。

#2. 输入

#2.1 进程

#2.1.1 Enabled

标签:

agent_restart

FQCN:

inputs.proc.enabled

Upgrade from old version: static_config.os-proc-sync-enabled

默认值:

inputs:
  proc:
    enabled: false
1
2
3

模式:

Key Value
Type bool

详细描述:

开启后 deepflow-agent 将获取操作系统的进程信息,并上报至 deepflow-server。该参数仅对 CHOST_VM, CHOST_BM, K8S_VM, K8S_BM 等运行环境的 agent 有效。

#2.1.2 /proc 目录

标签:

agent_restart

FQCN:

inputs.proc.proc_dir_path

Upgrade from old version: static_config.os-proc-root

默认值:

inputs:
  proc:
    proc_dir_path: /proc
1
2
3

模式:

Key Value
Type string

详细描述:

进程信息同步所用的目录。

#2.1.3 Socket 信息同步间隔

标签:

agent_restart

FQCN:

inputs.proc.socket_info_sync_interval

Upgrade from old version: static_config.os-proc-socket-sync-interval

默认值:

inputs:
  proc:
    socket_info_sync_interval: 0
1
2
3

模式:

Key Value
Type duration
Range [0, '1h']

详细描述:

Socket 信息同步的周期。 0 表示不开启,除 0 外不要配置小于 1s 的值。

#2.1.4 最小活跃时间

标签:

agent_restart

FQCN:

inputs.proc.min_lifetime

Upgrade from old version: static_config.os-proc-socket-min-lifetime

默认值:

inputs:
  proc:
    min_lifetime: 3s
1
2
3

模式:

Key Value
Type duration
Range ['1s', '1h']

详细描述:

如果接口或进程的活跃时间低于该参数值,deepflow-agent 将不上报该接口或进程的信息。

#2.1.5 Tag 提取

#2.1.5.1 脚本命令

标签:

agent_restart

FQCN:

inputs.proc.tag_extraction.script_command

Upgrade from old version: static_config.os-app-tag-exec

默认值:

inputs:
  proc:
    tag_extraction:
      script_command: []
1
2
3
4

模式:

Key Value
Type string

详细描述:

deepflow-agent 每次采集进程信息时,会执行配置的脚本命令,并从标准输出的 yaml 格式 中尝试获取进程的标签字段。yaml 格式的样例如下:

- pid: 1
  tags:
  - key: xxx
    value: xxx
- pid: 2
  tags:
  - key: xxx
    value: xxx
1
2
3
4
5
6
7
8

配置样例:

inputs:
  proc:
    tag_extraction:
      script_command: ["cat", "/tmp/tag.yaml"]
1
2
3
4

#2.1.5.2 执行用户名

标签:

agent_restart

FQCN:

inputs.proc.tag_extraction.exec_username

Upgrade from old version: static_config.os-app-tag-exec-user

默认值:

inputs:
  proc:
    tag_extraction:
      exec_username: deepflow
1
2
3
4

模式:

Key Value
Type string

详细描述:

deepflow-agent 执行 os-app-tag-exec 脚本命令的用户名。

#2.1.6 进程匹配器

标签:

agent_restart

FQCN:

inputs.proc.process_matcher

Upgrade from old version: static_config.os-proc-regex

默认值:

inputs:
  proc:
    process_matcher:
    - enabled_features:
      - ebpf.profile.on_cpu
      - ebpf.profile.off_cpu
      - proc.gprocess_info
      match_regex: deepflow-.*
      only_in_container: false
1
2
3
4
5
6
7
8
9

模式:

Key Value
Type dict

详细描述:

Will traverse over the entire array, so the previous ones will be matched first. when match_type is parent_process_name, will recursive to match parent proc name, and rewrite_name field will ignore. rewrite_name can replace by regexp capture group and windows style environment variable, for example: $1-py-script-%HOSTNAME% will replace regexp capture group 1 and HOSTNAME env var. If proc not match any regexp will be accepted (essentially will auto append - match_regex: .* at the end).

Configuration Item:

  • match_regex: The regexp use for match the process, default value is .*
  • match_type: regexp match field, default value is process_name, options are [process_name, cmdline, cmdline_with_args, parent_process_name, tag]
  • ignore: Whether to ignore when regex match, default value is false
  • rewrite_name: The name will replace the process name or cmd use regexp replace. Default value "" means no replacement.

Example:

inputs:
  proc:
    process_matcher:
    - match_regex: python3 (.*)\.py
      match_type: cmdline
      match_languages: []
      match_usernames: []
      only_in_container: true
      only_with_tag: false
      ignore: false
      rewrite_name: $1-py-script
      enabled_features: [ebpf.socket.uprobe.golang, ebpf.profile.on_cpu]
    - match_regex: (?P<PROC_NAME>nginx)
      match_type: process_name
      rewrite_name: ${PROC_NAME}-%HOSTNAME%
    - match_regex: "nginx"
      match_type: parent_process_name
      ignore: true
    - match_regex: .*sleep.*
      match_type: process_name
      ignore: true
    - match_regex: .+ # match after concatenating a tag key and value pair using colon,
                      # i.e., an regex `app:.+` can match all processes has a `app` tag
      match_type: tag
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

#2.1.6.1 匹配正则表达式

标签:

agent_restart

FQCN:

inputs.proc.process_matcher.match_regex

Upgrade from old version: static_config.os-proc-regex.match-regex

默认值:

inputs:
  proc:
    process_matcher:
    - match_regex: ''
1
2
3
4

模式:

Key Value
Type string

详细描述:

The regex of matcher.

#2.1.6.2 匹配类型

标签:

agent_restart

FQCN:

inputs.proc.process_matcher.match_type

Upgrade from old version: static_config.os-proc-regex.match-type

默认值:

inputs:
  proc:
    process_matcher:
    - match_type: ''
1
2
3
4

枚举可选值:

Value Note
process_name
cmdline
cmdline_with_args
parent_process_name
tag

模式:

Key Value
Type string

详细描述:

The type of matcher.

#2.1.6.3 匹配语言

标签:

agent_restart

FQCN:

inputs.proc.process_matcher.match_languages

默认值:

inputs:
  proc:
    process_matcher:
    - match_languages: []
1
2
3
4

枚举可选值:

Value Note
java
golang
python
nodejs
dotnet

模式:

Key Value
Type string

详细描述:

Default value [] match all languages.

#2.1.6.4 匹配用户名

标签:

agent_restart

FQCN:

inputs.proc.process_matcher.match_usernames

默认值:

inputs:
  proc:
    process_matcher:
    - match_usernames: []
1
2
3
4

模式:

Key Value
Type string

详细描述:

Default value [] match all usernames.

#2.1.6.5 仅匹配容器内的进程

标签:

agent_restart

FQCN:

inputs.proc.process_matcher.only_in_container

默认值:

inputs:
  proc:
    process_matcher:
    - only_in_container: true
1
2
3
4

模式:

Key Value
Type bool

详细描述:

Default value true means only match processes in container.

#2.1.6.6 仅匹配有 Tag 的进程

标签:

agent_restart

FQCN:

inputs.proc.process_matcher.only_with_tag

Upgrade from old version: static_config.os-proc-sync-tagged-only

默认值:

inputs:
  proc:
    process_matcher:
    - only_with_tag: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

Default value false means match processes with or without tags.

#2.1.6.7 忽略

标签:

agent_restart

FQCN:

inputs.proc.process_matcher.ignore

Upgrade from old version: static_config.os-proc-regex.action

默认值:

inputs:
  proc:
    process_matcher:
    - ignore: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

Whether to ingore matched processes..

#2.1.6.8 重命名

标签:

agent_restart

FQCN:

inputs.proc.process_matcher.rewrite_name

Upgrade from old version: static_config.os-proc-regex.rewrite-name

默认值:

inputs:
  proc:
    process_matcher:
    - rewrite_name: ''
1
2
3
4

模式:

Key Value
Type string

详细描述:

New name after matched.

#2.1.6.9 开启功能列表

标签:

agent_restart

FQCN:

inputs.proc.process_matcher.enabled_features

Upgrade from old version: static_config.ebpf.on-cpu-profile.regex, static_config.ebpf.off-cpu-profile.regex

默认值:

inputs:
  proc:
    process_matcher:
    - enabled_features: []
1
2
3
4

枚举可选值:

Value Note
proc.gprocess_info
proc.golang_symbol_table
proc.socket_list
ebpf.socket.uprobe.golang
ebpf.socket.uprobe.tls
ebpf.profile.on_cpu
ebpf.profile.off_cpu
ebpf.profile.memory

模式:

Key Value
Type string

详细描述:

Enabled feature list.

#2.1.7 符号表

#2.1.7.1 Golang 特有

#2.1.7.1.1 Enabled

标签:

agent_restart

FQCN:

inputs.proc.symbol_table.golang_specific.enabled

Upgrade from old version: static_config.ebpf.uprobe-process-name-regexs.golang-symbol

默认值:

inputs:
  proc:
    symbol_table:
      golang_specific:
        enabled: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

如果 Golang(版本 >= 1.13 and < 1.18条件下)进程运行时裁切了标准符号 表,开启此开关后 deepflow-agent 将解析生成 Golang-specific 符号表以 完善 eBPF uprobe 数据,实现 Golang 程序的零侵扰调用链追踪。注意:开启 该开关后,eBPF 程序初始化过程可能会持续 10 分钟以上的时间。 配置方法:

  • 在'golang'的参数中配置进程的正则表达式,比如:golang: .*
  • 如果在 deepflow-agent 的运行日志中发现如下 warning:
    [eBPF] WARNING: func resolve_bin_file() [user/go_tracer.c:558] Go process pid 1946
    [path: /proc/1946/root/usr/local/bin/kube-controller-manager] (version: go1.16). Not find any symbols!
    
    1
    2
    以上日志说明存在一个 PID = 1946 的 Golang 进程。
  • 确认是否 Golang 进程是否已有符号表:
    • 通过 PID 获取程序可执行文件的目录:
      # ls -al /proc/1946/exe
      /proc/1946/exe -> /usr/local/bin/kube-controller-manager
      
      1
      2
    • 检查目录下是否有符号表,如果结果中出现 "no symbols",则说明符号表缺失,需要开启 Golang 程序符号表解析开关.
      # nm /proc/1946/root/usr/local/bin/kube-controller-manager
      nm: /proc/1946/root/usr/local/bin/kube-controller-manager: no symbols
      
      1
      2
  • deepflow-agent 启动阶段运行日志中出现类似下面的信息,说明 Golang 进程已经被成功 hook。
    [eBPF] INFO Uprobe [/proc/1946/root/usr/local/bin/kube-controller-manager] pid:1946 go1.16.0
    entry:0x25fca0 size:1952 symname:crypto/tls.(*Conn).Write probe_func:uprobe_go_tls_write_enter rets_count:0
    
    1
    2

#2.1.7.2 Java

#2.1.7.2.1 刷新延迟时长

标签:

agent_restart

FQCN:

inputs.proc.symbol_table.java.refresh_defer_duration

Upgrade from old version: static_config.ebpf.java-symbol-file-refresh-defer-interval

默认值:

inputs:
  proc:
    symbol_table:
      java:
        refresh_defer_duration: 60s
1
2
3
4
5

模式:

Key Value
Type duration
Range ['5s', '3600s']

详细描述:

当 deepflow-agent 在 Java 进程的函数调用栈中发现未能解析的函数名时,将触发进程函数符号表的生成和符号缓存 的更新。当前 Java 符号文件是采用持续更新的方式,该 duration 用于控制推迟使用符号文件更新符号缓存的时间。 原因是由于 Java 使用了 JIT 编译机制,编译符号生成有个预热阶段,为了获取更充足的 Java 符号需要推迟一段时间 来更新 Java 符号的缓存,也可避免由于符号缺失而造成的频繁符号缓存刷新引起大量CPU资源消耗。

#2.1.7.2.2 符号表文件最大大小

标签:

agent_restart

FQCN:

inputs.proc.symbol_table.java.max_symbol_file_size

Upgrade from old version: static_config.ebpf.java-symbol-file-max-space-limit

默认值:

inputs:
  proc:
    symbol_table:
      java:
        max_symbol_file_size: 10
1
2
3
4
5

模式:

Key Value
Type int
Unit MiB
Range [2, 100]

详细描述:

deepflow-agent 将所有的 Java 符号表文件存放在'/tmp'目录下,该参数用于限制每一个 Java 符号表文件的 大小上限,以避免占用过多的节点磁盘空间。

#2.2 cBPF

#2.2.1 通用配置

#2.2.1.1 Packet 采集模式

标签:

hot_update

FQCN:

inputs.cbpf.common.capture_mode

Upgrade from old version: tap_mode

默认值:

inputs:
  cbpf:
    common:
      capture_mode: 0
1
2
3
4

枚举可选值:

Value Note
0 本地流量
1 虚拟网络镜像
2 物理网络镜像

模式:

Key Value
Type int

详细描述:

虚拟网络镜像模式用于 deepflow-agent 无法直接采集流量的场景,比如:

  • k8s 的 macvlan 环境中,从 Node 网口接口采集 POD 流量;
  • Hyper-V 环境中,从宿主机的网络接口采集 VM 流量;
  • ESXi 环境中,通过 VDS/VSS 的本地 SPAN 采集 VM 流量;
  • DPDK 环境中,通过 DPDK ring buffer 采集 VM 流量。

物理网络镜像模式(仅企业版支持)用于 deepflow-agent 从物理设备镜像采集流量的场景。

#2.2.2 使用 AF_PACKET 采集

#2.2.2.1 网卡名正则表达式

标签:

hot_update

FQCN:

inputs.cbpf.af_packet.interface_regex

Upgrade from old version: tap_interface_regex

默认值:

inputs:
  cbpf:
    af_packet:
      interface_regex: ^(tap.*|cali.*|veth.*|eth.*|en[osipx].*|lxc.*|lo|[0-9a-f]+_h)$
1
2
3
4

模式:

Key Value
Type string
Range [0, 65535]

详细描述:

需要采集流量的网络接口的正则表达式。

#2.2.2.2 Bond 网卡列表

标签:

agent_restart

FQCN:

inputs.cbpf.af_packet.bond_interfaces

Upgrade from old version: static_config.tap-interface-bond-groups

默认值:

inputs:
  cbpf:
    af_packet:
      bond_interfaces: []
1
2
3
4

模式:

Key Value
Type dict

详细描述:

Packets of interfaces in the same group can be aggregated together, Only effective when capture_mode is 0.

Example:

inputs:
  cbpf:
    af_packet:
      bond_interfaces:
      - slave_interfaces: [eth0, eth1]
      - slave_interfaces: [eth2, eth3]
1
2
3
4
5
6
#2.2.2.2.1 Slave 网卡列表

标签:

agent_restart

FQCN:

inputs.cbpf.af_packet.bond_interfaces.slave_interfaces

Upgrade from old version: static_config.tap-interface-bond-groups.tap-interfaces

默认值:

inputs:
  cbpf:
    af_packet:
      bond_interfaces:
      - slave_interfaces: []
1
2
3
4
5

模式:

Key Value
Type string

详细描述:

Bond 网卡的从网卡列表。

#2.2.2.3 需要采集的额外网络 Namespace

标签:

hot_update ee_feature

FQCN:

inputs.cbpf.af_packet.extra_netns_regex

Upgrade from old version: extra_netns_regex

默认值:

inputs:
  cbpf:
    af_packet:
      extra_netns_regex: ''
1
2
3
4

模式:

Key Value
Type string

详细描述:

除默认网络 namespace 之外,deepflow-agent 还会根据此参数正则匹配额外的网络 namespace, 在匹配命中的网络 namespace 中根据tap_interface_regex正则匹配网络接口并采集流量。默认 配置 "" 表示仅采集默认网络 namesapce,不采集额外的网络 namespace 流量。

#2.2.2.4 额外的 BPF 过滤器

标签:

hot_update

FQCN:

inputs.cbpf.af_packet.extra_bpf_filter

Upgrade from old version: capture_bpf

默认值:

inputs:
  cbpf:
    af_packet:
      extra_bpf_filter: ''
1
2
3
4

模式:

Key Value
Type string
Range [0, 512]

详细描述:

如果不配置该参数,则采集全部流量。BPF 语法详见:https://biot.com/capstats/bpf.html

#2.2.2.5 TAP Interfaces

标签:

deprecated

FQCN:

inputs.cbpf.af_packet.src_interfaces

Upgrade from old version: static_config.src-interfaces

默认值:

inputs:
  cbpf:
    af_packet:
      src_interfaces: []
1
2
3
4

模式:

Key Value
Type string

#2.2.2.6 物理网络镜像流量中的 VLAN PCP

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.af_packet.vlan_pcp_in_physical_mirror_traffic

Upgrade from old version: static_config.mirror-traffic-pcp

默认值:

inputs:
  cbpf:
    af_packet:
      vlan_pcp_in_physical_mirror_traffic: 0
1
2
3
4

模式:

Key Value
Type int
Range [0, 9]

详细描述:

当 mirror-traffic-pcp 的值小于等于 7 时,仅当 VLAN PCP 与该值匹配时,从 VLAN tag 中计算 TAP。 当 mirror-traffic-pcp 的值为 8 时,从外层 VLAN tag 中计算 TAP, 当 mirror-traffic-pcp 的值为 9 时,从内层 VLAN tag 中计算 TAP。

#2.2.2.7 禁用 BPF 过滤

标签:

agent_restart

FQCN:

inputs.cbpf.af_packet.bpf_filter_disabled

Upgrade from old version: static_config.bpf-disabled

默认值:

inputs:
  cbpf:
    af_packet:
      bpf_filter_disabled: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

此开关用于对特定 Linux 内核版本 BPF 功能诊断,打开此开关后 deepflow-agent 将不启用 Linux 内核的 BPF 包过滤能力,而是获取全流量的数据包之后由采集器程序进行过滤。注意,打开此开关将明显 增加 deepflow-agent 的资源消耗。

#2.2.2.8 调优

#2.2.2.8.1 Socket 版本

标签:

hot_update

FQCN:

inputs.cbpf.af_packet.tunning.socket_version

Upgrade from old version: capture_socket_type

默认值:

inputs:
  cbpf:
    af_packet:
      tunning:
        socket_version: 0
1
2
3
4
5

枚举可选值:

Value Note
0 自适应
2 AF_PACKET V2
3 AF_PACKET V3

模式:

Key Value
Type int

详细描述:

deepflow-agent 所在的 Linux 操作系统的 AF_PACKET socket 版本号。

#2.2.2.8.2 使能 Ring Blocks 配置

标签:

agent_restart

FQCN:

inputs.cbpf.af_packet.tunning.ring_blocks_enabled

Upgrade from old version: static_config.afpacket-blocks-enabled

默认值:

inputs:
  cbpf:
    af_packet:
      tunning:
        ring_blocks_enabled: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

本地流量虚拟网络镜像模式下,需开启此开关,并配置 afpacket-blocks 参数。

#2.2.2.8.3 Ring Blocks

标签:

agent_restart

FQCN:

inputs.cbpf.af_packet.tunning.ring_blocks

Upgrade from old version: static_config.afpacket-blocks

默认值:

inputs:
  cbpf:
    af_packet:
      tunning:
        ring_blocks: 128
1
2
3
4
5

模式:

Key Value
Type int
Range [8, 1000000]

详细描述:

配置此参数后,deepflow-agent 将分配指定数量的 block 用于 AF_PACKET,每个 block 的 大小固定为 1 MByte。

#2.2.2.8.4 Packet Fanout 路数

标签:

agent_restart

FQCN:

inputs.cbpf.af_packet.tunning.packet_fanout_count

Upgrade from old version: static_config.local-dispatcher-count

默认值:

inputs:
  cbpf:
    af_packet:
      tunning:
        packet_fanout_count: 1
1
2
3
4
5

模式:

Key Value
Type int
Range [1, 64]

详细描述:

数据包 Fanout 的路数大于 1 时,deepflow-agent 将开启多个 dispatcher 线程,并把数据包分散到多个处理 线程并行处理,弹性扩展 dispatcher 以优化网络应用的处理性能。增加packet_fanout_count可以降低 多核服务器的操作系统软中断数量,但会消耗更多的 CPU 和内存。

注意:参数仅在capture_mode为 0,且extra_netns_regex为空时有效。

#2.2.2.8.5 Packet Fanout 模式

标签:

agent_restart

FQCN:

inputs.cbpf.af_packet.tunning.packet_fanout_mode

Upgrade from old version: static_config.packet-fanout-mode

默认值:

inputs:
  cbpf:
    af_packet:
      tunning:
        packet_fanout_mode: 0
1
2
3
4
5

枚举可选值:

Value Note
0 PACKET_FANOUT_HASH
1 PACKET_FANOUT_LB
2 PACKET_FANOUT_CPU
3 PACKET_FANOUT_ROLLOVER
4 PACKET_FANOUT_RND
5 PACKET_FANOUT_QM
6 PACKET_FANOUT_CBPF
7 PACKET_FANOUT_EBPF

模式:

Key Value
Type int

详细描述:

数据包 Fanout 的算法/模式。参考:

  • https://github.com/torvalds/linux/blob/afcd48134c58d6af45fb3fdb648f1260b20f2326/include/uapi/linux/if_packet.h#L71
  • https://www.stackpath.com/blog/bpf-hook-points-part-1/
#2.2.2.8.6 开启网卡混杂模式

标签:

agent_restart

FQCN:

inputs.cbpf.af_packet.tunning.interface_promisc_enabled

默认值:

inputs:
  cbpf:
    af_packet:
      tunning:
        interface_promisc_enabled: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

如下场景需要开启混杂模式:

  • capture_mode 等于 1 或 2
  • capture_mode 等于 0 并且无法采集到虚拟机的流量 注意:网卡开启混杂模式后会采集更多的流量导致性能降低。

#2.2.3 特殊网络

#2.2.3.1 DPDK

#2.2.3.1.1 source

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.special_network.dpdk.source

默认值:

inputs:
  cbpf:
    special_network:
      dpdk:
        source: None
1
2
3
4
5

枚举可选值:

Value Note
None
eBPF
pdump

模式:

Key Value
Type string

详细描述:

目前支持两种采集 DPDK 流量的方式,包括:

  • pdump: 详情见 https://dpdk-docs.readthedocs.io/en/latest/prog_guide/multi_proc_support.html
  • eBPF: 使用 eBPF Uprobe 的方式获取 DPDK 流量

#2.2.3.2 Libpcap

#2.2.3.2.1 Enabled

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.special_network.libpcap.enabled

Upgrade from old version: static_config.libpcap-enabled

默认值:

inputs:
  cbpf:
    special_network:
      libpcap:
        enabled: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

libpcap 的启动开关,该参数在 Windows 系统中默认开启,在 Linux 系统中默认关闭。libcap 在 Windows 和 Linux 系统中均支持,但在多接口的环境中流量采集性能较低。

#2.2.3.3 vHost User

#2.2.3.3.1 vHost Socket Path

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.special_network.vhost_user.vhost_socket_path

Upgrade from old version: static_config.vhost-socket-path

默认值:

inputs:
  cbpf:
    special_network:
      vhost_user:
        vhost_socket_path: ''
1
2
3
4
5

模式:

Key Value
Type string

详细描述:

支持在 Linux 环境中以虚拟网络镜像模式运行。

#2.2.3.4 物理交换机

#2.2.3.4.1 sFlow 接收端口号

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.special_network.physical_switch.sflow_ports

Upgrade from old version: static_config.xflow-collector.sflow-ports

默认值:

inputs:
  cbpf:
    special_network:
      physical_switch:
        sflow_ports: []
1
2
3
4
5

模式:

Key Value
Type int
Range [1, 65535]

详细描述:

配置 sFlow 的接收端口号,默认值[]表示不采集 sFlow 数据。通常 sFlow 使用 6343 端口。 注意,该特性仅对企业版的 Trident 有效。

#2.2.3.4.2 NetFlow 接收端口号

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.special_network.physical_switch.netflow_ports

Upgrade from old version: static_config.xflow-collector.netflow-ports

默认值:

inputs:
  cbpf:
    special_network:
      physical_switch:
        netflow_ports: []
1
2
3
4
5

模式:

Key Value
Type int
Range [1, 65535]

详细描述:

配置 NetFlow 的接收端口号,默认值[]表示不采集 NetFlow 数据。通常 sFlow 使用 2055 端口。 注意,该特性仅对企业版的 Trident 有效,且目前仅支持 NetFlow v5 协议。

#2.2.4 调优

#2.2.4.1 启用 Dispatcher 队列

标签:

agent_restart

FQCN:

inputs.cbpf.tunning.dispatcher_queue_enabled

Upgrade from old version: static_config.dispatcher-queue

默认值:

inputs:
  cbpf:
    tunning:
      dispatcher_queue_enabled: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

当 capture_mode 为 0 或 1时该配置生效。

对所有流量采集方式都可用。

#2.2.4.2 最大采集包长

标签:

hot_update

FQCN:

inputs.cbpf.tunning.max_capture_packet_size

Upgrade from old version: capture_packet_size

默认值:

inputs:
  cbpf:
    tunning:
      max_capture_packet_size: 65535
1
2
3
4

模式:

Key Value
Type int
Unit byte
Range [128, 65535]

详细描述:

该参数配置对 DPDK 环境无效。

#2.2.4.3 裸包缓冲区 Block 大小

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.tunning.raw_packet_buffer_block_size

Upgrade from old version: static_config.analyzer-raw-packet-block-size

默认值:

inputs:
  cbpf:
    tunning:
      raw_packet_buffer_block_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [65536, 16000000]

详细描述:

Analyzer 模式下采集到的包进入队列前需要分配内存暂存。为避免每个包进行内存申请,每次开辟 raw_packet_buffer_block_size 大小的内存块给数个包使用。 更大的配置可以减少内存分配,但会延迟内存释放。

#2.2.4.4 裸包队列大小

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.tunning.raw_packet_queue_size

Upgrade from old version: static_config.analyzer-queue-size

默认值:

inputs:
  cbpf:
    tunning:
      raw_packet_queue_size: 131072
1
2
3
4

模式:

Key Value
Type int
Range [65536, 64000000]

详细描述:

以下队列的长度(仅在 capture_mode = 2 时有效):

  • 0.1-bytes-to-parse
  • 0.2-packet-to-flowgenerator
  • 0.3-packet-to-pipeline

#2.2.4.5 最大采集 PPS

标签:

hot_update

FQCN:

inputs.cbpf.tunning.max_capture_pps

Upgrade from old version: max_collect_pps

默认值:

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

模式:

Key Value
Type int
Unit pps
Range [1, 10000000]

详细描述:

deepflow-agent 采集数据包的速率上限。

#2.2.5 预处理

#2.2.5.1 隧道解封装协议

标签:

hot_update

FQCN:

inputs.cbpf.preprocess.tunnel_decap_protocols

Upgrade from old version: decap_type

默认值:

inputs:
  cbpf:
    preprocess:
      tunnel_decap_protocols:
      - 1
      - 2
1
2
3
4
5
6

枚举可选值:

Value Note
1 VXLAN
2 IPIP
3 GRE
4 Geneve

模式:

Key Value
Type int

详细描述:

deepflow-agent 需要对数据包解封装的隧道协议。

#2.2.5.2 隧道头剥离协议

标签:

agent_restart

FQCN:

inputs.cbpf.preprocess.tunnel_trim_protocols

Upgrade from old version: static_config.trim-tunnel-types

默认值:

inputs:
  cbpf:
    preprocess:
      tunnel_trim_protocols: []
1
2
3
4

枚举可选值:

Value Note
ERSPAN
VXLAN
TEB

模式:

Key Value
Type string

详细描述:

流量镜像(虚拟或物理)模式下,deepflow-agent 需要剥离的隧道头协议类型。

#2.2.5.3 TCP分段重组开关

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.preprocess.packet_segmentation_reassembly

Upgrade from old version: static_config.packet-segmentation-reassembly

默认值:

inputs:
  cbpf:
    preprocess:
      packet_segmentation_reassembly: []
1
2
3
4

模式:

Key Value
Type int
Range [1, 65535]

详细描述:

开启后会将连续的两个 TCP Packet 聚合在一起做应用日志解析

#2.2.6 物理网络流量镜像

#2.2.6.1 默认采集网络类型

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.physical_mirror.default_capture_network_type

Upgrade from old version: static_config.default-tap-type

默认值:

inputs:
  cbpf:
    physical_mirror:
      default_capture_network_type: 3
1
2
3
4

枚举可选值:

Value Note
3 云网络
DYNAMIC_OPTIONS DYNAMIC_OPTIONS

模式:

Key Value
Type int

详细描述:

物理网络镜像模式下,deepflow-agent 通过镜像流量的外层 VLAN 标签识别并标记采集数据的 TAP(Traffic Access Point)值。当流量外层 VLAN 标签没有对应的 TAP 值,或 VLAN pcp 值与 'vlan_pap_in_physical_mirror_traffic'的配置不一致时,deepflow-agent 使用本参数值 标记数据的 TAP 值。

#2.2.6.2 禁用 Packet 去重

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.physical_mirror.packet_dedup_disabled

Upgrade from old version: static_config.analyzer-dedup-disabled

默认值:

inputs:
  cbpf:
    physical_mirror:
      packet_dedup_disabled: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

物理网络镜像模式下该参数配置为 true 时,deepflow-agent 将不对数据包做去重处理。

#2.2.6.3 专有云网关流量

标签:

agent_restart ee_feature

FQCN:

inputs.cbpf.physical_mirror.private_cloud_gateway_traffic

Upgrade from old version: static_config.cloud-gateway-traffic

默认值:

inputs:
  cbpf:
    physical_mirror:
      private_cloud_gateway_traffic: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

物理网络镜像模式下该参数配置为 true 时,deepflow-agent 会将流量识别为 NFVGW 流量。

#2.3 eBPF

#2.3.1 Disabled

标签:

agent_restart

FQCN:

inputs.ebpf.disabled

Upgrade from old version: static_config.ebpf.disabled

默认值:

inputs:
  ebpf:
    disabled: false
1
2
3

模式:

Key Value
Type bool

详细描述:

eBPF 特性的总开关。

#2.3.2 Socket

#2.3.2.1 Uprobe

#2.3.2.1.1 Golang
#2.3.2.1.1.1 Enabled

标签:

agent_restart

FQCN:

inputs.ebpf.socket.uprobe.golang.enabled

Upgrade from old version: static_config.ebpf.uprobe-golang-trace-enabled, static_config.ebpf.uprobe-process-name-regexs.golang

默认值:

inputs:
  ebpf:
    socket:
      uprobe:
        golang:
          enabled: false
1
2
3
4
5
6

模式:

Key Value
Type bool

详细描述:

Golang 程序 HTTP2/HTTPS 协议数据采集及零侵扰追踪特性的开启开关。

#2.3.2.1.1.2 追踪超时时间

标签:

agent_restart

FQCN:

inputs.ebpf.socket.uprobe.golang.tracing_timeout

Upgrade from old version: static_config.ebpf.go-tracing-timeout

默认值:

inputs:
  ebpf:
    socket:
      uprobe:
        golang:
          tracing_timeout: 120s
1
2
3
4
5
6

模式:

Key Value
Type duration
Range [0, '1d']

详细描述:

Golang 程序追踪时请求与响应之间的最大时间间隔,设置为 0 时,Golang 程序的零侵扰追踪特性自动关闭。

#2.3.2.1.2 TLS
#2.3.2.1.2.1 Enabled

标签:

agent_restart

FQCN:

inputs.ebpf.socket.uprobe.tls.enabled

Upgrade from old version: static_config.ebpf.uprobe-openssl-trace-enabled, static_config.ebpf.uprobe-process-name-regexs.openssl

默认值:

inputs:
  ebpf:
    socket:
      uprobe:
        tls:
          enabled: false
1
2
3
4
5
6

模式:

Key Value
Type bool

详细描述:

应用程序 openssl 采集开关,开启后 deepflow-agent 将获取进程信息并用 Uprobe Hook 到 opessl 的 加密/解密接口,以采集 HTTPS 协议加密前、解密后的数据。 确定应用程序是否使用 openssl 的方法:

`cat /proc/<PID>/maps | grep "libssl.so"`
1
#2.3.2.1.3 DPDK
#2.3.2.1.3.1 DPDK 应用命令名称

标签:

agent_restart ee_feature

FQCN:

inputs.ebpf.socket.uprobe.dpdk.command

默认值:

inputs:
  ebpf:
    socket:
      uprobe:
        dpdk:
          command: ''
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

设置 DPDK 应用的命令名称, eBPF 会自动寻找并进行追踪采集数据包

配置样例: 如果命令行是 /usr/bin/mydpdk, 可以配置成 command: mydpdk

#2.3.2.1.3.2 DPDK 应用数据包接收 hook 点设置

标签:

agent_restart ee_feature

FQCN:

inputs.ebpf.socket.uprobe.dpdk.rx_hooks

默认值:

inputs:
  ebpf:
    socket:
      uprobe:
        dpdk:
          rx_hooks: []
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

根据实际的网卡驱动填写合适的数据包接收 hook 点,可以利用命令 'lspci -vmmk' 寻找网卡驱动类型例如:

Slot:   04:00.0
Class:  Ethernet controller
Vendor: Intel Corporation
Device: Ethernet Controller XL710 for 40GbE QSFP+
SVendor:        Unknown vendor 1e18
SDevice:        Device 4712
Rev:    02
Driver: igb_uio
Module: i40e
1
2
3
4
5
6
7
8
9

上面的 "Driver: igb_uio" 说明是 DPDP 纳管的设备 (除此之外还有 "vfio-pci", "uio_pci_generic" 也被 DPDK 纳管), 真实驱动是 'i40e' (从 'Module: i40e' 得到)

可以使用 deepflow 提供的可持续剖析功能对 DPDK 应用做函数剖析查看具体接口名字,也可以使用 perf 命令 在agent所在节点上运行 perf record -F97 -a -g -p <dpdk应用进程号> -- sleep 30perf script | grep -E 'recv|xmit|rx|tx' | grep <drive_name> (drive_name may be ixgbe/i40e/mlx5) 来确认驱动接口。

下面列出了不同驱动对应的接口名称,仅供参考:

  1. Physical NIC Drivers:
    • Intel Drivers:
      • ixgbe: Supports Intel 82598/82599/X520/X540/X550 series NICs.
        • rx: ixgbe_recv_pkts, ixgbe_recv_pkts_vec
        • tx: ixgbe_xmit_pkts, ixgbe_xmit_fixed_burst_vec, ixgbe_xmit_pkts_vec
      • i40e: Supports Intel X710, XL710 series NICs.
        • rx: i40e_recv_pkts
        • tx: i40e_xmit_pkts
      • ice: Supports Intel E810 series NICs.
        • rx: ice_recv_pkts
        • tx: ice_xmit_pkts
    • Mellanox Drivers:
      • mlx4: Supports Mellanox ConnectX-3 series NICs.
        • rx: mlx4_rx_burst
        • tx: mlx4_tx_burst
      • mlx5: Supports Mellanox ConnectX-4, ConnectX-5, ConnectX-6 series NICs.
        • rx: mlx5_rx_burst, mlx5_rx_burst_vec, mlx5_rx_burst_mprq
        • tx: Pending confirmation
    • Broadcom Drivers:
      • bnxt: Supports Broadcom NetXtreme series NICs.
        • rx: bnxt_recv_pkts, bnxt_recv_pkts_vec (x86, Vector mode receive)
        • tx: bnxt_xmit_pkts, bnxt_xmit_pkts_vec (x86, Vector mode transmit)
  2. Virtual NIC Drivers:
    • Virtio Driver:
      • virtio: Supports Virtio-based virtual network interfaces.
        • rx: virtio_recv_pkts, virtio_recv_mergeable_pkts_packed, virtio_recv_pkts_packed, virtio_recv_pkts_vec, virtio_recv_pkts_inorder, virtio_recv_mergeable_pkts
        • tx: virtio_xmit_pkts_packed, virtio_xmit_pkts,
    • VMXNET3 Driver:
      • vmxnet3: Supports VMware's VMXNET3 virtual NICs.
        • rx: vmxnet3_recv_pkts
        • tx: vmxnet3_xmit_pkts

配置样例: rx_hooks: [ixgbe_recv_pkts, i40e_recv_pkts, virtio_recv_pkts, virtio_recv_mergeable_pkts]

注意:在当前 DPDK 驱动接口的突发模式下发送和接收数据包时,旧版 Linux 内核(低于 5.2)的 eBPF 指令数量限制为 4096。 因此,在 DPDK 捕获数据包期间,最多只能捕获 16 个数据包。对于 Linux 5.2 及以上版本的内核,最多可捕获 32 个数 据包(这通常是 DPDK 突发模式的默认值)。对于低于 Linux 5.2 的内核,如果突发大小超过 16,可能会发生数据包丢失。

#2.3.2.1.3.3 DPDK 应用数据包发送 hook 点设置

标签:

agent_restart ee_feature

FQCN:

inputs.ebpf.socket.uprobe.dpdk.tx_hooks

默认值:

inputs:
  ebpf:
    socket:
      uprobe:
        dpdk:
          tx_hooks: []
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

根据实际的网卡驱动填写合适的数据包发送 hook 点, 获取驱动方法和发送hook点设置以及注意事项参考 'rx_hooks' 的说明.

配置样例: tx_hooks: [i40e_xmit_pkts, virtio_xmit_pkts_packed, virtio_xmit_pkts]

#2.3.2.2 Kprobe

#2.3.2.2.1 黑名单
#2.3.2.2.1.1 端口号

标签:

agent_restart

FQCN:

inputs.ebpf.socket.kprobe.blacklist.ports

Upgrade from old version: static_config.ebpf.kprobe-blacklist.port-list

默认值:

inputs:
  ebpf:
    socket:
      kprobe:
        blacklist:
          ports: ''
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

TCP 和 UDP 的端口黑名单列表。端口号列入黑名单的 socket 将被 Kprobe 采集忽略。黑名单 生效优先级高于 kprobe 白名单。

配置样例: ports: 80,1000-2000

#2.3.2.2.2 白名单
#2.3.2.2.2.1 白名单

标签:

agent_restart

FQCN:

inputs.ebpf.socket.kprobe.whitelist.ports

Upgrade from old version: static_config.ebpf.kprobe-whitelist.port-list

默认值:

inputs:
  ebpf:
    socket:
      kprobe:
        whitelist:
          ports: ''
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

TCP 和 UDP 的端口白名单列表,白名单生效优先级低于 kprobe 黑名单。 未列入黑名单、白名单的端口用 kprobe 做采集。

配置样例: ports: 80,1000-2000

#2.3.2.3 调优

#2.3.2.3.1 最大采集速率

标签:

hot_update

FQCN:

inputs.ebpf.socket.tunning.max_capture_rate

Upgrade from old version: static_config.ebpf.global-ebpf-pps-threshold

默认值:

inputs:
  ebpf:
    socket:
      tunning:
        max_capture_rate: 0
1
2
3
4
5

模式:

Key Value
Type int
Unit Per Second
Range [0, 64000000]

详细描述:

eBPF 数据的最大采集速率,设置为 0 表示不对 deepflow-agent 的 eBPF 数据采集速率做限制。

#2.3.2.3.2 禁用 syscall_trace_id 相关的计算

标签:

agent_restart

FQCN:

inputs.ebpf.socket.tunning.syscall_trace_id_disabled

默认值:

inputs:
  ebpf:
    socket:
      tunning:
        syscall_trace_id_disabled: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

当 trace_id 注入所有请求时,所有请求的 syscall_trace_id 计算逻辑可以关闭。这将大大减少 eBPF hook 进程的 CPU 消耗。

#2.3.2.3.3 禁用预分配内存

标签:

agent_restart

FQCN:

inputs.ebpf.socket.tunning.map_prealloc_disabled

Upgrade from old version: static_config.ebpf.map-prealloc-disabled

默认值:

inputs:
  ebpf:
    socket:
      tunning:
        map_prealloc_disabled: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

当完整的map预分配过于昂贵时,将 map_prealloc_disabled 设置为 true 可以防止在定义map时进行 内存预分配,但这可能会导致一些性能下降。此配置仅适用于 BPF_MAP_TYPE_HASH 类型的 bpf map。 目前适用于 socket trace 和 uprobe Golang/OpenSSL trace 功能。禁用内存预分配大约会减少45M的内存占用。

#2.3.2.4 预处理

#2.3.2.4.1 乱序重排(OOOR)缓冲区大小

标签:

agent_restart ee_feature

FQCN:

inputs.ebpf.socket.preprocess.out_of_order_reassembly_cache_size

Upgrade from old version: static_config.ebpf.syscall-out-of-order-cache-size

默认值:

inputs:
  ebpf:
    socket:
      preprocess:
        out_of_order_reassembly_cache_size: 16
1
2
3
4
5

模式:

Key Value
Type int
Range [8, 1024]

详细描述:

由于 eBPF socket 事件是以批处理的方式向用户态空间发送数据,同一个应用调用的请求、响应由不同 CPU 处理时,可能 会出现请求、响应乱序的情况,开启 Syscall 数据乱序重排特性后,每个 TCP/UDP 流会缓存一定数量的 eBPF socket 事件,以修正乱序数据对应用调用解析的影响。该参数设置了每个 TCP/UDP 流可以缓存的 eBPF socket 事件数量上限(每 条事件数据占用的字节数上限受l7_log_packet_size控制)。在 Syscall 数据乱序较严重导致应用调用采集不全的环境 中,可适当调大该参数。

#2.3.2.4.2 乱序重排(OOOR)协议列表

标签:

agent_restart ee_feature

FQCN:

inputs.ebpf.socket.preprocess.out_of_order_reassembly_protocols

Upgrade from old version: static_config.ebpf.syscall-out-of-order-reassembly

默认值:

inputs:
  ebpf:
    socket:
      preprocess:
        out_of_order_reassembly_protocols: []
1
2
3
4
5

枚举可选值:

Value Note
DYNAMIC_OPTIONS

模式:

Key Value
Type string

详细描述:

配置后 deepflow-agent 将对指定应用协议的处理增加乱序重排过程。注意:(1)开启特性将消耗更多的内存,因此 需关注 agent 内存用量;(2)如需对gRPC协议乱序重排,请配置HTTP2协议。

#2.3.2.4.3 分段重组(SR)协议列表

标签:

agent_restart ee_feature

FQCN:

inputs.ebpf.socket.preprocess.segmentation_reassembly_protocols

Upgrade from old version: static_config.ebpf.syscall-segmentation-reassembly

默认值:

inputs:
  ebpf:
    socket:
      preprocess:
        segmentation_reassembly_protocols: []
1
2
3
4
5

枚举可选值:

Value Note
DYNAMIC_OPTIONS

模式:

Key Value
Type string

详细描述:

配置后 deepflow-agent 将对指定应用协议的处理增加分片重组过程,将多个 Syscall 的内容分片重组后再进行 协议解析,以增强应用协议的采集成功率。注意:(1)该特性的生效的前提条件是syscall-out-of-order-reassembly 开启并生效;(2)如需对gRPC协议乱序重排,请配置HTTP2协议。

#2.3.3 File

#2.3.3.1 IO 事件

#2.3.3.1.1 采集模式

标签:

agent_restart

FQCN:

inputs.ebpf.file.io_event.collect_mode

Upgrade from old version: static_config.ebpf.io-event-collect-mode

默认值:

inputs:
  ebpf:
    file:
      io_event:
        collect_mode: 1
1
2
3
4
5

枚举可选值:

Value Note
0 禁用
1 调用生命周期
2 全部

模式:

Key Value
Type int

详细描述:

采集模式:

  • 0:不采集任何文件 IO 事件。
  • 1:仅采集调用生命周期内的文件 IO 事件。
  • 2:采集所有的文件 IO 事件。
#2.3.3.1.2 最小耗时

标签:

agent_restart

FQCN:

inputs.ebpf.file.io_event.minimal_duration

Upgrade from old version: static_config.ebpf.io-event-minimal-duration

默认值:

inputs:
  ebpf:
    file:
      io_event:
        minimal_duration: 1ms
1
2
3
4
5

模式:

Key Value
Type duration
Range ['1ns', '1s']

详细描述:

deepflow-agent 所采集的文件 IO 事件的时延下限阈值,操作系统中时延低于此阈值 的文件 IO 事件将被忽略。

#2.3.4 Profile

#2.3.4.1 栈回溯

#2.3.4.1.1 禁用 DWARF 栈回溯

标签:

hot_update

FQCN:

inputs.ebpf.profile.unwinding.dwarf_disabled

Upgrade from old version: static_config.ebpf.dwarf-disabled

默认值:

inputs:
  ebpf:
    profile:
      unwinding:
        dwarf_disabled: true
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

默认设置为“true”,将禁用 DWARF 栈回溯,对所有进程使用基于帧指针的回溯,如果进程不包含帧指针将无法显示正常的栈。 设置为“false”将对所有不包含帧指针的进程启用 DWARF 回溯。采集器使用启发式算法判断待剖析进程是否包含帧指针。 设置 dwarf_regex 后,将强制对匹配的进程使用 DWARF 回溯。

#2.3.4.1.2 DWARF 回溯进程匹配正则表达式

标签:

hot_update

FQCN:

inputs.ebpf.profile.unwinding.dwarf_regex

Upgrade from old version: static_config.ebpf.dwarf-regex

默认值:

inputs:
  ebpf:
    profile:
      unwinding:
        dwarf_regex: ''
1
2
3
4
5

模式:

Key Value
Type string

详细描述:

如设置为空,采集器将使用启发式算法判断待剖析进程是否包含帧指针,并对不包含帧指针的进程使用 DWARF 栈回溯。 如设置为合法正则表达式,采集器将不再自行推断进程是否包含帧指针,改用该正则表达式对进程名进行匹配,仅对匹配的进程使用 DWARF 帧回溯。

#2.3.4.1.3 DWARF 回溯进程表容量

标签:

hot_update

FQCN:

inputs.ebpf.profile.unwinding.dwarf_process_map_size

Upgrade from old version: static_config.ebpf.dwarf-process-map-size

默认值:

inputs:
  ebpf:
    profile:
      unwinding:
        dwarf_process_map_size: 1024
1
2
3
4
5

模式:

Key Value
Type int
Range [1, 131072]

详细描述:

每个需要进行 DWARF 回溯的进程在该表中有一条记录,用于关联进程和回溯记录分片。 每条记录大约占 8K 内存,默认配置大约需要分配 8M 内核内存。 由于是哈希表,配置可以比最大进程号低。 该配置只在 DWARF 功能开启时生效。

#2.3.4.1.4 DWARF 回溯分片表容量

标签:

hot_update

FQCN:

inputs.ebpf.profile.unwinding.dwarf_shard_map_size

Upgrade from old version: static_config.ebpf.dwarf-shard-map-size

默认值:

inputs:
  ebpf:
    profile:
      unwinding:
        dwarf_shard_map_size: 128
1
2
3
4
5

模式:

Key Value
Type int
Range [1, 4096]

详细描述:

DWARF 回溯记录分片数量。 每条记录大约占 1M 内存,默认配置大约需要分配 128M 内核内存。 该配置只在 DWARF 功能开启时生效。

#2.3.4.2 On-CPU

#2.3.4.2.1 Disabled

标签:

agent_restart

FQCN:

inputs.ebpf.profile.on_cpu.disabled

Upgrade from old version: static_config.ebpf.on-cpu-profile.disabled

默认值:

inputs:
  ebpf:
    profile:
      on_cpu:
        disabled: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

eBPF On-CPU profile 数据的采集开关。

#2.3.4.2.2 采样频率

标签:

agent_restart

FQCN:

inputs.ebpf.profile.on_cpu.sampling_frequency

Upgrade from old version: static_config.ebpf.on-cpu-profile.frequency

默认值:

inputs:
  ebpf:
    profile:
      on_cpu:
        sampling_frequency: 99
1
2
3
4
5

模式:

Key Value
Type int
Range [1, 1000]

详细描述:

eBPF On-CPU profile 数据的采样周期。

#2.3.4.2.3 按 CPU 聚合

标签:

agent_restart

FQCN:

inputs.ebpf.profile.on_cpu.aggregate_by_cpu

Upgrade from old version: static_config.ebpf.on-cpu-profile.cpu

默认值:

inputs:
  ebpf:
    profile:
      on_cpu:
        aggregate_by_cpu: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

采集 On-CPU 采样数据时,是否获取 CPUID 的开关。

  • 1: 表示在采集 On-CPU 采样数据时获取 CPUID (On-CPU 剖析时,支持对单个 CPU 的分析)。
  • 0: 表示在采集 On-CPU 采样数据时不获取 CPUID (On-CPU 剖析时,不支持单个 CPU 的分析)。

#2.3.4.3 Off-CPU

#2.3.4.3.1 Disabled

标签:

agent_restart ee_feature

FQCN:

inputs.ebpf.profile.off_cpu.disabled

Upgrade from old version: static_config.ebpf.off-cpu-profile.disabled

默认值:

inputs:
  ebpf:
    profile:
      off_cpu:
        disabled: true
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

eBPF Off-CPU profile 数据的采集开关。

#2.3.4.3.2 按 CPU 聚合

标签:

agent_restart ee_feature

FQCN:

inputs.ebpf.profile.off_cpu.aggregate_by_cpu

Upgrade from old version: static_config.ebpf.off-cpu-profile.cpu

默认值:

inputs:
  ebpf:
    profile:
      off_cpu:
        aggregate_by_cpu: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

采集 Off-CPU 数据时,是否获取 CPUID 的开关。

  • 1: 表示在采集 Off-CPU 数据时获取 CPUID (Off-CPU 剖析时,支持对单个 CPU 的分析)。
  • 0: 表示在采集 Off-CPU 数据时不获取 CPUID (Off-CPU 剖析时,不支持单个 CPU 的分析)。
#2.3.4.3.3 最小阻塞时间

标签:

agent_restart ee_feature

FQCN:

inputs.ebpf.profile.off_cpu.min_blocking_time

Upgrade from old version: static_config.ebpf.off-cpu-profile.minblock

默认值:

inputs:
  ebpf:
    profile:
      off_cpu:
        min_blocking_time: 50us
1
2
3
4
5

模式:

Key Value
Type duration
Range [0, '1h']

详细描述:

低于'最小阻塞时间'的 Off-CPU 数据将被 deepflow-agent 忽略,'最小阻塞时间'设置为 '0' 表示 采集所有的 Off-CPU 数据。由于 CPU 调度事件数量庞大(每秒可能超过一百万次),调小该参数将带来 明显的资源开销,如果需要跟踪大时延的调度阻塞事件,建议调大该参数,以降低资源开销。另外,deepflow-agent 不采集阻塞超过 1 小时的事件。

#2.3.4.4 Memory

#2.3.4.4.1 Disabled

标签:

hot_update ee_feature

FQCN:

inputs.ebpf.profile.memory.disabled

Upgrade from old version: static_config.ebpf.memory-profile.disabled

默认值:

inputs:
  ebpf:
    profile:
      memory:
        disabled: true
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

eBPF memory profile 数据的采集开关。

#2.3.4.4.2 内存剖析上报间隔

标签:

hot_update ee_feature

FQCN:

inputs.ebpf.profile.memory.report_interval

Upgrade from old version: static_config.ebpf.memory-profile.report-interval

默认值:

inputs:
  ebpf:
    profile:
      memory:
        report_interval: 10s
1
2
3
4
5

模式:

Key Value
Type duration
Range ['1s', '60s']

详细描述:

deepflow-agent 聚合和上报内存剖析数据的间隔。

#2.3.4.5 预处理

#2.3.4.5.1 函数栈压缩

标签:

agent_restart

FQCN:

inputs.ebpf.profile.preprocess.stack_compression

Upgrade from old version: static_config.ebpf.preprocess.stack-compression

默认值:

inputs:
  ebpf:
    profile:
      preprocess:
        stack_compression: true
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

发送数据之前压缩函数调用栈。压缩能够有效降低 agent 的内存开销、数据传输的带宽消耗、以及 ingester 的 CPU 开销,但是 Agent 也会因此消耗更多的 CPU。测试表明,将deepflow-agent 自身的 on-cpu 函数调用栈压缩,可以将带宽消耗降低 x 倍,但会使得 agent 额外消耗 y% 的 CPU。

#2.3.5 调优

#2.3.5.1 采集队列大小

标签:

agent_restart

FQCN:

inputs.ebpf.tunning.collector_queue_size

Upgrade from old version: static_config.ebpf-collector-queue-size

默认值:

inputs:
  ebpf:
    tunning:
      collector_queue_size: 65535
1
2
3
4

模式:

Key Value
Type int
Range [4096, 64000000]

详细描述:

以下 deepflow-agent 的 eBPF 数据采集队列大小(分别限制):

  • 0-ebpf-to-ebpf-collector
  • 1-proc-event-to-sender
  • 1-profile-to-sender

#2.3.5.2 用户态工作线程数

标签:

agent_restart

FQCN:

inputs.ebpf.tunning.userspace_worker_threads

Upgrade from old version: static_config.ebpf.thread-num

默认值:

inputs:
  ebpf:
    tunning:
      userspace_worker_threads: 1
1
2
3
4

模式:

Key Value
Type int
Range [1, 1024]

详细描述:

参与用户态数据处理的工作线程数量。实际最大值为主机 CPU 逻辑核心数。

#2.3.5.3 Perf Page 数量

标签:

agent_restart

FQCN:

inputs.ebpf.tunning.perf_pages_count

Upgrade from old version: static_config.ebpf.perf-pages-count

默认值:

inputs:
  ebpf:
    tunning:
      perf_pages_count: 128
1
2
3
4

模式:

Key Value
Type int
Range [32, 8192]

详细描述:

内核共享内存占用的页数。值为 2^n (5 <= n <= 13)。用于 perf 数据传输。 如果值在 2^n2^(n+1) 之间,将自动调整到最小值 2^n

#2.3.5.4 内核环形队列大小

标签:

agent_restart

FQCN:

inputs.ebpf.tunning.kernel_ring_size

Upgrade from old version: static_config.ebpf.ring-size

默认值:

inputs:
  ebpf:
    tunning:
      kernel_ring_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [8192, 131072]

详细描述:

内核环形队列的大小。值为 2^n (13 <= n <= 17)。 如果值在 2^n2^(n+1) 之间,将自动调整到最小值 2^n

#2.3.5.5 最大 Socket 条目数

标签:

agent_restart

FQCN:

inputs.ebpf.tunning.max_socket_entries

Upgrade from old version: static_config.ebpf.max-socket-entries

默认值:

inputs:
  ebpf:
    tunning:
      max_socket_entries: 131072
1
2
3
4

模式:

Key Value
Type int
Range [10000, 2000000]

详细描述:

设置 socket tracking 哈希表的最大条目数,根据实际场景中的并发请求数量而定。

#2.3.5.6 Socket Map 回收阈值

标签:

agent_restart

FQCN:

inputs.ebpf.tunning.socket_map_reclaim_threshold

Upgrade from old version: static_config.ebpf.socket-map-max-reclaim

默认值:

inputs:
  ebpf:
    tunning:
      socket_map_reclaim_threshold: 120000
1
2
3
4

模式:

Key Value
Type int
Range [8000, 2000000]

详细描述:

Socket map 表条目清理阈值。

#2.3.5.7 最大 Trace 条目数

标签:

agent_restart

FQCN:

inputs.ebpf.tunning.max_trace_entries

Upgrade from old version: static_config.ebpf.max-trace-entries

默认值:

inputs:
  ebpf:
    tunning:
      max_trace_entries: 131072
1
2
3
4

模式:

Key Value
Type int
Range [10000, 2000000]

详细描述:

线程和协程追踪的最大哈希表条目数。

#2.4 资源

#2.4.1 推送间隔

标签:

hot_update

FQCN:

inputs.resources.push_interval

Upgrade from old version: platform_sync_interval

默认值:

inputs:
  resources:
    push_interval: 10s
1
2
3

模式:

Key Value
Type duration
Range ['10s', '3600s']

详细描述:

deepflow-agent 主动向 deepflow-server 上报/同步资源信息的时间间隔。

#2.4.2 采集专有云资源

#2.4.2.1 启用云宿主机资源

标签:

hot_update

FQCN:

inputs.resources.private_cloud.hypervisor_resource_enabled

Upgrade from old version: platform_enabled

默认值:

inputs:
  resources:
    private_cloud:
      hypervisor_resource_enabled: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

开启开关后,deepflow-agent 将采集 KVM 或 Linux 宿主机中的 VM 信息和网络信息,并上报/同步至 deepflow-server。 采集的信息包括:

  • raw_all_vm_xml
  • raw_vm_states
  • raw_ovs_interfaces
  • raw_ovs_ports
  • raw_brctl_show
  • raw_vlan_config

#2.4.2.2 虚拟机 MAC 源

标签:

hot_update

FQCN:

inputs.resources.private_cloud.vm_mac_source

Upgrade from old version: if_mac_source

默认值:

inputs:
  resources:
    private_cloud:
      vm_mac_source: 0
1
2
3
4

枚举可选值:

Value Note
0 网卡 MAC 地址
1 网卡名称
2 Qemu XML 文件

模式:

Key Value
Type int

详细描述:

配置 deepflow-agent 提取 VM 真实 MAC 地址的方法:

  • 0: 从 tap 接口的 MAC 地址中提取 VM 的 MAC 地址
  • 1: 从 tap 接口的名字中提取 MAC 地址
  • 2: 从 VM XML 文件中提取 MAC 地址

#2.4.2.3 虚拟机 XML 文件夹

标签:

hot_update

FQCN:

inputs.resources.private_cloud.vm_xml_directory

Upgrade from old version: vm_xml_path

默认值:

inputs:
  resources:
    private_cloud:
      vm_xml_directory: /etc/libvirt/qemu/
1
2
3
4

模式:

Key Value
Type string
Range [0, 100]

详细描述:

宿主机中存放 VM XML 文件的目录

#2.4.2.4 虚拟机 MAC 映射脚本

标签:

agent_restart

FQCN:

inputs.resources.private_cloud.vm_mac_mapping_script

Upgrade from old version: static_config.tap-mac-script

默认值:

inputs:
  resources:
    private_cloud:
      vm_mac_mapping_script: ''
1
2
3
4

模式:

Key Value
Type string
Range [0, 100]

详细描述:

复杂环境中,TAP 网卡的 MAC 地址映射关系可以通过编写脚本实现。使用脚本时需要满足以下条件:

  1. if_mac_source = 2
  2. tap_mode = 0
  3. TAP 网卡的名称与虚拟机 XML 文件中的名称相同
  4. 脚本输出格式如下:
    • tap2d283dfe,11:22:33:44:55:66
    • tap2d283223,aa:bb:cc:dd:ee:ff

#2.4.3 采集 K8s 资源

#2.4.3.1 K8s 命名空间

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.kubernetes_namespace

Upgrade from old version: static_config.kubernetes-namespace

默认值:

inputs:
  resources:
    kubernetes:
      kubernetes_namespace: null
1
2
3
4

模式:

Key Value
Type string

详细描述:

指定采集器获取 K8s 资源时的命名空间

#2.4.3.2 K8s API 资源

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.api_resources

Upgrade from old version: static_config.kubernetes-resources

默认值:

inputs:
  resources:
    kubernetes:
      api_resources:
      - name: namespaces
      - name: nodes
      - name: pods
      - name: replicationcontrollers
      - name: services
      - name: daemonsets
      - name: deployments
      - name: replicasets
      - name: statefulsets
      - name: ingresses
1
2
3
4
5
6
7
8
9
10
11
12
13
14

模式:

Key Value
Type dict

详细描述:

指定采集器采集的 K8s 资源。

列表中的条目格式如下: { name: string group: string version: string disabled: bool field_selector: string }

默认采集的资源如下:

  • namespaces
  • nodes
  • pods
  • replicationcontrollers
  • services
  • daemonsets
  • deployments
  • replicasets
  • statefulsets
  • ingresses

禁用某个资源,在列表中添加 disabled: true 的条目:

inputs:
  resources:
    kubernetes:
      api_resources:
      - name: services
        disabled: true
1
2
3
4
5
6

启用某个资源,在列表中添加该资源的条目。注意该设置会覆盖默认的资源采集。 例如,要启用在 group appsapps.kruise.io 中的 statefulsets,需要添加两个条目:

inputs:
  resources:
    kubernetes:
      api_resources:
      - name: statefulsets
        group: apps
      - name: statefulsets
        group: apps.kruise.io
        version: v1beta1
1
2
3
4
5
6
7
8
9

要采集 openshift 中的 routes,可以使用以下设置:

inputs:
  resources:
    kubernetes:
      api_resources:
      - name: ingresses
        disabled: true
      - name: routes
1
2
3
4
5
6
7
#2.4.3.2.1 名称

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.api_resources.name

Upgrade from old version: static_config.kubernetes-resources.name

默认值:

inputs:
  resources:
    kubernetes:
      api_resources:
      - name: ''
1
2
3
4
5

枚举可选值:

Value Note
namespaces
nodes
pods
replicationcontrollers
services
daemonsets
deployments
replicasets
statefulsets
ingresses
routes
servicerules
clonesets
ippools
opengaussclusters

模式:

Key Value
Type string

详细描述:

K8s API resource name.

#2.4.3.2.2 组

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.api_resources.group

Upgrade from old version: static_config.kubernetes-resources.group

默认值:

inputs:
  resources:
    kubernetes:
      api_resources:
      - group: ''
1
2
3
4
5

模式:

Key Value
Type string

详细描述:

K8s API resource group.

#2.4.3.2.3 版本

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.api_resources.version

Upgrade from old version: static_config.kubernetes-resources.version

默认值:

inputs:
  resources:
    kubernetes:
      api_resources:
      - version: ''
1
2
3
4
5

模式:

Key Value
Type string

详细描述:

K8s API version.

#2.4.3.2.4 Disabled

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.api_resources.disabled

Upgrade from old version: static_config.kubernetes-resources.disabled

默认值:

inputs:
  resources:
    kubernetes:
      api_resources:
      - disabled: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

K8s API resource disabled.

#2.4.3.2.5 Field Selector

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.api_resources.field_selector

Upgrade from old version: static_config.kubernetes-resources.field-selector

默认值:

inputs:
  resources:
    kubernetes:
      api_resources:
      - field_selector: ''
1
2
3
4
5

模式:

Key Value
Type string

详细描述:

K8s API resource field selector.

#2.4.3.3 K8s API List 页大小

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.api_list_page_size

Upgrade from old version: static_config.kubernetes-api-list-limit

默认值:

inputs:
  resources:
    kubernetes:
      api_list_page_size: 1000
1
2
3
4

模式:

Key Value
Type int
Range [10, 4294967295]

详细描述:

用于指定 K8s 资源获取分页大小。

#2.4.3.4 K8s API List 最大间隔

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.api_list_max_interval

Upgrade from old version: static_config.kubernetes-api-list-interval

默认值:

inputs:
  resources:
    kubernetes:
      api_list_max_interval: 10m
1
2
3
4

模式:

Key Value
Type duration
Range ['10m', '30d']

详细描述:

当 watcher 未收到更新时,获取 K8s 资源的间隔时间。

#2.4.3.5 Ingress Flavour

标签:

deprecated

FQCN:

inputs.resources.kubernetes.ingress_flavour

Upgrade from old version: static_config.ingress-flavour

默认值:

inputs:
  resources:
    kubernetes:
      ingress_flavour: kubernetes
1
2
3
4

模式:

Key Value
Type string

#2.4.3.6 Pod MAC 地址采集方法

标签:

agent_restart

FQCN:

inputs.resources.kubernetes.pod_mac_collection_method

Upgrade from old version: static_config.kubernetes-poller-type

默认值:

inputs:
  resources:
    kubernetes:
      pod_mac_collection_method: adaptive
1
2
3
4

枚举可选值:

Value Note
adaptive
active
passive

模式:

Key Value
Type string

详细描述:

  • passive: deepflow-agent 采集 ARP/ND 数据包 计算其他 POD 的 MAC 和 IP 信息。
  • active: deepflow-agent 通过 setns 进入其他 POD 的 netns 查询 MAC 和 IP 信息(部署 时需要 SYS_ADMIN 权限)。
  • adaptive: deepflow-agent 优先使用 active 模式获取其他 POD 的 MAC 和 IP 信息。

#2.5 集成

#2.5.1 Enabled

标签:

hot_update

FQCN:

inputs.integration.enabled

Upgrade from old version: external_agent_http_proxy_enabled

默认值:

inputs:
  integration:
    enabled: true
1
2
3

模式:

Key Value
Type bool

详细描述:

开关开启后,deepflow-agent 将开启外部数据的接收服务接口,以集成来自 Prometheus、 Telegraf、OpenTelemetry 和 Skywalking 的数据。

#2.5.2 监听端口

标签:

hot_update

FQCN:

inputs.integration.listen_port

Upgrade from old version: external_agent_http_proxy_port

默认值:

inputs:
  integration:
    listen_port: 38086
1
2
3

模式:

Key Value
Type int
Range [1, 65535]

详细描述:

deepflow-agent 外部数据接收服务的监听端口。

#2.5.3 压缩

#2.5.3.1 Trace

标签:

agent_restart

FQCN:

inputs.integration.compression.trace

Upgrade from old version: static_config.external-agent-http-proxy-compressed

默认值:

inputs:
  integration:
    compression:
      trace: true
1
2
3
4

模式:

Key Value
Type bool

详细描述:

开启后,deepflow-agent 将对集成的追踪数据进行压缩处理,压缩比例在 5:1~10:1 之间。注意: 开启此特性将增加 deepflow-agent 的 CPU 消耗。

#2.5.3.2 Profile

标签:

agent_restart

FQCN:

inputs.integration.compression.profile

Upgrade from old version: static_config.external-agent-http-proxy-profile-compressed

默认值:

inputs:
  integration:
    compression:
      profile: true
1
2
3
4

模式:

Key Value
Type bool

详细描述:

开启后,deepflow-agent 将对集成的剖析数据进行压缩处理,压缩比例在 5:1~10:1 之间。注意: 开启此特性将增加 deepflow-agent 的 CPU 消耗。

#2.5.4 Prometheus 额外 Label

deepflow-agent 支持从 Prometheus RemoteWrite 的 http header 中获取额外的 label。

#2.5.4.1 Enabled

标签:

agent_restart

FQCN:

inputs.integration.prometheus_extra_labels.enabled

Upgrade from old version: static_config.prometheus-extra-config.enabled

默认值:

inputs:
  integration:
    prometheus_extra_labels:
      enabled: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

Prometheus 额外 lable 的获取开关。

#2.5.4.2 额外 Label

标签:

agent_restart

FQCN:

inputs.integration.prometheus_extra_labels.extra_labels

Upgrade from old version: static_config.prometheus-extra-config.labels

默认值:

inputs:
  integration:
    prometheus_extra_labels:
      extra_labels: []
1
2
3
4

模式:

Key Value
Type string

详细描述:

Prometheus 额外 label 的列表。

#2.5.4.3 Label 键总长度限制

标签:

agent_restart

FQCN:

inputs.integration.prometheus_extra_labels.label_length

Upgrade from old version: static_config.prometheus-extra-config.labels-limit

默认值:

inputs:
  integration:
    prometheus_extra_labels:
      label_length: 1024
1
2
3
4

模式:

Key Value
Type int
Unit byte
Range [1024, 1048576]

详细描述:

deepflow-agent 对 Prometheus 额外 label 解析并采集时,key 字段长度总和的上限。

#2.5.4.4 Label 值总长度限制

标签:

agent_restart

FQCN:

inputs.integration.prometheus_extra_labels.value_length

Upgrade from old version: static_config.prometheus-extra-config.values-limit

默认值:

inputs:
  integration:
    prometheus_extra_labels:
      value_length: 4096
1
2
3
4

模式:

Key Value
Type int
Unit byte
Range [4096, 4194304]

详细描述:

deepflow-agent 对 Prometheus 额外 label 解析并采集时,value 字段长度总和的上限。

#2.5.5 特性开关

#2.5.5.1 禁用 Profile 集成

标签:

agent_restart

FQCN:

inputs.integration.feature_control.profile_integration_disabled

Upgrade from old version: static_config.external-profile-integration-disabled

默认值:

inputs:
  integration:
    feature_control:
      profile_integration_disabled: false
1
2
3
4

模式:

Key Value
Type bool

#2.5.5.2 禁用 Trace 集成

标签:

agent_restart

FQCN:

inputs.integration.feature_control.trace_integration_disabled

Upgrade from old version: static_config.external-trace-integration-disabled

默认值:

inputs:
  integration:
    feature_control:
      trace_integration_disabled: false
1
2
3
4

模式:

Key Value
Type bool

#2.5.5.3 禁用 Metric 集成

标签:

agent_restart

FQCN:

inputs.integration.feature_control.metric_integration_disabled

Upgrade from old version: static_config.external-metric-integration-disabled

默认值:

inputs:
  integration:
    feature_control:
      metric_integration_disabled: false
1
2
3
4

模式:

Key Value
Type bool

#2.5.5.4 禁用 Log 集成

标签:

agent_restart

FQCN:

inputs.integration.feature_control.log_integration_disabled

Upgrade from old version: static_config.external-log-integration-disabled

默认值:

inputs:
  integration:
    feature_control:
      log_integration_disabled: false
1
2
3
4

模式:

Key Value
Type bool

#2.6 vector

#2.6.1 禁用 Vector 组件

标签:

hot_update ee_feature

FQCN:

inputs.vector.enabled

默认值:

inputs:
  vector:
    enabled: false
1
2
3

模式:

Key Value
Type bool

详细描述:

对 Vector 组件的开关控制。

#2.6.2 Vector 组件配置控制

标签:

hot_update ee_feature

FQCN:

inputs.vector.config

默认值:

inputs:
  vector:
    config: null
1
2
3

模式:

Key Value
Type dict

详细描述:

Vector 组件的具体配置,所有可用配置可在此链接中查找:vector.dev (opens new window)

config:
  sources:
    # 抓取 kubernetes 日志
    kubernetes_logs:
      self_node_name: ${K8S_NODE_NAME_FOR_DEEPFLOW}
      namespace_annotation_fields:
        namespace_labels: ""
      node_annotation_fields:
        node_labels: ""
      pod_annotation_fields:
        pod_annotations: ""
        pod_labels: ""
      type: kubernetes_logs
    # 抓取主机指标
    host_metrics:
      type: host_metrics
      scrape_interval_secs: 15
      namespace: node
    # 抓取 kubelet 指标
    kubelet_metrics:
      type: prometheus_scrape
      endpoints:
      - http://kubelet.kube-system:10250/metrics
      auth:
        strategy: bearer
        token: $FIX_ME_K8S_TOKEN
      tls:
        verify_certificate: false
      scrape_interval_secs: 15
      scrape_timeout_secs: 10
      honor_labels: true
  transforms:
    tag_kubernetes_logs:
      inputs:
      - kubernetes_logs
      source: |-
        .app_service = .kubernetes.container_name
        ._df_log_type = "system"
      type: remap
  sinks:
    # 推送指标到 deepflow
    prometheus_remote_write:
      type: prometheus_remote_write
      inputs:
      - kubelet_metrics
      - host_metrics
      endpoint: http://127.0.0.1:38086/api/v1/prometheus
      healthcheck:
        enabled: false
    # 推送日志到 deepflow
    http:
      encoding:
        codec: json
      inputs:
      - tag_kubernetes_logs
      type: http
      uri: http://127.0.0.1:38086/api/v1/log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

#3. 处理器

#3.1 Packet

#3.1.1 Policy

#3.1.1.1 Fast-path 字典大小

标签:

agent_restart

FQCN:

processors.packet.policy.fast_path_map_size

Upgrade from old version: static_config.fast-path-map-size

默认值:

processors:
  packet:
    policy:
      fast_path_map_size: 0
1
2
3
4

模式:

Key Value
Type int
Range [0, 10000000]

详细描述:

设置为0时,deepflow-agent 根据 max_memory 参数自动调整 Fast-path 字典大小。 注意:实践中不应配置小于 8000 的值。

#3.1.1.2 禁用 Fast-path

标签:

agent_restart

FQCN:

processors.packet.policy.fast_path_disabled

Upgrade from old version: static_config.fast-path-disabled

默认值:

processors:
  packet:
    policy:
      fast_path_disabled: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

设置为true时,deepflow-agent 不启用 fast path。

#3.1.1.3 Forward 表容量

标签:

agent_restart

FQCN:

processors.packet.policy.forward_table_capacity

Upgrade from old version: static_config.forward-capacity

默认值:

processors:
  packet:
    policy:
      forward_table_capacity: 16384
1
2
3
4

模式:

Key Value
Type int
Range [16384, 64000000]

详细描述:

转发表大小,用来存储 MAC-IP 信息,调大该参数,deepflow-agent 将消耗更多的内存。

#3.1.1.4 最大 First-path 层级

标签:

agent_restart

FQCN:

processors.packet.policy.max_first_path_level

Upgrade from old version: static_config.first-path-level

默认值:

processors:
  packet:
    policy:
      max_first_path_level: 8
1
2
3
4

模式:

Key Value
Type int
Range [1, 16]

详细描述:

DDBS 算法等级。

该配置越大内存开销越小,但是性能会降低。

#3.1.2 TCP 包头(时序图)

#3.1.2.1 Block 大小

标签:

agent_restart ee_feature

FQCN:

processors.packet.tcp_header.block_size

Upgrade from old version: static_config.packet-sequence-block-size

默认值:

processors:
  packet:
    tcp_header:
      block_size: 256
1
2
3
4

模式:

Key Value
Type int
Range [16, 8192]

详细描述:

压缩和保存多个 TCP 包头的缓冲区大小。

#3.1.2.2 Sender 队列大小

标签:

agent_restart ee_feature

FQCN:

processors.packet.tcp_header.sender_queue_size

Upgrade from old version: static_config.packet-sequence-queue-size

默认值:

processors:
  packet:
    tcp_header:
      sender_queue_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [65536, 64000000]

详细描述:

TCP 包时序数据的单个发送队列的大小。

#3.1.2.3 包头字段 Flag

标签:

agent_restart ee_feature

FQCN:

processors.packet.tcp_header.header_fields_flag

Upgrade from old version: static_config.packet-sequence-flag

默认值:

processors:
  packet:
    tcp_header:
      header_fields_flag: 0
1
2
3
4

模式:

Key Value
Type int
Range [0, 255]

详细描述:

使用一个 8 bit 的 flag 对 deepflow-agent 采集上报的 TCP 报文时序数据内容进行控制,不同 的 bit 位代表不同 TCP 字段的采集开关:

| FLAG | SEQ | ACK | PAYLOAD_SIZE | WINDOW_SIZE | OPT_MSS | OPT_WS | OPT_SACK |
    7     6     5              4             3         2        1          0
1
2

flag 设置为0表示全部关闭,设置为255表示全部

#3.1.3 PCAP 字节流

#3.1.3.1 Receiver 队列大小

标签:

agent_restart ee_feature

FQCN:

processors.packet.pcap_stream.receiver_queue_size

Upgrade from old version: static_config.pcap.queue-size

默认值:

processors:
  packet:
    pcap_stream:
      receiver_queue_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [65536, 64000000]

详细描述:

设置 deepflow-agent 的 1-mini-meta-packet-to-pcap 队列大小。

#3.1.3.2 每个 Flow 的缓冲区大小

标签:

agent_restart ee_feature

FQCN:

processors.packet.pcap_stream.buffer_size_per_flow

Upgrade from old version: static_config.pcap.flow-buffer-size

默认值:

processors:
  packet:
    pcap_stream:
      buffer_size_per_flow: 65536
1
2
3
4

模式:

Key Value
Type int
Range [64, 64000000]

详细描述:

按流的 PCap 缓冲区大小。到达该值时 flush 该条流的 PCap 数据。

#3.1.3.3 总体缓冲区大小

标签:

agent_restart ee_feature

FQCN:

processors.packet.pcap_stream.total_buffer_size

Upgrade from old version: static_config.pcap.buffer-size

默认值:

processors:
  packet:
    pcap_stream:
      total_buffer_size: 88304
1
2
3
4

模式:

Key Value
Type int
Range [65536, 64000000]

详细描述:

PCap 总缓冲区大小。到达该值时 flush 所有流的 PCap 数据。

#3.1.3.4 Flush 间隔

标签:

agent_restart ee_feature

FQCN:

processors.packet.pcap_stream.flush_interval

Upgrade from old version: static_config.pcap.flush-interval

默认值:

processors:
  packet:
    pcap_stream:
      flush_interval: 1m
1
2
3
4

模式:

Key Value
Type duration
Range ['1s', '10m']

详细描述:

如果一条流的 PCap buffer 超过这个时间没有进行过 flush,强制触发一次 flush。

#3.1.4 TOA (TCP Option Address)

#3.1.4.1 Sender 队列大小

标签:

agent_restart

FQCN:

processors.packet.toa.sender_queue_size

Upgrade from old version: static_config.toa-sender-queue-size

默认值:

processors:
  packet:
    toa:
      sender_queue_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [65536, 64000000]

详细描述:

以下队列的大小:

  • 1-socket-sync-toa-info-queue

#3.1.4.2 Cache 大小

标签:

agent_restart

FQCN:

processors.packet.toa.cache_size

Upgrade from old version: static_config.toa-lru-cache-size

默认值:

processors:
  packet:
    toa:
      cache_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [1, 64000000]

详细描述:

TCP Option Address 信息缓存大小。

#3.2 调用日志

#3.2.1 应用协议推断

#3.2.1.1 推断重试最大次数

标签:

agent_restart

FQCN:

processors.request_log.application_protocol_inference.inference_max_retries

Upgrade from old version: static_config.l7-protocol-inference-max-fail-count

默认值:

processors:
  request_log:
    application_protocol_inference:
      inference_max_retries: 5
1
2
3
4

模式:

Key Value
Type int
Range [0, 10000]

详细描述:

deepflow-agent 会周期性标记每一个 <vpc, ip, protocol, port> 四元组承载的应用协议类型,以加速 后续数据的应用协议采集过程。如果一个时间周期内,连续多次尝试解析 Packet 数据、Socket 数据无法推断 出该四元组承载的应用协议,agent 会将该四元组标记为 unknown 类型,并在本周期内暂停对后续数据的应用 协议解析,以避免更多的无效运算。该参数控制每个时间周期内的应用协议解析重试次数。

#3.2.1.2 推断结果 TTL

标签:

agent_restart

FQCN:

processors.request_log.application_protocol_inference.inference_result_ttl

Upgrade from old version: static_config.l7-protocol-inference-ttl

默认值:

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

模式:

Key Value
Type duration
Range [0, '1d']

详细描述:

deepflow-agent 会周期性标记每一个<vpc, ip, protocol, port>四元组承载的应用协议类型,以加速 后续数据的应用协议采集过程。为避免误判,应用协议类型的标记结果会周期性更新。该参数控制应用协议的更 新周期。

#3.2.1.3 启用协议列表

标签:

agent_restart

FQCN:

processors.request_log.application_protocol_inference.enabled_protocols

Upgrade from old version: static_config.l7-protocol-enabled

默认值:

processors:
  request_log:
    application_protocol_inference:
      enabled_protocols:
      - HTTP
      - HTTP2
      - MySQL
      - Redis
      - Kafka
      - DNS
      - TLS
1
2
3
4
5
6
7
8
9
10
11

枚举可选值:

Value Note
DYNAMIC_OPTIONS

模式:

Key Value
Type string

详细描述:

deepflow-agent 仅对列表内的应用协议进行数据采集。通过该参数可以控制 agent 的数据采集范围以 降低资源消耗。

#3.2.1.4 协议特殊配置

#3.2.1.4.1 Oracle
#3.2.1.4.1.1 Integer 字节序

标签:

agent_restart

FQCN:

processors.request_log.application_protocol_inference.protocol_special_config.oracle.is_be

Upgrade from old version: static_config.oracle-parse-config.is-be

默认值:

processors:
  request_log:
    application_protocol_inference:
      protocol_special_config:
        oracle:
          is_be: true
1
2
3
4
5
6

模式:

Key Value
Type bool

详细描述:

如果环境中 Oracle 整数编码采用大端字节序,则开启此开关。

#3.2.1.4.1.2 Integer 压缩

标签:

agent_restart

FQCN:

processors.request_log.application_protocol_inference.protocol_special_config.oracle.int_compressed

Upgrade from old version: static_config.oracle-parse-config.int-compress

默认值:

processors:
  request_log:
    application_protocol_inference:
      protocol_special_config:
        oracle:
          int_compressed: true
1
2
3
4
5
6

模式:

Key Value
Type bool

详细描述:

如果环境中 Oracle 整数编码采用压缩,则开启此开关。

#3.2.1.4.1.3 0x04 响应携带额外字节

标签:

agent_restart

FQCN:

processors.request_log.application_protocol_inference.protocol_special_config.oracle.resp_0x04_extra_byte

Upgrade from old version: static_config.oracle-parse-config.resp-0x04-extra-byte

默认值:

processors:
  request_log:
    application_protocol_inference:
      protocol_special_config:
        oracle:
          resp_0x04_extra_byte: false
1
2
3
4
5
6

模式:

Key Value
Type bool

详细描述:

在不同的 Oracle 版本中,ID 为 0x04 的响应会有不同的数据结构,如果环境中该响应数据的 影响行数前有 1byte 的额外数据,请开启此开关。

#3.2.2 过滤器

#3.2.2.1 端口号预过滤器

标签:

agent_restart

FQCN:

processors.request_log.filters.port_number_prefilters

Upgrade from old version: static_config.l7-protocol-ports

默认值:

processors:
  request_log:
    filters:
      port_number_prefilters:
        AMQP: 1-65535
        Custom: 1-65535
        DNS: 53,5353
        Dubbo: 1-65535
        FastCGI: 1-65535
        HTTP: 1-65535
        HTTP2: 1-65535
        Kafka: 1-65535
        MQTT: 1-65535
        Memcached: 11211
        MongoDB: 1-65535
        MySQL: 1-65535
        NATS: 1-65535
        OpenWire: 1-65535
        Oracle: 1521
        PostgreSQL: 1-65535
        Pulsar: 1-65535
        Redis: 1-65535
        SofaRPC: 1-65535
        SomeIP: 1-65535
        TLS: 443,6443
        Tars: 1-65535
        ZMTP: 1-65535
        RocketMQ: 1-65535
        bRPC: 1-65535
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

枚举可选值:

Value Note
DYNAMIC_OPTIONS

模式:

Key Value
Type dict

详细描述:

配置样例:

HTTP: 80,1000-2000
HTTP2: 1-65535
1
2

注意:

  1. 该参数中,HTTP2 和 TLS 协议的配置仅对 Kprobe有效,对 Uprobe 无效;

支持协议:https://www.deepflow.io/docs/features/l7-protocols/overview/

Oracle 和 TLS 仅在企业版中支持。

  1. 如需控制 gRPC 协议,请使用 HTTP2 配置。

#3.2.2.2 Tag 过滤器

标签:

agent_restart

FQCN:

processors.request_log.filters.tag_filters

Upgrade from old version: static_config.l7-log-blacklist

默认值:

processors:
  request_log:
    filters:
      tag_filters:
        AMQP: []
        Custom: []
        DNS: []
        Dubbo: []
        FastCGI: []
        HTTP: []
        HTTP2: []
        Kafka: []
        MQTT: []
        Memcached: []
        MongoDB: []
        MySQL: []
        NATS: []
        OpenWire: []
        Oracle: []
        PostgreSQL: []
        Pulsar: []
        Redis: []
        SOFARPC: []
        SomeIP: []
        TLS: []
        Tars: []
        ZMTP: []
        RocketMQ: []
        bRPC: []
        gRPC: []
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

枚举可选值:

Value Note
DYNAMIC_OPTIONS

模式:

Key Value
Type dict

详细描述:

控制不同应用协议数据采集时的 Tag。协议名不区分大小写。

#3.2.2.2.1 $HTTP Tag 过滤器

标签:

agent_restart

FQCN:

processors.request_log.filters.tag_filters.HTTP

Upgrade from old version: static_config.l7-log-blacklist.$protocol

默认值:

processors:
  request_log:
    filters:
      tag_filters:
        HTTP: []
1
2
3
4
5

模式:

Key Value
Type dict

详细描述:

HTTP Tag filter example:

processors:
  request_log:
    filters:
      tag_filters:
        HTTP:
          - field-name: request_resource  # endpoint, request_type, request_domain, request_resource
            operator: equal               # equal, prefix
            value: somevalue
1
2
3
4
5
6
7
8

A l7_flow_log tag_filter can be configured for each protocol, preventing request logs matching the blacklist from being collected by the agent or included in application performance metrics. It's recommended to only place non-business request logs like heartbeats or health checks in this blacklist. Including business request logs might lead to breaks in the distributed tracing tree.

Supported protocols: https://www.deepflow.io/docs/features/l7-protocols/overview/

Oracle and TLS is only supported in the Enterprise Edition.

#3.2.2.2.1.1 字段名

标签:

agent_restart

FQCN:

processors.request_log.filters.tag_filters.HTTP.field_name

Upgrade from old version: static_config.l7-log-blacklist.$protocol.field-name

默认值:

processors:
  request_log:
    filters:
      tag_filters:
        HTTP:
        - field_name: ''
1
2
3
4
5
6

枚举可选值:

Value Note
endpoint
request_type
request_domain
request_resource

模式:

Key Value
Type string

详细描述:

Match field name.

#3.2.2.2.1.2 匹配操作符

标签:

agent_restart

FQCN:

processors.request_log.filters.tag_filters.HTTP.operator

Upgrade from old version: static_config.l7-log-blacklist.$protocol.operator

默认值:

processors:
  request_log:
    filters:
      tag_filters:
        HTTP:
        - operator: ''
1
2
3
4
5
6

枚举可选值:

Value Note
equal
prefix

模式:

Key Value
Type string

详细描述:

Match operator.

#3.2.2.2.1.3 字段值

标签:

agent_restart

FQCN:

processors.request_log.filters.tag_filters.HTTP.field_value

Upgrade from old version: static_config.l7-log-blacklist.$protocol.value

默认值:

processors:
  request_log:
    filters:
      tag_filters:
        HTTP:
        - field_value: ''
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

匹配字段。

#3.2.2.3 不关心的 DNS NXDOMAIN 错误

标签:

agent_restart

FQCN:

processors.request_log.filters.unconcerned_dns_nxdomain_response_suffixes

Upgrade from old version: static_config.l7-protocol-advanced-features.unconcerned-dns-nxdomain-response-suffixes

默认值:

processors:
  request_log:
    filters:
      unconcerned_dns_nxdomain_response_suffixes: []
1
2
3
4

模式:

Key Value
Type string

详细描述:

配置该参数后,当系统中 DNS 响应异常为 Non-Existent Domain,且响应结果中的后缀与参数中的字段 匹配时, deepflow-agent 会将 DNS 响应码置为0,响应状态置为正常。 该特性用于忽略特定的 Non-Existent Domain 类型的 DNS 响应,比如 K8s Pod 解析外部域名时,会将 待解析域名与 cluster 内的域名后缀做拼接并多次尝试解析,因而会产生多次的 Non-Existent Domain 的响应结果,干扰数据分析。

#3.2.3 超时设置

#3.2.3.1 TCP 调用超时时间

标签:

agent_restart

FQCN:

processors.request_log.timeouts.tcp_request_timeout

Upgrade from old version: static_config.rrt-tcp-timeout

默认值:

processors:
  request_log:
    timeouts:
      tcp_request_timeout: 1800s
1
2
3
4

模式:

Key Value
Type duration
Range ['10s', '3600s']

详细描述:

deepflow-agent 采集 TCP 承载的应用调用时等待响应消息的最大时长,如果响应与请求之间的时间差超过 该参数值,该次调用将被识别为超时。该参数需大于会话合并的 SLOT_TIME (10s),并小于 3600s。

#3.2.3.2 UDP 调用超时时间

标签:

agent_restart

FQCN:

processors.request_log.timeouts.udp_request_timeout

Upgrade from old version: static_config.rrt-udp-timeout

默认值:

processors:
  request_log:
    timeouts:
      udp_request_timeout: 150s
1
2
3
4

模式:

Key Value
Type duration
Range ['10s', '300s']

详细描述:

deepflow-agent 采集 UDP 承载的应用调用时等待响应消息的最大时长,如果响应与请求之间的时间差超过 该参数值,该次调用将被识别为超时。该参数需大于会话合并的 SLOT_TIME (10s),并小于 300s。

#3.2.3.3 会话合并窗口时长

标签:

agent_restart

FQCN:

processors.request_log.timeouts.session_aggregate_window_duration

Upgrade from old version: static_config.l7-log-session-aggr-timeout

默认值:

processors:
  request_log:
    timeouts:
      session_aggregate_window_duration: 120s
1
2
3
4

模式:

Key Value
Type duration
Range ['20s', '300s']

详细描述:

应用调用日志请求、响应合并的时间窗口,超出该时间窗口的响应将不与请求合并,而是单独生成一条调用日志。

#3.2.4 标签提取

#3.2.4.1 Tracing 标签

#3.2.4.1.1 HTTP 真实客户端

标签:

hot_update

FQCN:

processors.request_log.tag_extraction.tracing_tag.http_real_client

Upgrade from old version: http_log_proxy_client

默认值:

processors:
  request_log:
    tag_extraction:
      tracing_tag:
        http_real_client:
        - X_Forwarded_For
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

配置该参数后,deepflow-agent 会尝试从 HTTP header 中匹配特征字段,并将匹配到 的结果填充到应用调用日志的http_proxy_client字段中,作为调用链追踪的特征值。

#3.2.4.1.2 X-Request-ID

标签:

hot_update

FQCN:

processors.request_log.tag_extraction.tracing_tag.x_request_id

Upgrade from old version: http_log_x_request_id

默认值:

processors:
  request_log:
    tag_extraction:
      tracing_tag:
        x_request_id:
        - X_Request_ID
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

配置该参数后,deepflow-agent 会尝试从 HTTP header 中匹配特征字段,并将匹配到 的结果填充到应用调用日志的x_request_id字段中,作为调用链追踪的特征值。

#3.2.4.1.3 APM TraceID

标签:

hot_update

FQCN:

processors.request_log.tag_extraction.tracing_tag.apm_trace_id

Upgrade from old version: http_log_trace_id

默认值:

processors:
  request_log:
    tag_extraction:
      tracing_tag:
        apm_trace_id:
        - traceparent
        - sw8
1
2
3
4
5
6
7

模式:

Key Value
Type string

详细描述:

配置该参数后,deepflow-agent 会尝试从 HTTP 和 RPC header 中匹配特征字段,并将匹配到 的结果填充到应用调用日志的trace_id字段中,作为调用链追踪的特征值。参数支持填写多个不同的 特征字段,中间用,分隔。

#3.2.4.1.4 APM SpanID

标签:

hot_update

FQCN:

processors.request_log.tag_extraction.tracing_tag.apm_span_id

Upgrade from old version: http_log_span_id

默认值:

processors:
  request_log:
    tag_extraction:
      tracing_tag:
        apm_span_id:
        - traceparent
        - sw8
1
2
3
4
5
6
7

模式:

Key Value
Type string

详细描述:

配置该参数后,deepflow-agent 会尝试从 HTTP 和 RPC header 中匹配特征字段,并将匹配到 的结果填充到应用调用日志的span_id字段中,作为调用链追踪的特征值。参数支持填写多个不同的 特征字段,中间用,分隔。

#3.2.4.2 HTTP 端点

#3.2.4.2.1 禁用提取

标签:

agent_restart

FQCN:

processors.request_log.tag_extraction.http_endpoint.extraction_disabled

Upgrade from old version: static_config.l7-protocol-advanced-features.http-endpoint-extraction.disabled

默认值:

processors:
  request_log:
    tag_extraction:
      http_endpoint:
        extraction_disabled: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

默认值为false,表示开启 HTTP 协议的 endpoint 提取功能;设置为true时,表示关闭该功能。

#3.2.4.2.2 匹配规则

标签:

agent_restart

FQCN:

processors.request_log.tag_extraction.http_endpoint.match_rules

Upgrade from old version: static_config.l7-protocol-advanced-features.http-endpoint-extraction.match-rules

默认值:

processors:
  request_log:
    tag_extraction:
      http_endpoint:
        match_rules:
        - keep_segments: 2
          url_prefix: ''
1
2
3
4
5
6
7

模式:

Key Value
Type dict

详细描述:

HTTP 协议的 endpoint 提取遵循如下规则:

  • 最长匹配原则:优先匹配最长的前缀;
  • 提取 URL 最前的数段(段数由参数确定,默认值为 2)作为 endpoint。 比如,URL 为 /a/b/c?query=xxx,deepflow-agent 默认提取 /a/b 作为 endpoint。
#3.2.4.2.2.1 URL 前缀

标签:

agent_restart

FQCN:

processors.request_log.tag_extraction.http_endpoint.match_rules.url_prefix

Upgrade from old version: static_config.l7-protocol-advanced-features.http-endpoint-extraction.match-rules.prefix

默认值:

processors:
  request_log:
    tag_extraction:
      http_endpoint:
        match_rules:
        - url_prefix: ''
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

HTTP URL 前缀。

#3.2.4.2.2.2 截取 Segment 数

标签:

agent_restart

FQCN:

processors.request_log.tag_extraction.http_endpoint.match_rules.keep_segments

Upgrade from old version: static_config.l7-protocol-advanced-features.http-endpoint-extraction.match-rules.keep-segments

默认值:

processors:
  request_log:
    tag_extraction:
      http_endpoint:
        match_rules:
        - keep_segments: 0
1
2
3
4
5
6

模式:

Key Value
Type int

详细描述:

截取 URL 的段数。

#3.2.4.3 自定义字段

标签:

agent_restart

FQCN:

processors.request_log.tag_extraction.custom_fields

Upgrade from old version: static_config.l7-protocol-advanced-features.extra-log-fields

默认值:

processors:
  request_log:
    tag_extraction:
      custom_fields:
        HTTP: []
        HTTP2: []
1
2
3
4
5
6

枚举可选值:

Value Note
HTTP
HTTP2

模式:

Key Value
Type dict

详细描述:

配置 HTTP、HTTP2、gRPC 等协议的额外提取字段。

示例:

processors:
  request_log:
    tag_extraction:
      custom_fields:
        HTTP:
        - field-name: "user-agent"
        - field-name: "cookie"
1
2
3
4
5
6
7

注意:如需配置gRPC协议,使用HTTP2匹配。

#3.2.4.3.1 $HTTP 自定义字段

标签:

agent_restart

FQCN:

processors.request_log.tag_extraction.custom_fields.HTTP

Upgrade from old version: static_config.l7-protocol-advanced-features.extra-log-fields.$protocol

默认值:

processors:
  request_log:
    tag_extraction:
      custom_fields:
        HTTP: []
1
2
3
4
5

模式:

Key Value
Type dict

详细描述:

配置 HTTP、HTTP2、gRPC 等协议的额外提取字段。

示例:

processors:
  request_log:
    tag_extraction:
      custom_fields:
        HTTP:
        - field_name: "user-agent"
        - field_name: "cookie"
1
2
3
4
5
6
7

注意:如需配置gRPC协议,使用HTTP2

#3.2.4.3.1.1 字段名

标签:

agent_restart

FQCN:

processors.request_log.tag_extraction.custom_fields.HTTP.field_name

Upgrade from old version: static_config.l7-protocol-advanced-features.extra-log-fields.$protocol.field-name

默认值:

processors:
  request_log:
    tag_extraction:
      custom_fields:
        HTTP:
        - field_name: ''
1
2
3
4
5
6

模式:

Key Value
Type string

详细描述:

字段名

#3.2.4.4 脱敏协议列表

标签:

agent_restart

FQCN:

processors.request_log.tag_extraction.obfuscate_protocols

Upgrade from old version: static_config.l7-protocol-advanced-features.obfuscate-enabled-protocols

默认值:

processors:
  request_log:
    tag_extraction:
      obfuscate_protocols:
      - Redis
1
2
3
4
5

枚举可选值:

Value Note
MySQL
PostgreSQL
HTTP
HTTP2
Redis

模式:

Key Value
Type string

详细描述:

配置该参数后,deepflow-agent 将在采集时对特定应用协议的关键数据做脱敏处理。 脱敏字段主要包括:

  • 授权信息
  • 各类语句中的 value 信息

#3.2.5 调优

#3.2.5.1 Payload 截取

标签:

hot_update

FQCN:

processors.request_log.tunning.payload_truncation

Upgrade from old version: l7_log_packet_size

默认值:

processors:
  request_log:
    tunning:
      payload_truncation: 1024
1
2
3
4

模式:

Key Value
Type int
Unit byte
Range [256, 65535]

详细描述:

应用调用日志采集解析的最大 payload 长度。注意实际的值小于 capture_packet_size。 注意:eBPF 数据的 payload 可解析长度上限为 16384 Byte。

#3.2.5.2 会话聚合桶容量

标签:

agent_restart

FQCN:

processors.request_log.tunning.session_aggregate_slot_capacity

Upgrade from old version: static_config.l7-log-session-slot-capacity

默认值:

processors:
  request_log:
    tunning:
      session_aggregate_slot_capacity: 1024
1
2
3
4

模式:

Key Value
Type int
Range [1024, 1000000]

详细描述:

默认情况下,2 分钟缓存窗口中的单向 l7_flow_log 将被聚合成双向的 request_log(会话)。 聚合时的槽位大小为 5 秒。该配置用于指定每个时间槽中最多可以缓存多少个单向的 l7_flow_log 条目。

如果某个时间槽中的 l7_flow_log 条目数量超过该配置,则该时间槽中 10% 的 l7_flow_log 条目将被 LRU 策略淘汰以减少内存占用。注意,被淘汰的 l7_flow_log 条目不会被丢弃,而是作为单向的 request_log 发送给 deepflow-server。

以下指标可以作为调整该配置的参考数据:

  • Metric deepflow_system.deepflow_agent_l7_session_aggr.cached-request-resource 用于记录当前时刻所有时间槽中缓存的 request_resource 字段占用的总内存,单位为字节。
  • Metric deepflow_system.deepflow_agent_l7_session_aggr.over-limit 用于记录达到 LRU 容量限制并触发淘汰的次数。

#3.2.5.3 应用指标时间一致性开关

标签:

agent_restart

FQCN:

processors.request_log.tunning.consistent_timestamp_in_l7_metrics

默认值:

processors:
  request_log:
    tunning:
      consistent_timestamp_in_l7_metrics: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

当开关打开时对于同一个会话的请求和响应, 它们对应的指标数据会全部统计在请求所在的时间戳里

#3.3 流日志

#3.3.1 时间窗口

#3.3.1.1 最大可容忍的 Packet 延迟

标签:

agent_restart

FQCN:

processors.flow_log.time_window.max_tolerable_packet_delay

Upgrade from old version: static_config.packet-delay

默认值:

processors:
  flow_log:
    time_window:
      max_tolerable_packet_delay: 1s
1
2
3
4

模式:

Key Value
Type duration
Range ['1s', '10s']

详细描述:

捕获的包携带的时间戳可能比当前时间晚,尤其是在流量高峰期可能延迟高达 10s。 该配置也会影响 FlowMap 聚合窗口的大小。

#3.3.1.2 额外可容忍的 Flow 延迟

标签:

agent_restart

FQCN:

processors.flow_log.time_window.extra_tolerable_flow_delay

Upgrade from old version: static_config.second-flow-extra-delay-second

默认值:

processors:
  flow_log:
    time_window:
      extra_tolerable_flow_delay: 0s
1
2
3
4

模式:

Key Value
Type duration
Range ['0s', '10s']

详细描述:

QuadrupleGenerator 接收 flow 的额外时间延迟。 该配置会影响秒级和分钟级 QuadrupleGenerator 聚合窗口的大小。

#3.3.2 Conntrack(即 Flow Map)

#3.3.2.1 Flow Flush 间隔

标签:

agent_restart

FQCN:

processors.flow_log.conntrack.flow_flush_interval

Upgrade from old version: static_config.flow.flush-interval

默认值:

processors:
  flow_log:
    conntrack:
      flow_flush_interval: 1s
1
2
3
4

模式:

Key Value
Type duration
Range ['1s', '1m']

详细描述:

FlowMap 中流产生延迟时间,用于在下游处理单元中增加窗口大小,避免窗口推动过快。

#3.3.2.2 Flow 生成逻辑

#3.3.2.2.1 服务端口号

标签:

agent_restart

FQCN:

processors.flow_log.conntrack.flow_generation.server_ports

Upgrade from old version: static_config.server-ports

默认值:

processors:
  flow_log:
    conntrack:
      flow_generation:
        server_ports: []
1
2
3
4
5

模式:

Key Value
Type int
Range [1, 65535]

详细描述:

deepflow-agent 有可能会错误的判断长流的方向,如果某个端口一定是服务端端口, 可配置在此处避免误判断。

#3.3.2.2.2 云流量忽略 MAC

标签:

agent_restart

FQCN:

processors.flow_log.conntrack.flow_generation.cloud_traffic_ignore_mac

Upgrade from old version: static_config.flow.ignore-tor-mac

默认值:

processors:
  flow_log:
    conntrack:
      flow_generation:
        cloud_traffic_ignore_mac: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

默认情况下,对云流量采集做流聚合时,deepflow-agent 会校验 MAC 地址,如果同一位置、同一条流的 上、下行数据包中的 MAC 地址不一致(非对称),将导致会话的上、下行数据无法聚合为同一条流。开启此 开关后,deepflow-agent 将在流聚合过程中不校验 MAC 地址。

#3.3.2.2.3 忽略 L2End

标签:

agent_restart

FQCN:

processors.flow_log.conntrack.flow_generation.ignore_l2_end

Upgrade from old version: static_config.flow.ignore-l2-end

默认值:

processors:
  flow_log:
    conntrack:
      flow_generation:
        ignore_l2_end: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

对于虚拟网络流量,流聚合仅匹配 l2end 为 true 的一端的 MAC 地址, 设置为 true 流聚合会使用全部MAC地址。

#3.3.2.2.4 IDC 流量忽略 VLAN

标签:

agent_restart ee_feature

FQCN:

processors.flow_log.conntrack.flow_generation.idc_traffic_ignore_vlan

Upgrade from old version: static_config.flow.ignore-idc-vlan

默认值:

processors:
  flow_log:
    conntrack:
      flow_generation:
        idc_traffic_ignore_vlan: false
1
2
3
4
5

模式:

Key Value
Type bool

详细描述:

TODO

#3.3.2.3 超时设置

#3.3.2.3.1 Established

标签:

agent_restart

FQCN:

processors.flow_log.conntrack.timeouts.established

Upgrade from old version: static_config.flow.established-timeout

默认值:

processors:
  flow_log:
    conntrack:
      timeouts:
        established: 300s
1
2
3
4
5

模式:

Key Value
Type duration
Range ['1s', '1d']

详细描述:

TCP 状态机的建连状态超时时长。

#3.3.2.3.2 Closing RST

标签:

agent_restart

FQCN:

processors.flow_log.conntrack.timeouts.closing_rst

Upgrade from old version: static_config.flow.closing-rst-timeout

默认值:

processors:
  flow_log:
    conntrack:
      timeouts:
        closing_rst: 35s
1
2
3
4
5

模式:

Key Value
Type duration
Range ['1s', '1d']

详细描述:

Closing Reset 类型的 TCP 状态机超时。

#3.3.2.3.3 Opening RST

标签:

agent_restart

FQCN:

processors.flow_log.conntrack.timeouts.opening_rst

Upgrade from old version: static_config.flow.opening-rst-timeout

默认值:

processors:
  flow_log:
    conntrack:
      timeouts:
        opening_rst: 1s
1
2
3
4
5

模式:

Key Value
Type duration
Range ['1s', '1d']

详细描述:

Opening Reset 类型的 TCP 状态机超时。

#3.3.2.3.4 Others

标签:

agent_restart

FQCN:

processors.flow_log.conntrack.timeouts.others

Upgrade from old version: static_config.flow.others-timeout

默认值:

processors:
  flow_log:
    conntrack:
      timeouts:
        others: 5s
1
2
3
4
5

模式:

Key Value
Type duration
Range ['1s', '1d']

详细描述:

其他类型的 TCP 状态机超时。

#3.3.3 调优

#3.3.3.1 FlowMap 哈希桶

标签:

agent_restart

FQCN:

processors.flow_log.tunning.flow_map_hash_slots

Upgrade from old version: static_config.flow.flow-slots-size

默认值:

processors:
  flow_log:
    tunning:
      flow_map_hash_slots: 131072
1
2
3
4

模式:

Key Value
Type int
Range [1024, 64000000]

详细描述:

由于 FlowAggregator 是所有处理流程的第一步,该值也被广泛用于其他哈希表,如 QuadrupleGenerator、Collector 等。

#3.3.3.2 并发 Flow 数量限制

标签:

agent_restart

FQCN:

processors.flow_log.tunning.concurrent_flow_limit

Upgrade from old version: static_config.flow.flow-count-limit

默认值:

processors:
  flow_log:
    tunning:
      concurrent_flow_limit: 65535
1
2
3
4

模式:

Key Value
Type int
Range [1024, 64000000]

详细描述:

FlowMap 中存储的最大并发 Flow 数量。该配置同时影响 RRT 缓存容量。 例如:rrt-cache-capacity = flow-count-limit。当 rrt-cache-capacity 不足时, 将无法计算 L7 的 RRT。当 capture_mode 为 2 并且 concurrent_flow_limit 小于等于 65535 时, 将会被强制设置为 u32::MAX。

#3.3.3.3 内存池大小

标签:

agent_restart

FQCN:

processors.flow_log.tunning.memory_pool_size

Upgrade from old version: static_config.flow.memory-pool-size

默认值:

processors:
  flow_log:
    tunning:
      memory_pool_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [1024, 64000000]

详细描述:

FlowMap 内存池的大小。

#3.3.3.4 Batched Buffer 最大大小

标签:

agent_restart

FQCN:

processors.flow_log.tunning.max_batched_buffer_size

Upgrade from old version: static_config.batched-buffer-size-limit

默认值:

processors:
  flow_log:
    tunning:
      max_batched_buffer_size: 131072
1
2
3
4

模式:

Key Value
Type int
Range [1024, 64000000]

详细描述:

目前只影响 TaggedFlow 批量分配。 为避免大量的 malloc 调用,生命周期短且数量多的结构体用批量分配进行优化。 一次分配的总内存大小不会超过这个限制。 由于默认的 MMAP_THRESHOLD 是 128K,分配的内存块超过 128K 会导致 mmap 调用和页错误增加,反而降低性能,所以不推荐将该配置设置大于 128K。

#3.3.3.5 FlowAggregator 队列大小

标签:

agent_restart

FQCN:

processors.flow_log.tunning.flow_aggregator_queue_size

Upgrade from old version: static_config.flow.flow-aggr-queue-size

默认值:

processors:
  flow_log:
    tunning:
      flow_aggregator_queue_size: 65535
1
2
3
4

模式:

Key Value
Type int
Range [65536, 64000000]

详细描述:

以下队列的大小:

  • 2-second-flow-to-minute-aggrer

#3.3.3.6 FlowGenerator 队列大小

标签:

agent_restart

FQCN:

processors.flow_log.tunning.flow_generator_queue_size

Upgrade from old version: static_config.flow-queue-size

默认值:

processors:
  flow_log:
    tunning:
      flow_generator_queue_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [65536, 64000000]

详细描述:

以下队列的大小:

  • 1-tagged-flow-to-quadruple-generator
  • 1-tagged-flow-to-app-protocol-logs
  • 0-{flow_type}-{port}-packet-to-tagged-flow (flow_type: sflow, netflow)

#3.3.3.7 QuadrupleGenerator 队列大小

标签:

agent_restart

FQCN:

processors.flow_log.tunning.quadruple_generator_queue_size

Upgrade from old version: static_config.quadruple-queue-size

默认值:

processors:
  flow_log:
    tunning:
      quadruple_generator_queue_size: 262144
1
2
3
4

模式:

Key Value
Type int
Range [262144, 64000000]

详细描述:

以下队列的大小:

  • 2-flow-with-meter-to-second-collector
  • 2-flow-with-meter-to-minute-collector

#4. 输出

#4.1 Socket

#4.1.1 Data Socket 类型

标签:

hot_update

FQCN:

outputs.socket.data_socket_type

Upgrade from old version: collector_socket_type

默认值:

outputs:
  socket:
    data_socket_type: TCP
1
2
3

枚举可选值:

Value Note
TCP
UDP
FILE

模式:

Key Value
Type string

详细描述:

配置 deepflow-agent 向 deepflow-server 回传数据所用的 Socket 类型。在独立部署 模式下,需配置为 FILE 类型,agent 将 l4_flow_log 和 l7_flow_log 写入本地文件。

#4.1.2 NPB Socket 类型

标签:

hot_update ee_feature

FQCN:

outputs.socket.npb_socket_type

Upgrade from old version: npb_socket_type

默认值:

outputs:
  socket:
    npb_socket_type: RAW_UDP
1
2
3

枚举可选值:

Value Note
UDP
RAW_UDP
TCP
ZMQ

模式:

Key Value
Type string

详细描述:

设置 NPB 分发时使用的 Socket 类型。RAW_UDP 使用 RawSocket 发送 UDP 数据,有更高的 分发性能,但是可能存在一些环境不兼容的情况。

#4.1.3 RAW_UDP QoS Bypass

标签:

agent_restart

FQCN:

outputs.socket.raw_udp_qos_bypass

Upgrade from old version: static_config.enable-qos-bypass

默认值:

outputs:
  socket:
    raw_udp_qos_bypass: false
1
2
3

模式:

Key Value
Type bool

详细描述:

当使用 RAW_UDP 发送数据时,可以开启该特性以提升数据发送的性能。注意:(1)该特性需要 Linux Kernel >= 3.14;(2)特性开启后,发送的数据包无法被 tcpdump 捕获。

#4.1.4 Multiple Sockets To Ingester

标签:

hot_update

FQCN:

outputs.socket.multiple_sockets_to_ingester

Upgrade from old version: static_config.multiple-sockets-to-ingester

默认值:

outputs:
  socket:
    multiple_sockets_to_ingester: false
1
2
3

模式:

Key Value
Type bool

详细描述:

当设置为 true 时,deepflow-agent 将使用多个套接字将数据发送到 Ingester, 其发送性能更高,但会给防火墙带来更大的影响。

#4.2 流日志及调用日志

#4.2.1 过滤器

#4.2.1.1 流日志采集网络类型

标签:

hot_update

FQCN:

outputs.flow_log.filters.l4_capture_network_types

Upgrade from old version: l4_log_tap_types

默认值:

outputs:
  flow_log:
    filters:
      l4_capture_network_types:
      - 0
1
2
3
4
5

枚举可选值:

Value Note
-1 关闭
0 所有网络类型
DYNAMIC_OPTIONS DYNAMIC_OPTIONS

模式:

Key Value
Type int

详细描述:

将被存储的流日志采集网络类型列表。

#4.2.1.2 调用日志采集网络类型

标签:

hot_update

FQCN:

outputs.flow_log.filters.l7_capture_network_types

Upgrade from old version: l7_log_store_tap_types

默认值:

outputs:
  flow_log:
    filters:
      l7_capture_network_types:
      - 0
1
2
3
4
5

枚举可选值:

Value Note
-1 关闭
0 所有网络类型
DYNAMIC_OPTIONS DYNAMIC_OPTIONS

模式:

Key Value
Type int

详细描述:

将被存储的调用日志采集网络类型列表。

#4.2.1.3 流日志忽略的观测点

标签:

hot_update

FQCN:

outputs.flow_log.filters.l4_ignored_observation_points

Upgrade from old version: l4_log_ignore_tap_sides

默认值:

outputs:
  flow_log:
    filters:
      l4_ignored_observation_points: []
1
2
3
4

枚举可选值:

Value Note
0 rest,其他网卡
1 c,客户端网卡
2 s,服务端网卡
4 local,本机网卡
9 c-nd,客户端容器节点
10 s-nd,服务端容器节点
17 c-hv,客户端宿主机
18 s-hv,服务端宿主机
25 c-gw-hv, 客户端到网关宿主机
26 s-gw-hv, 网关宿主机到服务端
33 c-gw,客户端到网关
34 s-gw, 网关到服务端
41 c-p,客户端进程
42 s-p, 服务端进程

模式:

Key Value
Type int

详细描述:

配置该参数后,deepflow-agent将不采集列表中观测点的流日志(同时 TCP 时序数据、Pcap 数据 的采集也将被忽略)。默认值[]表示所有观测点均采集。

#4.2.1.4 调用日志忽略的观测点

标签:

hot_update

FQCN:

outputs.flow_log.filters.l7_ignored_observation_points

Upgrade from old version: l7_log_ignore_tap_sides

默认值:

outputs:
  flow_log:
    filters:
      l7_ignored_observation_points: []
1
2
3
4

枚举可选值:

Value Note
0 rest,其他网卡
1 c,客户端网卡
2 s,服务端网卡
4 local,本机网卡
9 c-nd,客户端容器节点
10 s-nd,服务端容器节点
17 c-hv,客户端宿主机
18 s-hv,服务端宿主机
25 c-gw-hv, 客户端到网关宿主机
26 s-gw-hv, 网关宿主机到服务端
33 c-gw,客户端到网关
34 s-gw, 网关到服务端
41 c-p,客户端进程
42 s-p, 服务端进程

模式:

Key Value
Type int

详细描述:

配置该参数后,deepflow-agent将不采集列表中观测点的应用调用日志。默认值[]表示所有观测点均采集。

#4.2.2 限速器

#4.2.2.1 流日志限速器

标签:

hot_update

FQCN:

outputs.flow_log.throttles.l4_throttle

Upgrade from old version: l4_log_collect_nps_threshold

默认值:

outputs:
  flow_log:
    throttles:
      l4_throttle: 10000
1
2
3
4

模式:

Key Value
Type int
Unit Per Second
Range [100, 1000000]

详细描述:

deepflow-agent 每秒发送的 l4_flow_log 数量上限,实际产生的日志数量超过阈值时,将 使用水库采样限制实际发送数量不超过阈值。

#4.2.2.2 调用日志限速器

标签:

hot_update

FQCN:

outputs.flow_log.throttles.l7_throttle

Upgrade from old version: l7_log_collect_nps_threshold

默认值:

outputs:
  flow_log:
    throttles:
      l7_throttle: 10000
1
2
3
4

模式:

Key Value
Type int
Unit Per Second
Range [100, 1000000]

详细描述:

deepflow-agent 每秒发送的 l7_flow_log 数量上限,实际发送数量超出参数值后,将开启采样。

#4.2.3 调优

#4.2.3.1 Collector 队列大小

标签:

agent_restart

FQCN:

outputs.flow_log.tunning.collector_queue_size

Upgrade from old version: static_config.flow-sender-queue-size

默认值:

outputs:
  flow_log:
    tunning:
      collector_queue_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [65536, 64000000]

详细描述:

设置如下队列的长度:

  • 3-flow-to-collector-sender
  • 3-protolog-to-collector-sender

#4.3 Flow 性能指标

#4.3.1 Enabled

标签:

hot_update

FQCN:

outputs.flow_metrics.enabled

Upgrade from old version: collector_enabled

默认值:

outputs:
  flow_metrics:
    enabled: true
1
2
3

模式:

Key Value
Type bool

详细描述:

指标数据采集总开关。关闭后 deepflow-agent 将停止所有应用调用指标、网络指标、应用 调用日志、流日志、TCP 包时序数据、Pcap 数据的采集。

#4.3.2 过滤器

#4.3.2.1 不活跃服务端端口号聚合

标签:

hot_update

FQCN:

outputs.flow_metrics.filters.inactive_server_port_aggregation

Upgrade from old version: inactive_server_port_enabled

默认值:

outputs:
  flow_metrics:
    filters:
      inactive_server_port_aggregation: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

开启功能后 deepflow-agent 将对非活跃的端口(仅接收数据,不发送数据)的指标数据采集 做聚合处理,所有非活跃端口的数据聚合生成一条'server_port = 0'的指标,而不再生成每个 server_port 单独的指标。

#4.3.2.2 不活跃 IP 地址聚合

标签:

hot_update

FQCN:

outputs.flow_metrics.filters.inactive_ip_aggregation

Upgrade from old version: inactive_ip_enabled

默认值:

outputs:
  flow_metrics:
    filters:
      inactive_ip_aggregation: false
1
2
3
4

模式:

Key Value
Type bool

详细描述:

开启功能后 deepflow-agent 将对非活跃 IP(仅接收数据,不发送数据)的指标数据采集做聚合 处理,所有非活跃 IP 的数据聚合生成一条'ip = 0'的指标,而不再生成每个 IP 单独的指标。

#4.3.2.3 NPM 指标

标签:

hot_update

FQCN:

outputs.flow_metrics.filters.npm_metrics

Upgrade from old version: l4_performance_enabled

默认值:

outputs:
  flow_metrics:
    filters:
      npm_metrics: true
1
2
3
4

模式:

Key Value
Type bool

详细描述:

网络指标的采集开关。关闭后 deepflow-agent 停止采集除基本的吞吐类指标外的其他网络指标。

#4.3.2.4 NPM 活跃连接指标

标签:

hot_update

FQCN:

outputs.flow_metrics.filters.npm_metrics_concurrent

默认值:

outputs:
  flow_metrics:
    filters:
      npm_metrics_concurrent: true
1
2
3
4

模式:

Key Value
Type bool

详细描述:

当关闭时,deepflow-agent 不计算活跃连接指标。

#4.3.2.5 APM 指标

标签:

hot_update

FQCN:

outputs.flow_metrics.filters.apm_metrics

Upgrade from old version: l7_metrics_enabled

默认值:

outputs:
  flow_metrics:
    filters:
      apm_metrics: true
1
2
3
4

模式:

Key Value
Type bool

详细描述:

应用调用指标的采集开关。关闭后 deepflow-agent 停止采集全部应用调用指标。

#4.3.2.6 秒粒度指标

标签:

hot_update

FQCN:

outputs.flow_metrics.filters.second_metrics

Upgrade from old version: vtap_flow_1s_enabled

默认值:

outputs:
  flow_metrics:
    filters:
      second_metrics: true
1
2
3
4

模式:

Key Value
Type bool

详细描述:

秒级指标的采集开关。关闭后 deepflow-agent 将停止采集秒粒度的网络指标和应用调用指标。

#4.3.3 调优

#4.3.3.1 Sender 队列大小

标签:

agent_restart

FQCN:

outputs.flow_metrics.tunning.sender_queue_size

Upgrade from old version: static_config.collector-sender-queue-size

默认值:

outputs:
  flow_metrics:
    tunning:
      sender_queue_size: 65536
1
2
3
4

模式:

Key Value
Type int
Range [65536, 64000000]

详细描述:

配置如下队列的大小:

  • 3-doc-to-collector-sender

#4.4 NPB (Network Packet Broker)

#4.4.1 最大 MTU

标签:

hot_update ee_feature

FQCN:

outputs.npb.max_mtu

Upgrade from old version: mtu

默认值:

outputs:
  npb:
    max_mtu: 1500
1
2
3

模式:

Key Value
Type int
Unit byte
Range [500, 10000]

详细描述:

NPB 分发时的 UDP 传输的 MTU 值。注意:当 UDP 报文长度接近 1500 字节后,云平台可能会 修改数据包的尾部数据,因此建议max_mtu的值小于 1500。

#4.4.2 RAW_UDP 的 VLAN 标签

标签:

hot_update ee_feature

FQCN:

outputs.npb.raw_udp_vlan_tag

Upgrade from old version: output_vlan

默认值:

outputs:
  npb:
    raw_udp_vlan_tag: 0
1
2
3

模式:

Key Value
Type int
Range [0, 4095]

详细描述:

当使用 RAW_UDP Socket 发送 NPB 数据时,通过该参数设置数据包 VLAN 标签。默认值为0,表示 不使用 VLAN 标签。

#4.4.3 额外的 VLAN 头

标签:

hot_update ee_feature

FQCN:

outputs.npb.extra_vlan_header

Upgrade from old version: npb_vlan_mode

默认值:

outputs:
  npb:
    extra_vlan_header: 0
1
2
3

枚举可选值:

Value Note
0
1 802.1Q
2 QinQ

模式:

Key Value
Type int

详细描述:

设置 NPB 分发数据的 VLAN 模式。0表示不加 VLAN;1表示添加 802.1Q header; 2表示添加 QinQ。

#4.4.4 流量全局去重

标签:

hot_update ee_feature

FQCN:

outputs.npb.traffic_global_dedup

Upgrade from old version: npb_dedup_enabled

默认值:

outputs:
  npb:
    traffic_global_dedup: true
1
2
3

模式:

Key Value
Type bool

详细描述:

NPB 数据去重开关。开启开关后,将对 NPB 分发做全局去重,避免一份流量在客户端、服务端分发两次。

#4.4.5 目的端口号

标签:

agent_restart ee_feature

FQCN:

outputs.npb.target_port

Upgrade from old version: static_config.npb-port

默认值:

outputs:
  npb:
    target_port: 4789
1
2
3

模式:

Key Value
Type int
Range [1, 65535]

详细描述:

NPB 分发使用的目标端口号。

#4.4.6 自定义 VXLAN Flags

标签:

agent_restart ee_feature

FQCN:

outputs.npb.custom_vxlan_flags

Upgrade from old version: static_config.vxlan-flags

默认值:

outputs:
  npb:
    custom_vxlan_flags: 255
1
2
3

模式:

Key Value
Type int
Range [0, 255]

详细描述:

使用 VXLAN 分发时设置 VXLAN 内的 Flags 为该值。采集器不会采集分发流量。

这个配置默认会或上0b1000_0000,所以不能配置为 0b1000_0000。

#4.4.7 Overlay VLAN 头剥离

标签:

agent_restart ee_feature

FQCN:

outputs.npb.overlay_vlan_header_trimming

Upgrade from old version: static_config.ignore-overlay-vlan

默认值:

outputs:
  npb:
    overlay_vlan_header_trimming: false
1
2
3

模式:

Key Value
Type bool

详细描述:

开启开关后,deepflow-agent 在 NPB 分发时会剥离 overlay 原始数据包中的 VLAN 头。

#4.4.8 最大 Tx 吞吐量

标签:

hot_update ee_feature

FQCN:

outputs.npb.max_tx_throughput

Upgrade from old version: max_npb_bps

默认值:

outputs:
  npb:
    max_tx_throughput: 1000
1
2
3

模式:

Key Value
Type int
Unit Mbps
Range [1, 100000]

详细描述:

设置 deepflow-agent 做 NPB 分发的最大吞吐率。

#4.5 压缩

#4.5.1 Application_Log

标签:

agent_restart

FQCN:

outputs.compression.application_log

默认值:

outputs:
  compression:
    application_log: true
1
2
3

模式:

Key Value
Type bool

详细描述:

开启后,deepflow-agent 将对集成的应用日志数据进行压缩处理,压缩比例在 5:1~20:1 之间。注意: 开启此特性将增加 deepflow-agent 的 CPU 消耗。

#5. 插件

#5.1 Wasm 插件列表

标签:

hot_update

FQCN:

plugins.wasm_plugins

Upgrade from old version: wasm_plugins

默认值:

plugins:
  wasm_plugins: []
1
2

枚举可选值:

Value Note
DYNAMIC_OPTIONS DYNAMIC_OPTIONS

模式:

Key Value
Type string

详细描述:

需要加载的 Wasm 插件列表。

#5.2 SO 插件列表

标签:

hot_update

FQCN:

plugins.so_plugins

Upgrade from old version: so_plugins

默认值:

plugins:
  so_plugins: []
1
2

枚举可选值:

Value Note
DYNAMIC_OPTIONS DYNAMIC_OPTIONS

模式:

Key Value
Type string

详细描述:

需要加载的 so 插件列表。

#6. 开发

#6.1 Feature Flags

标签:

agent_restart

FQCN:

dev.feature_flags

Upgrade from old version: static_config.feature-flags

默认值:

dev:
  feature_flags: []
1
2

模式:

Key Value
Type string

详细描述:

未发布的采集器特性可以通过该选项开启。