ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Vector 0.29 升级指南:datadog sink 的 `default_api_key` 迁移、`logdna` 更名 `mezmo` 与 socket `max_length` 废弃详解

Vector 0.29 升级指南:datadog sink 的 `default_api_key` 迁移、`logdna` 更名 `mezmo` 与 socket `max_length` 废弃详解 Vector 0.29 升级指南datadog sink 的default_api_key迁移、logdna更名mezmo与 socketmax_length废弃详解【免费下载链接】vectorA high-performance observability data pipeline.项目地址: https://gitcode.com/GitHub_Trending/vect/vector本文基于 Vector 0.29.0 官方升级文档0.29 Upgrade Guide展开详解该版本中的 1 项破坏性变更与 2 项废弃声明。读完后你将能够把使用datadog_logs/datadog_metrics的 API 密钥配置、logdna类型 sink 以及socket源max_length参数的现有配置平滑迁移到 0.29.0 及以上版本并理解每项变更在源码层面的实现依据。升级变更总览Vector 0.29.0 版本包含以下变更与原文档完全一致类型变更内容影响破坏性变更Breakingdatadog_logs与datadog_metricssink 的api_key配置项被移除必须改用default_api_key未迁移的配置将无法加载废弃Deprecationlogdnasink 更名为mezmo旧名称将在未来版本移除建议尽快更新type字段废弃Deprecationsocket源tcp与unix模式下的独立max_length配置项被废弃应改用framing内的max_length建议迁移至framing设置Vector 有一套明确的弃用政策配置项先在文档和发布说明中标记废弃再在后续版本中彻底移除。0.29.0 正是这一政策对api_key的执行节点。破坏性变更datadog_logs与datadog_metrics移除api_key变更背景在datadog_logs和datadog_metrics两个 sink 的文档中api_key选项已经隐藏了数个版本官方文档中记载的规范名称一直是default_api_key。在 v0.28.0 中api_key被正式标记为 deprecated按照弃用政策它在 0.29.0 中被完整移除。任何在这两个 sink 中使用api_key的配置项将不再生效必须改写为default_api_key。配置迁移示例[sinks.my_datadog_logs] type datadog_logs - api_key your-api-key default_api_key your-api-key [sinks.my_datadog_metrics] type datadog_metrics - api_key your-api-key default_api_key your-api-keydefault_api_key是一个敏感字符串类型SensitiveString支持从环境变量解析密钥例如default_api_key ${DATADOG_API_KEY_ENV_VAR}这是 Vector 组件生成默认配置模板时推荐的写法。源码层面的印证旧字段会直接导致配置解析失败。从源码结构看datadog_logs的配置结构体显式声明了#[serde(deny_unknown_fields)]见 DatadogLogsConfig。这意味着 0.29.0 之后配置文件中残留的api_key字段会被 serde 视为“未知字段”而报错而不是被静默忽略——升级后跑一次配置校验即可发现所有未迁移的位置。API 密钥统一收敛在 Datadog 公共配置中。datadog_logs通过#[serde(flatten)]内嵌了LocalDatadogCommonConfig见 config.rs 第 56-57 行而该结构体持有default_api_key: OptionSensitiveString字段见 Datadog 公共配置。也就是说密钥配置在反序列化阶段就直接落在default_api_key上不再存在任何名为api_key的解析路径。默认配置模板也已同步。组件自带的generate_config模板输出的正是新字段名见 generate_config 实现default_api_key: ${DATADOG_API_KEY_ENV_VAR}单元测试与验证用例中也全部使用default_api_key作为标准写法见 logs 配置测试datadog_metrics侧的对应实现位于 src/sinks/datadog/metrics/config.rs。升级验证方法迁移完成后建议在升级前用当前二进制先校验一遍配置Vector 提供独立的validate子命令实现见 src/validate.rsvector validate -f vector.yaml若配置中仍残留api_key校验阶段即会报出未知字段错误从而在启动新二进制之前把所有问题暴露出来。废弃声明一logdnasink 更名为mezmo由于 LogDNA 品牌更名为 MezmoVector 将logdnasink 重命名为mezmo。旧名称logdna被标记为 deprecated将在未来版本中移除。请按如下方式更新配置[sinks.my_mezmo] -type logdna type mezmo源码层面的印证当前仓库中该 sink 的源码位于 src/sinks/mezmo.rs其配置结构体注册名为mezmo文档注释明确标注了它的前身见 MezmoConfig 定义/// Configuration for the mezmo (formerly logdna) sink. #[configurable_component(sink(mezmo, Deliver log event data to Mezmo.))]从源码结构看迁移到type mezmo后其余配置项语义不变api_keyMezmo Ingestion 密钥敏感字符串、endpointHTTP 接收端点兼容旧别名host、hostname附加到每个批次的模板化主机名、mac、ip、tags等字段均保留。因此本次升级只需改动type一行属于低风险迁移。废弃声明二socket源tcp/unix模式的独立max_lengthsocket源在tcp和unix模式下原有独立的max_length配置项用于限制单条消息的最大字节数。该配置项被废弃官方替代方案是将其移到framing分帧设置中的max_length内。max_length将在未来版本中从这两个模式移除。配置迁移示例[sources.my_socket] type socket mode tcp address 0.0.0.0:9000 -max_length 65536 [sources.my_socket.framing] method newline max_length 65536迁移后消息长度限制统一由分帧配置管理与解码方式换行分隔、字符分隔、八进制计数等绑定在一起语义更清晰。源码层面的印证unix模式已直接从framing派生最大长度。在当前源码中unix模式构建监听端点时max_length的取值逻辑是先从framing的各分帧子配置中读取读不到再回退到内置默认值见 unix.rs 中 max_length 的解析let max_length config .framing .and_then(|framing| match framing { FramingConfig::CharacterDelimited(config) config.character_delimited.max_length, FramingConfig::NewlineDelimited(config) config.newline_delimited.max_length, FramingConfig::OctetCounting(config) config.octet_counting.max_length, ... }) .unwrap_or_else(crate::serde::default_max_length);这说明在较新的代码演进中独立max_length到framing的收敛已经落地——从源码结构看废弃项的移除方向与升级文档指引一致提前迁移即可避免再次变更。tcp模式同样只保留framing。tcp 模式配置 中仅存在framing: OptionFramingConfig字段长度上限随分帧方式如换行分隔一起配置。udp模式不受影响。由于 UDP 是无连接、以“包”为单位接收的传输方式其独立max_length字段仍然保留见 udp.rs 中的 max_length默认值由 src/serde.rs 中的default_max_length()提供。socket 测试用例 中也印证了 UDP 模式下max_length超限帧会被丢弃并记录内部事件的行为。因此本次迁移只针对tcp与unix两种模式udp配置无需改动。升级检查清单完成 0.29.0 升级前建议按以下清单逐项检查现有配置全局搜索api_key确认datadog_logs、datadog_metricssink 中已无残留的api_key字段全部改写为default_api_key注意区分其他组件如mezmo的api_key后者是有效配置不在移除范围内全局搜索type logdna替换为type mezmo其余字段保持不变全局搜索mode tcp/mode unix的 socket 源将独立的max_length移入[xxx.framing]子配置udp模式保持原样运行配置校验vector validate -f vector.yaml通过后再部署新版本二进制确保没有遗漏的未知字段报错。由于破坏性变更只影响配置的加载阶段而非运行行为上述迁移全部是纯配置层面的改动不涉及数据管道逻辑可以安全地在滚动升级中完成。【免费下载链接】vectorA high-performance observability data pipeline.项目地址: https://gitcode.com/GitHub_Trending/vect/vector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表