紧凑对齐文本 (CAT) API

编辑

紧凑对齐文本 (CAT) API

编辑

简介

编辑

JSON 很棒…… 对于计算机来说。即使它被漂亮地打印出来,尝试在数据中找到关系也很乏味。人眼,尤其是在看终端时,需要紧凑且对齐的文本。紧凑对齐文本 (CAT) API 旨在满足这种需求。

cat API 仅供人类使用 Kibana 控制台或命令行。它们打算供应用程序使用。对于应用程序的使用,我们建议使用相应的 JSON API。

所有 cat 命令都接受查询字符串参数 help 来查看它们提供的所有标头和信息,而单独的 /_cat 命令会列出所有可用的命令。

常用参数

编辑

详细

编辑

每个命令都接受查询字符串参数 v 以启用详细输出。例如

resp = client.cat.master(
    v=True,
)
print(resp)
response = client.cat.master(
  v: true
)
puts response
const response = await client.cat.master({
  v: "true",
});
console.log(response);
GET _cat/master?v=true

可能会响应

id                     host      ip        node
u_n93zwxThWHi1PDBJAGAg 127.0.0.1 127.0.0.1 u_n93zw

帮助

编辑

每个命令都接受查询字符串参数 help,该参数将输出其可用列。例如

resp = client.cat.master(
    help=True,
)
print(resp)
response = client.cat.master(
  help: true
)
puts response
const response = await client.cat.master({
  help: "true",
});
console.log(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?helpGET _cat/indices/my-index-*?help 会导致错误。请改用 GET _cat/shards?helpGET _cat/indices?help

标头

编辑

每个命令都接受查询字符串参数 h,该参数强制仅显示这些列。例如

resp = client.cat.nodes(
    h="ip,port,heapPercent,name",
)
print(resp)
response = client.cat.nodes(
  h: 'ip,port,heapPercent,name'
)
puts response
const response = await client.cat.nodes({
  h: "ip,port,heapPercent,name",
});
console.log(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 请求添加三项内容

  1. bytes 查询字符串参数,其值为 b 以获取字节级分辨率。
  2. s (排序) 参数,其值为 store.size:desc 和逗号与 index:asc,以按分片存储的降序然后按索引名称的升序对输出进行排序。
  3. v(详细)参数,以在响应中包含列标题。
resp = client.cat.indices(
    bytes="b",
    s="store.size:desc,index:asc",
    v=True,
)
print(resp)
response = client.cat.indices(
  bytes: 'b',
  s: 'store.size:desc,index:asc',
  v: true
)
puts response
const response = await client.cat.indices({
  bytes: "b",
  s: "store.size:desc,index:asc",
  v: "true",
});
console.log(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= 参数):- text (默认) - 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 升序排序。

resp = client.cat.templates(
    v=True,
    s="order:desc,index_patterns",
)
print(resp)
response = client.cat.templates(
  v: true,
  s: 'order:desc,index_patterns'
)
puts response
const response = await client.cat.templates({
  v: "true",
  s: "order:desc,index_patterns",
});
console.log(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