Updated on 2025-08-21 GMT+08:00

Querying Logs

Function

This API is used to query logs in a specified log stream.

Calling Method

For details, see Calling APIs.

URI

POST /v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Definition

Project ID. It can be obtained by calling an API or from the console. For details, see Obtaining a Project ID.

Constraints

N/A

Range

N/A

Default Value

N/A

log_group_id

Yes

String

Definition

Log group ID. For details about how to obtain it, see Obtaining Log Group and Log Stream IDs.

Constraints

N/A

Range

N/A

Default Value

N/A

log_stream_id

Yes

String

Definition

Log stream ID. For details about how to obtain it, see Obtaining Log Group and Log Stream IDs.

Constraints

N/A

Range

N/A

Default Value

N/A

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Definition

User token obtained from IAM. For details about how to obtain it, see Obtaining a User Token.

Constraints:

N/A

Range

N/A

Default Value

N/A

Content-Type

Yes

String

Definition

Message body format. Set this parameter to application/json;charset=utf8.

Constraints

N/A

Range

N/A

Default Value

N/A

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

start_time

Yes

String

Definition

Start time for searching for logs by time range. Log time refers to the time when a log is written.

The time range between start_time and end_time includes both the start time and end time.

Constraints

  • The maximum time range for a query is 180 days.

  • The values of start_time and end_time must be different.

Range

The value must be a timestamp, measured in milliseconds from January 1, 1970, 00:00:00 UTC.

Default Value

N/A

end_time

Yes

String

Definition

End time for searching for logs by time range. Log time refers to the time when a log is written.

The time range between start_time and end_time includes both the start time and end time.

Constraints

  • The maximum time range for a query is 180 days.

  • The values of start_time and end_time must be different.

Range

The value must be a timestamp, measured in milliseconds from January 1, 1970, 00:00:00 UTC.

Default Value

N/A

labels

No

Map<String,String>

Definition

Filter criteria for searching logs by field name and field value (key:value).

Constraints

You can use the system reserved fields. If you want to configure more fields, configure field indexing by calling the API for creating an index for a specified log stream.

keywords

No

String

Definition

Keyword used for log search. A keyword is a word between two adjacent delimiters. Example: error

Constraints

N/A

Range

N/A

Default Value

N/A

line_num

No

String

Definition

Sequence number of a log line. This parameter identifies the log reporting sequence. It is used for pagination query and to ensure that log data is processed in the correct order.

For the first query, the query starts from the beginning of the log data by default. Therefore, this parameter is not required.

For subsequent pagination queries, this parameter is required to continue your search from where the last query ended. You get the value for line_num from the results returned by your previous query.

Constraints

  • The sequence number must belong to a log that was written within the time range defined by start_time and end_time.

  • If the custom time function is enabled, you need to use this field and the time field together to ensure accurate pagination query.

Range

The value must be a UNIX timestamp, measured in nanoseconds from January 1, 1970, 00:00:00 UTC.

Default Value

N/A

__time__

No

String

Definition

If the custom time function is enabled for cloud structuring, use this field and the line_num field together for pagination queries. The values are obtained from the results of the previous query.

Constraints

N/A

Range

The value must be a timestamp, measured in milliseconds from January 1, 1970, 00:00:00 UTC.

Default Value

N/A

is_desc

No

Boolean

Definition

Log query order. The value can be false (ascending order) and true (descending order).

Constraints

N/A

Range

  • true: Logs are queried in ascending order of reporting time, meaning the oldest logs are queried first.

  • false: Logs are queried in descending order of reporting time, meaning the latest logs are queried first.

Default Value

false

search_type

No

String

Definition

Query type. search_type and is_desc are used together to determine whether a pagination query is in ascending or descending order.

Constraints

N/A

Range

  • init: starts the first query.

  • forwards: queries the next page in pagination mode.

  • backwards: queries the previous page in pagination mode.

Default Value

init: starts the first query.

limit

No

Integer

Definition

Number of logs to retrieve per query. Recommended value: 100.

