如何调优 aggregate-vector Sink
aggregate-vector 从 Kafka 读取记录,并将其写入 ClickHouse 或 OpenSearch。其批处理、缓冲、重试和并发默认值适用于绝大多数集群。当平台默认配置不适用时——例如 ClickHouse 抛出 TooManyParts、OpenSearch 触发批量熔断器,或者您希望 collector 牺牲延迟以换取更大的刷新量——平台会在 PlatformLogForward.spec.aggregateVector.sinks.* 上提供调优参数。
每个字段都是可选的。未设置的字段将遵循平台默认基线;升级从未使用过这些调优参数的集群不会产生任何变化。
log-storage-operator 会在每次变更时协调 PlatformLogForward,并在调优参数发生变化时自动滚动更新 aggregate-vector。无需执行 kubectl rollout restart。
开始之前
- 已在存储集群上安装 Alauda Container Platform Log Storage Management,且
PlatformLogForward/platform-default为Ready。请参阅安装。 - 使用
kubectl edit platformlogforward platform-default编辑PlatformLogForward。
何时调优
仅当 PlatformLogForward.spec.externalStorage.type 为 clickhouse 时,才会呈现 spec.aggregateVector.sinks 下的 clickhouse 块。仅当类型为 opensearch 时,才会呈现 opensearch 块。在运行中的集群上为另一后端设置参数不会产生任何提示或效果——这些值会保留在 CR 中,但永远不会传递到 Vector。在编辑前,请使用 kubectl get platformlogforward platform-default -o jsonpath='{.spec.externalStorage.type}' 验证后端。
当您在生产环境中观察到某个特定症状时,可以使用这些调优参数。不要预先更改默认值。
如果您的症状不在此列表中,请先收集存储端错误,再进行调优;没有具体原因就更改参数通常会使情况变得更糟。
ClickHouse sink 参数
在 spec.aggregateVector.sinks.clickhouse 下设置。
注意:
- Vector 的
buffer.type始终为memory,不可调优。Kafka 是持久缓冲区;在 Vector 内增加第二个磁盘缓冲区只会重复持久性保障,并不会提供额外安全性。当内存缓冲区填满时,Vector 会对 Kafka source 施加反压,记录仍保留在 broker 上;Vector 重启后会从上次提交的 offset 重新处理这些记录。 requestConcurrency接受三种形式:字符串"adaptive"或"fixed",或者以字符串形式写入的正整数(例如"4")。平台会将带引号的字符串渲染为带引号的字符串,并将整数字符串在 Vector 配置中渲染为不带引号的整数。
OpenSearch sink 参数
在 spec.aggregateVector.sinks.opensearch 下设置。相同的参数也适用于旧版 Elasticsearch 后端(output.type: elasticsearch)。
retryPartial: false 注意:仅当您有充分理由时才禁用部分失败重试(例如,您的监控无法容忍重试可能触发的重复索引告警),并且您已验证平台的幂等 bulk.action = create + 文档 _id 模式会消除重复记录。在较早的 ACP 版本中,默认值实际上为 false,某个生产集群因此静默丢弃了 79,000 条记录;当前默认值 true 正是为了防止此类事故。
注意:
- Vector 的
buffer.type为memory,而buffer.when_full为block;二者均不可调优。相关原因请参阅 ClickHouse sink 的注意事项。 compression: gzip、bulk.action: create和api_version: v8由平台固定,因为它们体现了 OpenSearch 写入路径的不变量(压缩可将网络传输量减少 3–5 倍;create+ 文档_id可确保重试具有幂等性;v8可避免使用已移除的_type字段,而 OpenSearch 3.7 会拒绝该字段)。这些参数不会作为可调参数公开。
示例 — ClickHouse
示例 — OpenSearch
应用并验证
保存资源后:
Ready 列应保持为 True。log-storage-operator 会将新的 Vector 配置渲染到 cpaas-system 中的 aggregate-vector-config ConfigMap,并滚动更新 aggregate-vector Deployment。
验证新值是否已写入 Vector 的配置:
如果您设置的某个参数未出现在 ConfigMap 中,请检查字段名称以及 PLF 状态条件中是否存在验证错误。
相关主题
- 安装 — PLF 创建流程。
- 如何覆盖 aggregate-vector 配置 — 当 CRD 未公开您所需字段时的备用方案。