📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

rollup.search.max_count 配置项用于控制Rollup 搜索时的最大任务数量

该配置定义了在执行 Rollup 搜索时最多可以搜索多少个 Rollup 任务,用于限制搜索范围,防止查询过多的 Rollup 索引导致性能问题。

配置项属性 #

  • 配置路径: rollup.search.max_count
  • 数据类型: Integer(整数)
  • 默认值: 2
  • 是否可选: 是
  • 作用域: NodeScope(节点级别)
  • 动态更新: 是(可以动态更新,无需重启)

配置项详解 #

工作机制 #

最大搜索数量控制

搜索请求处理:
├── 识别查询涉及的 Rollup 任务
├── 任务数量 > max_count?
│   ├── 是 → 只搜索前 max_count 个任务 ⚠️
│   └── 否 → 搜索所有匹配任务 ✅
└── 执行搜索


max_count = 2 示例:

场景 1: 匹配 3 个任务
├── 任务列表: [job1, job2, job3]
├── max_count: 2
├── 实际搜索: [job1, job2]
└── job3 被跳过 ⚠️


场景 2: 匹配 1 个任务
├── 任务列表: [job1]
├── max_count: 2
├── 实际搜索: [job1]
└── 全部搜索 ✅

任务匹配逻辑 #

Rollup 任务匹配

查询请求:
POST /metrics-*/_search
{
  "aggs": {
    "avg_cpu": { "avg": { "field": "cpu" } }
  }
}
    │
    ├── 查找匹配的 Rollup 任务
    │   ├── 检查任务索引模式
    │   ├── 检查任务字段
    │   └── 检查聚合类型
    │
    ├── 匹配结果:
    │   ├── job_hourly (匹配)
    │   ├── job_daily (匹配)
    │   ├── job_weekly (匹配)
    │   └── 共 3 个任务
    │
    ├── 应用 max_count
    │   ├── max_count = 2
    │   └── 只取前 2 个
    │
    └── 执行搜索:
        ├── job_hourly ✅
        └── job_daily ✅

与 search_all_jobs 配合 #

配合 search_all_jobs 使用

search_all_jobs: false + max_count: 2
├── 只搜索匹配的任务
├── 最多搜索 2 个
└── 可能遗漏部分任务


search_all_jobs: true + max_count: 2
├── 搜索所有任务
├── 最多搜索 2 个
└── 仍然受 max_count 限制


推荐配置:
├── search_all_jobs: false
├── max_count: 5-10
└── 根据实际任务数量调整

配置建议 #

默认配置 #

rollup:
  search:
    max_count: 2  # 默认值

建议: 适用于 Rollup 任务较少的场景。

多任务环境 #

rollup:
  search:
    max_count: 10  # 增加限制

建议: 有多个 Rollup 任务时使用。

少量任务 #

rollup:
  search:
    max_count: 1  # 减少限制

建议: 只有 1-2 个 Rollup 任务时使用。

动态更新 #

PUT /_cluster/settings
{
  "transient": {
    "rollup.search.max_count": 5
  }
}

代码示例 #

基础配置 #

rollup:
  search:
    max_count: 2

完整 Rollup 搜索配置 #

rollup:
  search:
    enabled: true
    max_count: 5
    search_all_jobs: false
    backoff_count: 5
    backoff_millis: 1000

高性能场景 #

rollup:
  search:
    enabled: true
    max_count: 3
    search_all_jobs: false

建议: 性能敏感场景限制搜索数量。

兼容性场景 #

rollup:
  search:
    enabled: true
    max_count: 10
    search_all_jobs: true

建议: 需要覆盖所有任务时使用。

相关配置 #

配置项作用默认值
search.max_count最大搜索数量2
search.enabled搜索功能开关false
search.search_all_jobs搜索所有任务false

注意事项 #

  1. 默认值: 默认值为 2,适用于大多数场景。

  2. 动态更新: 支持动态更新。

  3. 任务限制: 超过限制的任务将被忽略。

  4. 性能影响: 数值越大,查询可能越慢。

  5. 合理设置: 根据实际 Rollup 任务数量设置。

  6. 数据完整性: 设置过小可能导致数据不完整。

  7. 监控建议: 监控被跳过的任务数量。

  8. 测试验证: 调整后验证查询结果完整性。

  9. 优先级: 任务按匹配顺序选择,优先选择前面的任务。

  10. 配置调整: 根据 Rollup 任务数量变化动态调整。