All Products
Search
Document Center

Simple Log Service:GetCursor

Last Updated:Oct 26, 2023

Queries a cursor based on a point in time.

Usage notes

  • Host consists of a project name and a Log Service endpoint. You must specify a project in Host.
  • A cursor is used to record the position of the log that is consumed by a consumer. The consumer can continue to consume data from the last recorded cursor.
  • The following list describes the relationships among a cursor, project, Logstore, and shard:
    • A project can have multiple Logstores.
    • A Logstore can have multiple shards.
    • You can use a cursor to locate a log in a shard.
  • An AccessKey pair is created and obtained. For more information, see AccessKey pairs.

    The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. Using these credentials to perform operations in Log Service is a high-risk operation. We recommend that you use a 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 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, the region of the project, and the name of the Logstore to which the logs belong. For more information, see Manage a project and Manage a Logstore.

Authentication resources

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

Resource

log:GetCursorOrDataacs:log:{#regionId}:{#accountId}:project/{#ProjectName}/logstore/{#LogstoreName}

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code of the operation for different SDKs.

Request headers

This operation uses only common request headers and does not have operation-specific request headers. For more information, see Common request parameters.

Request syntax

GET /logstores/{logstore}/shards/{shardId}?type=cursor HTTP/1.1

Request parameters

ParameterTypePositionRequiredExampleDescription
projectStringHostYesali-test-project

The name of the project.

logstoreStringPathYessls-test-logstore

The name of the Logstore.

shardIdIntegerPathYes1

The ID of the shard.

fromStringQueryYesbegin

The point in time that you want to use to query a cursor. Set the value to a UNIX timestamp or a string such as begin and end.

Note By default, the query starts from the begin cursor of a shard. If the corresponding cursor is greater than the end cursor of the shard, an empty list is returned.

You can use the from parameter to locate a log in a shard within the lifecycle of a Logstore. If the lifecycle of a Logstore is [begin_time,end_time) and the from parameter is set to from_time, the cursor that is returned varies based on the following conditions:

  • from_time ≤ begin_time or from_time = "begin": The cursor that corresponds to begin_time is returned.
  • from_time ≥ end_time or from_time = "end": The cursor that corresponds to the next log to write based on the current time is returned. The cursor currently points to no data.
  • from_time > begin_time and from_time < end_time: The cursor that corresponds to the first packet received by Log Service later than or at from_time is returned.
Note The lifecycle of a Logstore is specified by the TTL field in the attributes of the Logstore. For example, the data of a Logstore is received at 2018-11-11 09:00:00, and the value of the TTL field of the Logstore is 5. The data in each shard of the Logstore can be consumed within the time range [2018-11-05 09:00:00,2018-11-11 09:00:00). The time range is determined based on the time on the Log Service side. For more information, see Data retention period.

Response parameters

ParameterTypeExampleDescription
ServerStringnginx

The name of the server.

Content-TypeStringapplication/json

The format of the response body.

Content-LengthString0

The length of the response body.

ConnectionStringclose

Indicates whether the connection is persistent. Valid values:

  • 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.
DateStringSun, 27 May 2018 08:25:04 GMT

The time when the response was returned.

x-log-requestidString5B0A6B60BB6EE39764D458B5

The request ID.

cursorStringMTQ0NzI5OTYwNjg5NjYzMjM1Ng==

The value of the cursor.

Examples

Sample requests

GET /logstores/sls-test-logstore/shards/0?type=cursor&from=begin HTTP/1.1
Host:ali-test-project.cn-hangzhou.log.aliyuncs.com
Content-Type:application/json

Sample success responses

JSON format

HTTP/1.1 200 OK
Content-Type:application/json

{
  "cursor" : "MTQ0NzI5OTYwNjg5NjYzMjM1Ng=="
}

Error codes

For a list of error codes, see Service error codes.

HttpStatusCode

ErrorCode

ErrorMessage

Description

400

ParameterInvalid

ParameterInvalid

A specified parameter is invalid.

400

ShardNotExist

Shard ShardID does not exist.

The specified shard does not exist.

400

LogStoreWithoutShard

The logstore has no shard.

No shards exist in the specified Logstore.

404

ProjectNotExist

Project does not exist.

The specified project does not exist.

404

LogStoreNotExist

Logstore does not exist.

The specified Logstore does not exist.

500

InternalServerError

Specified Server Error Message.

An internal server error has occurred.

For more information, see Common error codes.