OBI 全局配置属性
OBI 可以通过环境变量或通过 -config 命令行参数或 OTEL_EBPF_CONFIG_PATH 环境变量提供的 YAML 配置文件进行配置。环境变量的优先级高于配置文件中的属性。例如,在以下命令行中,OTEL_EBPF_LOG_LEVEL 选项将覆盖 config.yaml 中的任何 log_level 设置。
配置参数
OTEL_EBPF_LOG_LEVEL=debug obi -config /path/to/config.yaml
配置环境变量
OTEL_EBPF_LOG_LEVEL=debug OTEL_EBPF_CONFIG_PATH=/path/to/config.yaml obi
有关配置文件模板,请参阅 示例 YAML 配置文件。
OBI 由一个组件管道组成,该管道从 HTTP 和 gRPC 应用程序生成、转换和导出跟踪。在 YAML 配置中,每个组件都有自己的顶级部分。
可选地,OBI 还提供网络级指标,有关更多信息,请参阅 网络指标文档。
以下各节解释了适用于整个 OBI 配置的全局配置属性。
例如
trace_printer: json
shutdown_timeout: 30s
channel_buffer_len: 33
| YAML 环境变量 | 描述 | 类型 | 默认值 |
|---|---|---|---|
(无 YAML)OTEL_EBPF_AUTO_TARGET_EXE | 通过 Glob 匹配可执行文件的完整路径来选择要进行检测的进程。 | 字符串 | unset |
open_portOTEL_EBPF_OPEN_PORT | 通过开放端口选择要进行检测的进程。接受端口和端口范围的逗号分隔列表。 | 字符串 | unset |
shutdown_timeoutOTEL_EBPF_SHUTDOWN_TIMEOUT | 设置优雅关闭的超时时间。 | 字符串 | “10s” |
log_levelOTEL_EBPF_LOG_LEVEL | 设置进程日志记录器的详细程度。有效值:DEBUG、INFO、WARN、ERROR。 | 字符串 | INFO |
trace_printerOTEL_EBPF_TRACE_PRINTER | 以指定格式将检测到的跟踪打印到 stdout,请参阅 跟踪打印格式。 | 字符串 | disabled |
enforce_sys_capsOTEL_EBPF_ENFORCE_SYS_CAPS | 控制 OBI 在启动时如何处理缺失的系统能力。 | 布尔值 | false |
可执行文件名匹配
此属性接受一个 glob,该 glob 与可执行命令行的完整内容进行匹配,包括可执行文件在文件系统上的位置目录。OBI 选择一个进程,或具有相似特征的多个进程。有关更详细的进程选择和分组,请参阅 服务发现文档。
通过可执行文件名进行检测时,请选择一个在目标系统上匹配一个可执行文件的非歧义名称。例如,如果设置 OTEL_EBPF_AUTO_TARGET_EXE=*/server 并且有两个进程与 Glob 匹配,OBI 将同时选择这两个进程。请改用完整的应用程序路径进行精确匹配,例如 OTEL_EBPF_AUTO_TARGET_EXE=/opt/app/server 或 OTEL_EBPF_AUTO_TARGET_EXE=/server。
如果同时设置了 OTEL_EBPF_AUTO_TARGET_EXE 和 OTEL_EBPF_OPEN_PORT 属性,OBI 将仅选择同时满足两个选择条件的这两个可执行文件。
开放端口匹配
此属性接受端口或端口范围的逗号分隔列表。如果可执行文件匹配其中任何一个端口,OBI 将选择它。例如
OTEL_EBPF_OPEN_PORT=80,443,8000-8999
在此示例中,OBI 将选择任何打开了端口 80、443 或介于 8000 和 8999 之间的任何端口的可执行文件。它可以选择一个进程或具有相似特征的多个进程。有关更详细的进程选择和分组,请遵循 服务发现文档 中的说明。
如果可执行文件打开了多个端口,指定其中一个端口就足以让 OBI 检测该应用程序所有端口上的所有 HTTP/S 和 gRPC 请求。目前,没有办法将检测限制在特定端口上的请求。
如果指定的端口范围很宽,例如 1-65535,OBI 将尝试执行拥有该范围内某个端口的所有进程。
如果同时设置了 OTEL_EBPF_AUTO_TARGET_EXE 和 OTEL_EBPF_OPEN_PORT 属性,OBI 将仅选择同时满足两个选择条件的这两个可执行文件。
跟踪打印格式
此选项使用以下格式之一将任何检测到的跟踪打印到标准输出
disabled:禁用打印机text:打印一行简洁的文本json:打印一个紧凑的 JSON 对象json_indent:打印一个缩进的 JSON 对象
系统能力
如果将 enforce_sys_caps 设置为 true 并且缺少必需的系统能力,OBI 将中止启动并记录缺失的能力。如果将此选项设置为 false,OBI 将仅记录缺失的能力。