更新时间:2024-12-20 GMT+08:00

查询结构化模板

功能介绍

该接口用于查询结构化模板。

说明:

单个用户每秒最多可调用50次该接口。

调用方法

请参见如何调用API

URI

GET /v3/{project_id}/lts/struct/customtemplate

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见:获取项目ID,获取账号ID,日志组ID、日志流ID

最小长度:32

最大长度:32

表2 Query参数

参数

是否必选

参数类型

描述

id

String

待查询模板id,非必填,不传时返回项目下所有自定义结构化模板

最小长度:36

最大长度:36

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

从IAM服务获取的用户Token,获取方式请参见:获取用户Token

最小长度:1000

最大长度:2000

Content-Type

String

该字段填为:application/json;charset=UTF-8。

最小长度:30

最大长度:30

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

results

Array of StructTemplateModel objects

查询的自定义结构化模板数组

表5 StructTemplateModel

参数

参数类型

描述

project_id

String

项目id

最小长度:32

最大长度:32

template_name

String

模板名称

最小长度:1

最大长度:64

template_type

String

模板类型,regex,json,split,nginx

demo_log

String

示例日志

最小长度:1

最大长度:5000

demo_fields

Array of DemoField objects

示例字段数组

tag_fields

Array of TagFieldNew objects

Tag字段数组

rule

TemplateRule object

结构化规则对象

demo_label

String

示例日志标签

最小长度:0

最大长度:5000

create_time

Long

创建时间

最小值:0

最大值:20000000000000

id

String

模板id

最小长度:36

最大长度:36

表6 DemoField

参数

参数类型

描述

field_name

String

字段名称

最小长度:1

最大长度:64

content

String

字段示例内容

最小长度:1

最大长度:5000

type

String

字段数据类型。

可选范围:string、long、float

is_analysis

Boolean

是否开启快速分析

index

Integer

手动正则及分隔符方式中字段序号

最小值:0

最大值:200

relation

String

描叙多层级json中字段间的层级关系

最小长度:0

最大长度:1000

user_defined_name

String

json及nginx方式中字段自定义别名

最小长度:1

最大长度:64

表7 TagFieldNew

参数

参数类型

描述

field_name

String

字段名称

最小长度:1

最大长度:64

content

String

字段示例内容

最小长度:0

最大长度:5000

type

String

字段数据类型。

可选范围:string、long、float

is_analysis

Boolean

是否开启快速分析

index

Integer

序号,从0开始

最小值:0

最大值:200

表8 TemplateRule

参数

参数类型

描述

type

String

结构化类型,只支持custom_regex,json,split,nginx

param

String

具体结构化规则,每种结构化类型都有自己独有的结构,具体结构如下:

手动正则为json字符串,包含keyObject对象和regex_rules对象,keyObject内为键值对,键为demo_fields数组中元素的index,值为field_name,regex_rules对象为正则表达式字符串,整体例子为

