/api/search/lookup

Note

2.1 版本

查找查询使用元数据表或主数据表来确定哪些时间序列与给定的 Metrics,标签名称,标签值,标签对或其组合相关联。例如,如果您想知道标签对host=web01可用的度量标准,则可以执行查找来查找。查找不需要安装搜索插件。

Note

针对tsdb-meta表执行查找。您必须启用实时元数据创建或使用uid命令执行metasync才能从查询中检索数据。只能使用 CLI 命令对原始数据表执行查找:search

Verbs

  • GET

  • POST

Requests

查找端点使用的参数包括:

NameData TypeRequiredDescriptionDefaultQSRWExample
queryStringRequired如下定义的查询查询。 m tsd.hbase.rpcs{type=*}
useMetaBooleanOptional是否使用元数据表或原始数据表。原始表会慢很多。trueuse_meta false
limitIntegerOptional结果集中返回的最大项目数。25 100
startIndexIntegerOptional忽略查找查询,始终是默认查询。0 10

Lookup Queries

查找查询至少包含一个 Metrics,标签名称(tagk)或标签值(tagv)。每个值都必须是 UID 表中的 Literals 名称。如果给定名称不能解析为 UID,则将返回异常。每个查询只能提供一个 Metrics,但可以提供多个 tagk,tagv 或标签对。

通常,以<tagk>=<tagv>格式提供标签 a,并且在等号的两边都需要一个值。但是,对于查找,一个值可能是星号*,即<tagk>=**=<tagv>。在这些情况下,星号充当通配符,这意味着将返回具有给定 tagk 或 tagv 的任何时间序列。例如,如果发出对host=*的查询,则将获得带有host标签的所有时间序列,例如host=web01host=web02

对于具有多个值的复杂查询,每种类型与其他类型分别为AND'd 和其自身的类型为OR'd。

<metric> AND (<tagk1>=[<tagv1>] OR <tagk1>=[<tagv2>]) AND ([<tagk2>]=<tagv3> OR [<tagk2>]=<tagv4>)

例如,查询tsd.hbase.rpcs{type=*,host=tsd1,host=tsd2,host=tsd3}将仅返回带有度量tsd.hbase.rpcs的时间序列和具有任何值的type标签以及具有tsd1tsd2tsd3host标签。与数据查询不同,您可以提供多个具有相同名称的标签,如上例所示。通配符始终具有优先级,因此,如果您的查询看起来像tsd.hbase.rpcs{type=*,host=tsd1,host=tsd2,host=*},则该查询将被有效地视为tsd.hbase.rpcs{type=*,host=*}

检索具有特定标签值的所有时间序列的列表,例如对于特定的主机,您可以发出诸如{*=web01}之类的查询,该查询将返回所有时间序列,其标记值为web01。这对于调试标签名称问题(例如某些系列具有host=web01server=web01)很有用。

Example Request

Query String:

http://localhost:4242/api/search/lookup?m=tsd.hbase.rpcs{type=*}

POST:

JSON 请求遵循/api/search页上的搜索查询格式。限制和开始注意,标记作为对象列表提供。 key的值应为tagkvalue的值应为tagv或通配符。

{
    "metric": "tsd.hbase.rpcs",
    "tags":[
        {
            "key": "type",
            "value": "*"
        }
    ]
}

Response

根据调用的端点,输出将略有变化。但是,常见的字段包括:

NameData TypeDescriptionExample
typeString提交的查询类型,即调用的端点。LOOKUP
queryString忽略查询查询。
limitInteger结果集中返回的最大项目数。25
startIndexInteger忽略查找查询,始终是默认查询。0
metricString用于查找的 Metrics*
tagsArray用于查找的标记对列表。可能是一个空列表。[ ]
timeInteger完成查询所花费的时间(以毫秒为单位)120
totalResultsInteger查询匹配的结果总数1024
resultsArray每个系列的结果集包含 TSUID,Metrics 和标签。See Below

该端点几乎总是返回带有内容主体的200。如果查询不匹配任何结果,则results字段将为空数组,而totalResults将为 0.如果发生错误(例如无法将度量标准或标记名称解析为 UID),则将返回异常。

Example Response

{
    "type": "LOOKUP",
    "metric": "tsd.hbase.rpcs",
    "tags":[
        {
            "key": "type",
            "value": "*"
        }
    ]
    "limit": 3,
    "time": 565,
    "results": [
        {
            "tags": {
                "fqdn": "web01.mysite.com"
            },
            "metric": "app.apache.connections",
            "tsuid": "0000150000070010D0"
        },
        {
            "tags": {
                "fqdn": "web02.mysite.com"
            },
            "metric": "app.apache.connections",
            "tsuid": "0000150000070010D5"
        },
        {
            "tags": {
                "fqdn": "web03.mysite.com"
            },
            "metric": "app.apache.connections",
            "tsuid": "0000150000070010D6"
        }
    ],
    "startIndex": 0,
    "totalResults": 9688066
}