索引->统计信息/段

Indices Stats /索引统计信息

索引级统计提供索引上发生的不同操作的统计信息。API 提供了索引级范围的统计信息(虽然大多数统计信息可以使用节点级别范围检索)。

以下为返回所有索引的高聚合和索引等级的统计信息请求:

GET /_stats

可以使用以下方式检索特定索引的统计信息:

GET /index1,index2/_stats

默认情况下,返回所有统计信息。可以通过指定 URI 返回特定的统计信息。这些统计信息可以是以下的任意一种。

默认情况下,返回所有统计信息。可以通过指定 URI 返回特定的统计信息。这些统计信息可以是以下的任意一种。

字段

描述

docs

文档和已删除文档(尚未合并的文档)的数量。注意,此值受刷新索引的影响。

store

索引的大小。

indexing

索引统计信息,可以用逗号分隔的type列表组合,以提供文档级统计信息。

get

获取统计信息,包括缺失的统计信息。

search

包含建议统计信息的搜索统计信息。你可以通过添加额外group参数(搜索操作可以与一个或多个group相关联)来包含自定义组的统计信息。groups参数接受以逗号分隔的group名称列表。使用_all返回所有组的统计信息。

segments

检索打开的分段的内存使用。可以选择设置include_segment_file_sizes标志,报告每个Lucene索引文件的聚合磁盘使用情况。

completion

完成建议统计。

fielddata

正排索引统计信息。

flush

刷新统计信息。

merge

合并统计信息。

request_cache

refresh

刷新统计信息。

warmer

Warmer statistics.

translog

事务日志统计信息。

一些统计信息允许每个字段的粒度,它接受逗号分隔符包含的字段列表。在默认情况下,包括所有字段:

字段

描述

fields

要包括在统计信息中的字段列表。如果没有提供更具体的字段列表,则使用默认列表。

completion_fields

包括在完成建议统计信息中的字段列表。

fielddata_fields

包括在正排索引统计信息中的字段列表。

这里有一些例子:

# Get back stats for merge and refresh only for all indices

GET /_stats/merge,refresh
# Get back stats for type1 and type2 documents for the my_index index
GET /my_index/_stats/indexing?types=type1,type2

# Get back just search stats for group1 and group2
GET /_stats/search?groups=group1,group2

返回的统计信息是索引级的聚合结果,具有primariestotal的聚合结果。其中primaries只是主分片的值,total是主分片和副本分片的累积值。

为了收集分片级别的统计信息,要将level参数设置为shards

注意,随着分片在集群中移动,它们在其他节点上创建时,统计信息会被清除。另一方面,即使分片“离开”一个节点,那个节点依然会保留分片记录的统计信息。

Indices Segments 索引段

提供 Lucene 索引构建的低级别段信息。允许用于提供分片和索引状态、可优化信息和删除引起的数据”浪费“等详细信息。

端点包括特定索引、多个索引或者全部的段。

curl -XGET 'http://localhost:9200/test/_segments'
curl -XGET 'http://localhost:9200/test1,test2/_segments'
curl -XGET 'http://localhost:9200/_segments'

响应:

{
    ...
        "_3": {
            "generation": 3,
            "num_docs": 1121,
            "deleted_docs": 53,
            "size_in_bytes": 228288,
            "memory_in_bytes": 3211,
            "committed": true,
            "search": true,
            "version": "4.6",
            "compound": true
        }
    ...
}

_0

JSON文档的键是段的名字。此名称用户生成文件名:在分片目录中以此名称开头的所有文件都属于此段。

generation

当需要写入新的段时 ,generation 的数值会递增。段名称源于这个 generation数值。

num_docs

此分段中存储的未删除文档的数量。

deleted_docs

此分段中存储的已删除文档的数量。如果这个数字大于0,则当此分段合并时回收空间是完全正常的。

size_in_bytes

此分段使用的磁盘空间,单位是bytes。

memory_in_bytes

分段需要将一些数据存储到内存中以便高效搜索。此数字设置内存的字节数来达到此目的。当这个值为-1时 Elasticsearch 不会计算该值。

committed

表示分段是否已经在磁盘上同步。提交的分段可以在硬重启后保留。未提交的分段也会保存在事务日志中,以便 Elasticsearch 在下一次启动时重放变更,所以此值为false也无需担心。

search

表示该分段是否可以搜索。当值为false时很可能意味着改分段已经写入磁盘,但是之后没用刷新让它可以搜索。

version

表示编写此分段的Lucene版本。

compound

表示此分段是否存储在复合文件中。当为true时,这表示Lucene将分段中的所有文件都合并在一个文件中,以保存文件描述符。

详细模式

要添加用于调试的附加信息,要使用verbose标志。

附加详细信息的格式处于实验阶段,随时可能修改。

curl -XGET 'http://localhost:9200/test/_segments?verbose=true'

响应:

{
    ...
        "_3": {
            ...
            "ram_tree": [
                {
                    "description": "postings [PerFieldPostings(format=1)]",
                    "size_in_bytes": 2696,
                    "children": [
                        {
                            "description": "format 'Lucene50_0' ...",
                            "size_in_bytes": 2608,
                            "children" :[ ... ]
                        },
                        ...
                    ]
                },
                ...
                ]

        }
    ...
}

Last updated