Constraints

N/A

Range

  • Minimum value: 1

  • Maximum value: 5000

Default Value

50

highlight

No

Boolean

Definition

Whether to highlight log keywords in the query results.

Constraints

N/A

Range

  • true: highlights keywords.

  • false: does not highlight keywords.

Default Value

true

is_count

No

Boolean

Definition

Whether to count the number of logs in the query results.

Constraints

N/A

Range

  • true: counts the logs.

  • false: does not count the logs.

Default Value

false

is_iterative

No

Boolean

Definition

Whether to enable the log iterative query function.

Constraints

N/A

Range

  • true: enables iterative query, returning query results in batches. This mode is applicable for querying a large volume of log data.

  • false: disables iterative query, returning all query results in a single response. This mode is suitable for a small volume of logs.

Default Value

false

query

No

String

Definition

Search and analysis statements combined with the pipe character (|). For example, num:60 | select count(*) as error_count where "request_ time" >=60 and "request_time" < 200*. For more information, see SQL Functions.

Constraints

This parameter is valid only when is_analysis_query is set to true.

Range

N/A

Default Value

N/A

is_analysis_query

No

Boolean

Definition

Whether to enable the pipe character statement query function.

When this function is enabled:

  • The query is performed based on the query parameter in the request body.

  • All other parameters in the request body, except for start_time and end_time, are ignored.

  • Pagination, sorting, and query result counting must be implemented using SQL syntax.

  • The query results are returned in the default column-store mode, which differs from the format used when the SQL query function is disabled. Example:

{"analysisLogs":[{"field1":"1","field2":"2","field3":"3"},{"field1":"1","field2":"2","field3":"3"},{"field1":"1","field2":"2","field3":"3"}]}

Constraints

This function is available only to users in the internal test. For other users, the default value is false.

Range

  • true: enables the pipe character statement query function.

  • false: disables the pipe character statement query function.

Default Value

false

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

logs

Array of LogContents objects

Definition

Log information.

count

Integer

Definition

Number of log events.

Range

N/A

isQueryComplete

Boolean

Definition

Whether the query is complete.

Range

true: The query is complete.

false: The query is not complete.

analysisLogs

Array of objects

Definition

Response body of log analysis.

Table 5 LogContents

Parameter

Type

Description

content

String

Definition

Raw log data.

Range

N/A

line_num

String

Definition

Sequence number of a log line.

Range

N/A

labels

Map<String,String>

Definition

Labels contained in a log event. The labels vary depending on log events.

Status code: 400

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

Definition

Error code. For details, see Error Codes.

Range

N/A

error_msg

String

Definition

Error message.

Range

N/A

Status code: 401

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

Definition

Error code. For details, see Error Codes.

Range

N/A

error_msg

String

Definition

Error message.

Range

N/A

Status code: 403

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Definition

Error code. For details, see Error Codes.

Range

N/A

error_msg

String

Definition

Error message.

Range

N/A

Status code: 500

Table 9 Response body parameters

Parameter

Type

Description

error_code

String

Definition

Error code. For details, see Error Codes.

Range

N/A

error_msg

String

Definition

Error message.

Range

N/A

Example Requests

  • For the first query:

    POST https://{endpoint}/v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query 
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "limit" : 10,
      "is_count" : true
    }
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 6, NO 7, and NO 8 are the target log events):

    https://{endpoint}/ v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "line_num" : "1595659490239433658",
      "is_desc" : "false",
      "search_type" : "forwards",
      "limit" : "3",
      "is_count" : true
    }
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 8, NO 7, and NO 6 are the target log events):

    https://{endpoint}/ v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "line_num" : "1595659490239433658",
      "is_desc" : "true",
      "search_type" : "forwards",
      "limit" : "3",
      "is_count" : true
    }
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 2, NO 3, and NO 4 are the target log events):

    https://{endpoint}/ v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "line_num" : "1595659490239433658",
      "is_desc" : "false",
      "search_type" : "backwards",
      "limit" : "3",
      "is_count" : true
    }
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 4, NO 3, and NO 2 are the target log events):

    https://{endpoint}/ v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query
    
    {
      "start_time" : 1595659200000,
      "end_time" : 1595659500000,
      "labels" : {
        "hostName" : "ecs-kwxtest"
      },
      "keywords" : "log",
      "line_num" : "1595659490239433658",
      "is_desc" : "true",
      "search_type" : "backwards",
      "limit" : "3",
      "is_count" : true
    }
  • Analyze the statement query example.

    https://{endpoint}/v2/{project_id}/groups/{log_group_id}/streams/{log_stream_id}/content/query 
    
    {
      "start_time" : 1722324332801,
      "end_time" : 1722327932801,
      "query" : "* | select field1,field2 from log",
      "is_analysis_query" : true
    }

