如何测试新的索引功能
编辑如何测试新的索引功能编辑
Elasticsearch 一直在添加新的索引模式和功能,以优化存储大小和查询性能。
我们希望让集成开发者能够开始测试启用这些功能的摄取和查询性能,然后再开始对集成本身进行任何更改,或者允许最终用户从 Fleet UI 启用这些功能。
目前,可以通过利用 Fleet 为每个集成数据流安装的 *@custom
组件模板来启用这些功能,使用方便程度各不相同(详情见下文)。我们可以通过在 Fleet 中添加一个显式 API 来改进集成开发人员对此的 UX,但这可能并非必要。有关如何添加功能标志 API 以简化此操作的讨论,请参见 elastic/kibana#132818。
请参见以下说明以测试新的索引功能
测试合成源编辑
此功能很容易在使用组件模板的集成上启用。例如,以下是如何为 nginx
子状态指标执行此操作
- 安装 nginx 包。
-
运行此 dev tools 命令
PUT /_component_template/metrics-nginx.substatus@custom { "template": { "settings": {}, "mappings": { "_source": { "mode": "synthetic" } } }, "_meta": { "package": { "name": "nginx" } } }
- 如果数据流已存在,请将数据流回滚以获取新的映射:
POST metrics-nginx.substatus-default/_rollover
利用合成源的一个挑战是它不支持配置了 ignore_above
的关键字字段。可能值得删除这些字段上的此设置以进行测试。可以通过在 dev
中编辑包并通过 elastic-package
安装它或通过自定义组件模板覆盖它来完成此操作,类似于 doc-value-only
示例。
测试 doc-value-only
字段编辑
- 有关背景信息,请参考 Elasticsearch、Kibana、Elastic Cloud 8.1:更快的索引、更少的磁盘存储和更智能的分析功能。
- 有关集成支持,请参考 #3419。
此功能在组件模板中更具挑战性,因为它需要为每个 long 和 double 字段添加 index: false
。在 Fleet 中提供 API 将使此操作更容易。以下是如何手动执行此操作
- 安装
nginx
包。 - 获取包中包含的映射:
GET /_component_template/logs-nginx.access@package
。 - 将输出复制到您喜欢的文本编辑器中,搜索每个
"type": "long"
和"type": "double"
,然后添加"index": false
。 -
使用新的映射更新自定义组件模板。例如,以下是如何将 long 字段设置为
index: false
PUT /_component_template/merics-nginx.substatus@custom { "template": { "settings": {}, "mappings": { "properties": { "nginx": { "properties": { "stubstatus": { "properties": { "hostname": { "ignore_above": 1024, "type": "keyword" }, "current": { "type": "long", "index": false }, "waiting": { "type": "long", "index": false }, "accepts": { "type": "long", "index": false }, "handled": { "type": "long", "index": false }, "writing": { "type": "long", "index": false }, "dropped": { "type": "long", "index": false }, "active": { "type": "long", "index": false }, "reading": { "type": "long", "index": false }, "requests": { "type": "long", "index": false } } } } } } } }, "_meta": { "package": { "name": "nginx" } } }
- 如果数据流已存在,请将数据流回滚以获取新的映射:
POST metrics-nginx.substatus-default/_rollover
时间序列索引 (TSDS)编辑
使用 TSDS 索引需要以下内容
- 必须为适当字段添加
time_series_dimension
和time_series_metric
的映射参数。包生态系统和 Fleet 已支持此功能,因此包可以预先定义这些选项。 - 必须添加
mode: time_series
和routing_path
索引设置,可以通过编辑自定义组件模板来完成此操作。
请注意,routing_path
设置应与指定了 time_series_dimension
的字段相对应。将来,ES 可能会自动执行此设置。
- 安装 kubernetes 包(已设置 TSDS 映射)
-
运行此 dev tools 命令
PUT /_component_template/metrics-kubernetes.pod@custom { "template": { "settings": { "index.mode": "time_series", "index.routing_path": ["kubernetes.pod.uid"] }, "mappings": {} }, "_meta": { "package": { "name": "kubernetes" } } }
- 如果数据流已存在,请将数据流回滚以获取新的映射:
POST metrics-kubernetes.pod-default/_rollover