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
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
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 |
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
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
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
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
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
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
Default Value 50 |
highlight |
No |
Boolean |
Definition Whether to highlight log keywords in the query results. Constraints N/A Range
Default Value true |
is_count |
No |
Boolean |
Definition Whether to count the number of logs in the query results. Constraints N/A Range
Default Value false |
is_iterative |
No |
Boolean |
Definition Whether to enable the log iterative query function. Constraints N/A Range
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:
{"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
Default Value false |
Response Parameters
Status code: 200
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. |
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
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
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
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
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.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot