Queries logs in a project by executing an SQL statement.
Usage notes
Host consists of a project name and a Simple Log Service endpoint. You must specify a project in Host.
An AccessKey pair is created and obtained. For more information, see AccessKey pair.
The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations in Simple Log Service is a high-risk operation. We recommend that you use a Resource Access Management (RAM) user to call API operations or perform routine O&M. To create a RAM user, log on to the RAM console. Make sure that the RAM user has the management permissions on Simple Log Service resources. For more information, see Create a RAM user and authorize the RAM user to access Log Service.
The information that is required to query logs is obtained. The information includes the name of the project to which the logs belong and the region of the project. For more information, see Manage a project.
Indexes are configured before you query logs. For more information, see Create indexes.
Limits are imposed when you use Simple Log Service to query logs. We recommend that you specify query statements and query time ranges based on the limits. For more information, see Log search overview and Log analysis overview.
You can use the query parameter to specify a standard SQL statement.
You must specify a Logstore in the FROM clause of the SQL statement. A Logstore can be used as an SQL table.
You must specify a time range in the SQL statement by using the __date__ parameter or __time__ parameter. The value of the __date__ parameter is a timestamp, and the value of the __time__ parameter is an integer. The unit of the __time__ parameter is seconds.
Authorization information
The following table describes the authorization information that is required for this operation. You can add the information to the Action element of a RAM policy statement to grant a RAM user or a RAM role the permissions to call this operation.
Action | Authentication Resource |
|
|
Debugging
Request headers
This operation uses only common request headers. For more information, see Common request headers.
Request syntax
GET /logs HTTP/1.1
Request parameters
Parameter | Type | Position | Required | Example | Description |
project | String | Host | Yes | ali-test-project | The name of the project. |
query | String | Query | Yes | SELECT COUNT(*) as pv FROM nginx-moni where __time__ > 1646102500 and __time__ < 1646103400 | The standard SQL statement. In this example, the SQL statement queries the number of page views (PVs) from 2022-03-01 10:41:40 to 2022-03-01 10:56:40 in a Logstore whose name is nginx-moni. |
powerSql | Boolean | Query | No | false | Specifies whether to enable the Dedicated SQL feature. For more information, see Enable Dedicated SQL. Valid values:
You can use the powerSql or query parameter to configure Dedicated SQL. |
Response parameters
Parameter | Type | Example | Description |
x-log-progress | String | Complete | The status of the query and analysis results. Valid values:
|
x-log-count | Long | 10000 | The total number of logs in the query and analysis results. |
x-log-processed-rows | Long | 10000 | The number of lines that are processed based on the request. |
x-log-elapsed-millisecond | Long | 5 | The time that is consumed by the request. Unit: milliseconds. |
Server | String | nginx | The name of the server. |
Content-Type | String | application/json | The content type of the response body. |
Content-Length | String | 0 | The content length of the response body. |
Connection | String | close | Indicates whether the connection is persistent. Valid values: close and keep-alive. close: The connection is non-persistent. A new TCP connection is established for each HTTP request. keep-alive: The connection is persistent. After a TCP connection is established, the connection remains open, and no more time or bandwidth is consumed to establish new connections. |
Date | String | Sun, 27 May 2018 08:25:04 GMT | The time when the response was returned. |
x-log-requestid | String | 5B0A6B60BB6EE39764D458B5 | The request ID. |
Array of Object | [ { "__time__" : 1409529660, "__source__" : "192.168.1.100", "Key1" : "error", "Key2" : "Value2" }, { "__time__" : 1409529680, "__source__" : "192.168.1.100", "Key3" : "error", "Key4" : "Value4" } ] | The logs that are returned. |
Examples
Sample requests
GET /logs?query=SELECT COUNT(*) as pv FROM nginx-moni where __time__ > 1646102500 and __time__ < 1646103400&powerSql=false HTTP/1.1
Host:ali-test-project.ch-hangzhou.log.aliyuncs.com
Content-Type:application/json
Sample success responses
JSON
format
HTTP/1.1 200 OK
Content-Type:application/json
[ {
"__time__" : 1409529660,
"__source__" : "192.168.1.100",
"Key1" : "error",
"Key2" : "Value2"
}, {
"__time__" : 1409529680,
"__source__" : "192.168.1.100",
"Key3" : "error",
"Key4" : "Value4"
} ]
Error codes
For a list of error codes, see Service error codes.
HTTP status code | Error code | Error message | Description |
400 | ParameterInvalid | Parameter is invalid. | A specified parameter is invalid. |
For more information, see Common error codes.