紧凑对齐文本 (CAT) API
编辑紧凑对齐文本 (CAT) API编辑
简介编辑
JSON 对计算机来说很棒……即使是格式化的 JSON,尝试在数据中找到关系也很繁琐。人眼,尤其是在查看终端时,需要紧凑对齐的文本。紧凑对齐文本 (CAT) API 旨在满足这一需求。
cat API 仅供使用 Kibana 控制台 或命令行的人类使用。它们不适用于应用程序。对于应用程序使用,我们建议使用相应的 JSON API。
所有 cat 命令都接受查询字符串参数 help
以查看它们提供的所有标题和信息,而 /_cat
命令本身列出了所有可用命令。
通用参数编辑
详细编辑
每个命令都接受一个查询字符串参数 v
来打开详细输出。例如
response = client.cat.master( v: true ) puts response
GET _cat/master?v=true
可能会返回
id host ip node u_n93zwxThWHi1PDBJAGAg 127.0.0.1 127.0.0.1 u_n93zw
帮助编辑
每个命令都接受一个查询字符串参数 help
,它将输出其可用的列。例如
response = client.cat.master( help: true ) puts response
GET _cat/master?help
可能会返回
id | | node id host | h | host name ip | | ip address node | n | node name
如果使用任何可选 URL 参数,则不支持 help
。例如 GET _cat/shards/my-index-000001?help
或 GET _cat/indices/my-index-*?help
会导致错误。请改用 GET _cat/shards?help
或 GET _cat/indices?help
。
标题编辑
每个命令都接受一个查询字符串参数 h
,它强制只显示这些列。例如
response = client.cat.nodes( h: 'ip,port,heapPercent,name' ) puts response
GET _cat/nodes?h=ip,port,heapPercent,name
返回
127.0.0.1 9300 27 sLBaIGK
您还可以使用简单的通配符(如 /_cat/thread_pool?h=ip,queue*
)请求多个列,以获取所有以 queue
开头的标题(或别名)。
数字格式编辑
许多命令提供几种类型的数字输出,例如字节、大小或时间值。默认情况下,这些类型是人类可读的格式,例如 3.5mb
而不是 3763212
。人类可读的值不能按数字排序,因此为了对这些值进行操作(其中顺序很重要),您可以更改它。
假设您想找到集群中最大的索引(所有分片使用的存储空间,而不是文档数量)。/_cat/indices
API 是理想的选择。您只需要在 API 请求中添加三件事
- 具有
b
值的bytes
查询字符串参数,以获得字节级分辨率。 - 具有
store.size:desc
值的s
(排序)参数,以及一个逗号和index:asc
,以按分片存储空间降序排序,然后按索引名称升序排序。 - 用于包含响应中列标题的
v
(详细)参数。
response = client.cat.indices( bytes: 'b', s: 'store.size:desc,index:asc', v: true ) puts response
GET _cat/indices?bytes=b&s=store.size:desc,index:asc&v=true
API 返回以下响应
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size dataset.size yellow open my-index-000001 u8FNjxh8Rfy_awN11oDKYQ 1 1 1200 0 72171 72171 72171 green open my-index-000002 nYFWZEO7TUiOjLQXBaYJpA 1 0 0 0 230 230 230
如果您想更改 时间单位,请使用 time
参数。
如果您想更改 大小单位,请使用 size
参数。
如果您想更改 字节单位,请使用 bytes
参数。
响应为文本、json、smile、yaml 或 cbor编辑
% curl 'localhost:9200/_cat/indices?format=json&pretty' [ { "pri.store.size": "650b", "health": "yellow", "status": "open", "index": "my-index-000001", "pri": "5", "rep": "1", "docs.count": "0", "docs.deleted": "0", "store.size": "650b" } ]
当前支持的格式(对于 ?format=
参数): - 文本(默认) - json - smile - yaml - cbor
或者,您可以将 "Accept" HTTP 标头设置为相应的媒体格式。以上所有格式都受支持,GET 参数优先于标头。例如
% curl '192.168.56.10:9200/_cat/indices?pretty' -H "Accept: application/json" [ { "pri.store.size": "650b", "health": "yellow", "status": "open", "index": "my-index-000001", "pri": "5", "rep": "1", "docs.count": "0", "docs.deleted": "0", "store.size": "650b" } ]
排序编辑
每个命令都接受一个查询字符串参数 s
,它根据作为参数值指定的列对表格进行排序。列通过名称或别名指定,并以逗号分隔的字符串形式提供。默认情况下,排序按升序进行。在列后面追加 :desc
将反转该列的排序顺序。 :asc
也被接受,但表现出与默认排序顺序相同的行为。
例如,对于排序字符串 s=column1,column2:desc,column3
,表格将按 column1 升序排序,按 column2 降序排序,按 column3 升序排序。
response = client.cat.templates( v: true, s: 'order:desc,index_patterns' ) puts response
GET _cat/templates?v=true&s=order:desc,index_patterns
返回
name index_patterns order version pizza_pepperoni [*pepperoni*] 2 sushi_california_roll [*avocado*] 1 1 pizza_hawaiian [*pineapples*] 1