{\"keyObject\":{\"1\":\"date\",\"2\":\"num\"},\"regex_rules\":\"^(?<date>[^/]+)(?:[^]* ){8}(?<num>\\\\d+)\"}

json方式时param为一个json字符串,包含keyObject对象和layers对象,keyObject内为键值对,键为demo_fields数组中元素的field_name,值为user_defined_name,layers为最大解析层数,当前最大值为4,整体例子为

{\"keyObject\":{\"metadata.dimension\":\"dimension\",\"metadata.value\":\"\",\"metadata.unit\":\"\",\"collectionTime\":\"\"},\"layers\":3}

分隔符方式时为json字符串,包含keyObject对象和tokenizer对象,keyObject内为键值对,键为demo_fields数组中元素的index,值为field_name,tokenizer对象为所用分隔符,整体例子为

{\"keyObject\":{\"0\":\"field1\",\"1\":\"field2\",\"2\":\"field3\",\"3\":\"field4\",\"4\":\"field5\",\"5\":\"field6\",\"6\":\"field7\",\"7\":\"field8\",\"8\":\"field9\"},\"tokenizer\":\"\"}

nginx方式时为json字符串,包含keyObject对象,regex对象,field_names对象及log_format对象,keyObject内为键值对,键为demo_fields数组中元素的field_name,值为user_defined_name,regex为正则表达式字符串,field_names对象为demo_fields数组中各元素的field_name的拼接字符串,每个field_name以','分隔,log_format对象为nginx日志格式化方式,整体例子为

{\"keyObject\":{\"http_host\":\"host\",\"remote_addr\":\"\",\"request_method\":\"\",\"request_uri\":\"\",\"time_local\":\"\"},\"regex\":\"(\\\\d+/\\\\S+/\\\\d+:\\\\d+:\\\\d+:\\\\d+)\\\\s+\\\\S+\\\\s+(\\\\S*)\\\\s+(\\\\S*)\\\\s+(\\\\S*)\\\\s+\\\"([^\\\"]*)\\\".*\",\"fieldNames\":\"time_local,remote_addr,request_method,http_host,request_uri\",\"log_format\":\"log_format
upstreaminfo '$time_local $remote_addr  $request_method $http_host
\\\"$request_uri\\\"';\"}

最小长度:1

最大长度:5000

状态码: 500

表9 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

最小长度:8

最大长度:8

error_msg

String

调用失败响应信息描述。

请求示例

查询当前结构化模板详情

GET https://{endpoint}/v3/{project_id}/lts/struct/customtemplate?id=bc8e3f2c-87fe-4acd-8439-69cdf29251c1

/v3/{project_id}/lts/struct/customtemplate?id=bc8e3f2c-87fe-4acd-8439-69cdf29251c1

响应示例

状态码: 200

请求响应成功。

{
  "results" : [ {
    "create_time" : 1641258099551,
    "demo_fields" : [ {
      "content" : "2022-01-03/14:52:28",
      "field_name" : "field1",
      "index" : 0,
      "is_analysis" : true,
      "type" : "string"
    }, {
      "content" : "this",
      "field_name" : "field2",
      "index" : 1,
      "is_analysis" : true,
      "type" : "string"
    }, {
      "content" : "log",
      "field_name" : "field3",
      "index" : 2,
      "is_analysis" : false,
      "type" : "string"
    }, {
      "content" : "is",
      "field_name" : "field4",
      "index" : 3,
      "is_analysis" : false,
      "type" : "string"
    }, {
      "content" : "Error",
      "field_name" : "field5",
      "index" : 4,
      "is_analysis" : false,
      "type" : "string"
    }, {
      "content" : "NO",
      "field_name" : "field6",
      "index" : 5,
      "is_analysis" : false,
      "type" : "string"
    }, {
      "content" : "13测试",
      "field_name" : "field7",
      "index" : 6,
      "is_analysis" : false,
      "type" : "string"
    }, {
      "content" : "286",
      "field_name" : "field8",
      "index" : 7,
      "is_analysis" : false,
      "type" : "long"
    } ],
    "demo_log" : "2022-01-03/14:52:28 this log is Error NO 13测试 286",
    "id" : "43a8cc7b-b632-4c36-a65d-8150e98219f1",
    "project_id" : "2a473356cca5487f8373be89xxxxxxxx",
    "rule" : {
      "param" : "{\"keyObject\":{\"0\":\"field1\",\"1\":\"field2\",\"2\":\"field3\",\"3\":\"field4\",\"4\":\"field5\",\"5\":\"field6\",\"6\":\"field7\",\"7\":\"field8\"},\"tokenizer\":\" \"}",
      "type" : "split"
    },
    "demo_label" : "{}",
    "tag_fields" : [ {
      "content" : "172.16.10.69",
      "field_name" : "hostIP",
      "index" : 0,
      "is_analysis" : true,
      "type" : "string"
    } ],
    "template_name" : "testSplit13",
    "template_type" : "split"
  } ]
}

状态码: 500

表明服务端能被请求访问到,但是服务内部出错。

{
  "error_code" : "LTS.2017",
  "error_msg" : "Find struct template failed."
}

状态码

状态码

描述

200

请求响应成功。

500

表明服务端能被请求访问到,但是服务内部出错。

错误码

请参见错误码