Example Responses

Status code: 200

The request is successful.

  • Querying logs for the first time

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:42 this <HighLightTag>log</HighLightTag> is Error NO 1",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433654"
      }, {
        "content" : "2020-07-25/14:44:43 this <HighLightTag>log</HighLightTag> is Error NO 2",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433655"
      }, {
        "content" : "2020-07-25/14:44:44 this <HighLightTag>log</HighLightTag> is Error NO 3",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433656"
      }, {
        "content" : "2020-07-25/14:44:45 this <HighLightTag>log</HighLightTag> is Error NO 4",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433657"
      }, {
        "content" : "2020-07-25/14:44:46 this <HighLightTag>log</HighLightTag> is Error NO 5",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433658"
      }, {
        "content" : "2020-07-25/14:44:47 this <HighLightTag>log</HighLightTag> is Error NO 6",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433659"
      }, {
        "content" : "2020-07-25/14:44:48 this <HighLightTag>log</HighLightTag> is Error NO 7",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433660"
      }, {
        "content" : "2020-07-25/14:44:49 this <HighLightTag>log</HighLightTag> is Error NO 8",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433661"
      }, {
        "content" : "2020-07-25/14:44:50 this <HighLightTag>log</HighLightTag> is Error NO 9",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490839420574"
      }, {
        "content" : "2020-07-25/14:44:51 this <HighLightTag>log</HighLightTag> is Error NO 10",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659491839412667"
      } ]
    }
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 6, NO 7, and NO 8 are the target log events):

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:47 this <HighLightTag>log</HighLightTag> is Error NO 6",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433659"
      }, {
        "content" : "2020-07-25/14:44:48 this <HighLightTag>log</HighLightTag> is Error NO 7",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433660"
      }, {
        "content" : "2020-07-25/14:44:49 this <HighLightTag>log</HighLightTag> is Error NO 8",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433661"
      } ]
    }
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 8, NO 7, and NO 6 are the target log events):

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:49 this <HighLightTag>log</HighLightTag> is Error NO 8",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433661"
      }, {
        "content" : "2020-07-25/14:44:48 this <HighLightTag>log</HighLightTag> is Error NO 7",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433660"
      }, {
        "content" : "2020-07-25/14:44:47 this <HighLightTag>log</HighLightTag> is Error NO 6",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433659"
      } ]
    }
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 2, NO 3, and NO 4 are the target log events):

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:43 this <HighLightTag>log</HighLightTag> is Error NO 2",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433655"
      }, {
        "content" : "2020-07-25/14:44:44 this <HighLightTag>log</HighLightTag> is Error NO 3",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433656"
      }, {
        "content" : "2020-07-25/14:44:45 this <HighLightTag>log</HighLightTag> is Error NO 4",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433657"
      } ]
    }
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 4, NO 3, and NO 2 are the target log events):

    {
      "count" : 32,
      "logs" : [ {
        "content" : "2020-07-25/14:44:45 this <HighLightTag>log</HighLightTag> is Error NO 4",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433657"
      }, {
        "content" : "2020-07-25/14:44:44 this <HighLightTag>log</HighLightTag> is Error NO 3",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433656"
      }, {
        "content" : "2020-07-25/14:44:43 this <HighLightTag>log</HighLightTag> is Error NO 2",
        "labels" : {
          "hostName" : "ecs-kwxtest",
          "hostIP" : "192.168.0.156",
          "appName" : "default_appname",
          "containerName" : "CONFIG_FILE",
          "clusterName" : "CONFIG_FILE",
          "hostId" : "9787ef31-fd7b-4eff-ba71-72d580f11f55",
          "podName" : "default_procname",
          "clusterId" : "CONFIG_FILE",
          "nameSpace" : "CONFIG_FILE",
          "category" : "LTS"
        },
        "line_num" : "1595659490239433655"
      } ]
    }

