Menu
Choose a product
Viewing: v1.7.x (latest)
Find another version
Scroll for more
Open source
getRecords
KinesisClient.getRecords(shardIterator, [options]) gets records from a Kinesis stream shard using a shard iterator.
Parameters
| Parameter | Type | Description |
|---|---|---|
| shardIterator | string | The shard iterator from which to get records. |
| options | object | Optional configuration for the get records operation. |
Options
| Parameter | Type | Description |
|---|---|---|
| limit | number | The maximum number of records to return. |
Returns
| Type | Description |
|---|---|
Promise<Object> | A Promise that fulfills with the records response. |
Returns object
| Property | Type | Description |
|---|---|---|
| records | Array | An array of records retrieved from the stream. |
| nextShardIterator | string | The next shard iterator to use for subsequent calls. |
| millisBehindLatest | number | The number of milliseconds behind the latest record. |
Record object
| Property | Type | Description |
|---|---|---|
| sequenceNumber | string | The sequence number of the record. |
| approximateArrivalTimestamp | Date | The approximate arrival timestamp of the record. |
| data | string | The data payload of the record. |
| partitionKey | string | The partition key of the record. |
Example
JavaScript
import {
AWSConfig,
KinesisClient,
} from 'https://jslib.k6.io/aws/0.14.0/kinesis.js';
const awsConfig = new AWSConfig({
region: __ENV.AWS_REGION,
accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
});
const kinesis = new KinesisClient(awsConfig);
export default async function () {
const streamName = 'my-test-stream';
// First, get the shards for the stream
const shards = await kinesis.listShards(streamName);
if (shards.shards.length > 0) {
const shardId = shards.shards[0].shardId;
// Get a shard iterator for the first shard
const shardIteratorResponse = await kinesis.getShardIterator(
streamName,
shardId,
'TRIM_HORIZON'
);
const shardIterator = shardIteratorResponse.shardIterator;
// Get records from the shard
const recordsResponse = await kinesis.getRecords(shardIterator, { limit: 10 });
console.log('Records retrieved:', recordsResponse.records.length);
console.log('Milliseconds behind latest:', recordsResponse.millisBehindLatest);
// Process the records
recordsResponse.records.forEach((record, index) => {
console.log(`Record ${index}:`);
console.log(' Sequence number:', record.sequenceNumber);
console.log(' Partition key:', record.partitionKey);
console.log(' Data:', record.data);
console.log(' Arrival timestamp:', record.approximateArrivalTimestamp);
// Parse JSON data if applicable
try {
const jsonData = JSON.parse(record.data);
console.log(' Parsed data:', jsonData);
} catch (e) {
console.log(' Data is not JSON');
}
});
// Continue reading with the next shard iterator
if (recordsResponse.nextShardIterator) {
const nextBatch = await kinesis.getRecords(recordsResponse.nextShardIterator, { limit: 5 });
console.log('Next batch size:', nextBatch.records.length);
}
}
}Was this page helpful?
Related resources from Grafana Labs
Additional helpful documentation, links, and articles:
Video

Performance testing and observability in Grafana Cloud
Optimize user experiences with Grafana Cloud. Learn real-time insights, performance testing with k6, and continuous validation with Synthetic Monitoring.
Events

User-centered observability: load testing, real user monitoring, and synthetics
Learn how to use load testing, synthetic monitoring, and real user monitoring (RUM) to understand end users' experience of your apps. Watch on demand.