Status code: 400

Invalid request or query statement. Modify the request based on the description in error_msg before a retry.

{
  "error_code" : "LTS.0009",
  "error_msg" : "Failed to validate the request body"
}

Status code: 401

Authentication failed. Check the token and try again.

{
  "error_code" : "LTS.0003",
  "error_msg" : "Invalid token"
}

Status code: 403

Request rejected. The server has received the request and understood it, but refuses to respond to it. The client should not repeat the request without modifications.

{
  "error_code" : "LTS.0001",
  "error_msg" : "Invalid projectId"
}

Status code: 500

The server has received the request but encountered an internal error.

{
  "error_code" : "LTS.0202",
  "error_msg" : "Failed to query lts log"
}

SDK Sample Code

The SDK sample code is as follows.

  • For the first query:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(10);
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 6, NO 7, and NO 8 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(3);
            body.withSearchType(QueryLtsLogParams.SearchTypeEnum.fromValue("forwards"));
            body.withIsDesc(false);
            body.withLineNum("1595659490239433658");
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 8, NO 7, and NO 6 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(3);
            body.withSearchType(QueryLtsLogParams.SearchTypeEnum.fromValue("forwards"));
            body.withIsDesc(true);
            body.withLineNum("1595659490239433658");
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 2, NO 3, and NO 4 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(3);
            body.withSearchType(QueryLtsLogParams.SearchTypeEnum.fromValue("backwards"));
            body.withIsDesc(false);
            body.withLineNum("1595659490239433658");
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 4, NO 3, and NO 2 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            Map<String, String> listbodyLabels = new HashMap<>();
            listbodyLabels.put("hostName", "ecs-kwxtest");
            body.withLimit(3);
            body.withSearchType(QueryLtsLogParams.SearchTypeEnum.fromValue("backwards"));
            body.withIsDesc(true);
            body.withLineNum("1595659490239433658");
            body.withKeywords("log");
            body.withIsCount(true);
            body.withLabels(listbodyLabels);
            body.withEndTime("1595659500000");
            body.withStartTime("1595659200000");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • Analyze the statement query example.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    
    public class ListLogsSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            ListLogsRequest request = new ListLogsRequest();
            request.withLogGroupId("{log_group_id}");
            request.withLogStreamId("{log_stream_id}");
            QueryLtsLogParams body = new QueryLtsLogParams();
            body.withIsAnalysisQuery(true);
            body.withQuery("* | select field1,field2 from log");
            body.withEndTime("1722327932801");
            body.withStartTime("1722324332801");
            request.withBody(body);
            try {
                ListLogsResponse response = client.listLogs(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • For the first query:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=10,
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 6, NO 7, and NO 8 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=3,
                search_type="forwards",
                is_desc=False,
                line_num="1595659490239433658",
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 8, NO 7, and NO 6 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=3,
                search_type="forwards",
                is_desc=True,
                line_num="1595659490239433658",
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 2, NO 3, and NO 4 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=3,
                search_type="backwards",
                is_desc=False,
                line_num="1595659490239433658",
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 4, NO 3, and NO 2 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            listLabelsbody = {
                "hostName": "ecs-kwxtest"
            }
            request.body = QueryLtsLogParams(
                limit=3,
                search_type="backwards",
                is_desc=True,
                line_num="1595659490239433658",
                keywords="log",
                is_count=True,
                labels=listLabelsbody,
                end_time="1595659500000",
                start_time="1595659200000"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • Analyze the statement query example.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = ListLogsRequest()
            request.log_group_id = "{log_group_id}"
            request.log_stream_id = "{log_stream_id}"
            request.body = QueryLtsLogParams(
                is_analysis_query=True,
                query="* | select field1,field2 from log",
                end_time="1722327932801",
                start_time="1722324332801"
            )
            response = client.list_logs(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • For the first query:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(10)
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 6, NO 7, and NO 8 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(3)
    	searchTypeQueryLtsLogParams:= model.GetQueryLtsLogParamsSearchTypeEnum().FORWARDS
    	isDescQueryLtsLogParams:= false
    	lineNumQueryLtsLogParams:= "1595659490239433658"
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		SearchType: &searchTypeQueryLtsLogParams,
    		IsDesc: &isDescQueryLtsLogParams,
    		LineNum: &lineNumQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 8, NO 7, and NO 6 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(3)
    	searchTypeQueryLtsLogParams:= model.GetQueryLtsLogParamsSearchTypeEnum().FORWARDS
    	isDescQueryLtsLogParams:= true
    	lineNumQueryLtsLogParams:= "1595659490239433658"
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		SearchType: &searchTypeQueryLtsLogParams,
    		IsDesc: &isDescQueryLtsLogParams,
    		LineNum: &lineNumQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 2, NO 3, and NO 4 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(3)
    	searchTypeQueryLtsLogParams:= model.GetQueryLtsLogParamsSearchTypeEnum().BACKWARDS
    	isDescQueryLtsLogParams:= false
    	lineNumQueryLtsLogParams:= "1595659490239433658"
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		SearchType: &searchTypeQueryLtsLogParams,
    		IsDesc: &isDescQueryLtsLogParams,
    		LineNum: &lineNumQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • For a pagination query (Assume that the search starts from the log event containing NO 5. Log events containing NO 4, NO 3, and NO 2 are the target log events):

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	var listLabelsbody = map[string]string{
            "hostName": "ecs-kwxtest",
        }
    	limitQueryLtsLogParams:= int32(3)
    	searchTypeQueryLtsLogParams:= model.GetQueryLtsLogParamsSearchTypeEnum().BACKWARDS
    	isDescQueryLtsLogParams:= true
    	lineNumQueryLtsLogParams:= "1595659490239433658"
    	keywordsQueryLtsLogParams:= "log"
    	isCountQueryLtsLogParams:= true
    	request.Body = &model.QueryLtsLogParams{
    		Limit: &limitQueryLtsLogParams,
    		SearchType: &searchTypeQueryLtsLogParams,
    		IsDesc: &isDescQueryLtsLogParams,
    		LineNum: &lineNumQueryLtsLogParams,
    		Keywords: &keywordsQueryLtsLogParams,
    		IsCount: &isCountQueryLtsLogParams,
    		Labels: listLabelsbody,
    		EndTime: "1595659500000",
    		StartTime: "1595659200000",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • Analyze the statement query example.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.ListLogsRequest{}
    	request.LogGroupId = "{log_group_id}"
    	request.LogStreamId = "{log_stream_id}"
    	isAnalysisQueryQueryLtsLogParams:= true
    	queryQueryLtsLogParams:= "* | select field1,field2 from log"
    	request.Body = &model.QueryLtsLogParams{
    		IsAnalysisQuery: &isAnalysisQueryQueryLtsLogParams,
    		Query: &queryQueryLtsLogParams,
    		EndTime: "1722327932801",
    		StartTime: "1722324332801",
    	}
    	response, err := client.ListLogs(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

The request is successful.

400

Invalid request or query statement. Modify the request based on the description in error_msg before a retry.

401

Authentication failed. Check the token and try again.

403

Request rejected. The server has received the request and understood it, but refuses to respond to it. The client should not repeat the request without modifications.

500

The server has received the request but encountered an internal error.

Error Codes

See Error Codes.