Documentation for automated readers
A curated documentation index is available at: https://grafana.com/llms.txt
A complete documentation index is available at: https://grafana.com/llms-full.txt
These indexes can help with page discovery before fetching individual documents.
This page is also available in Markdown, which may be easier for automated readers and AI tools to parse than HTML. The Markdown version is available at https://grafana.com/docs/k6/latest/javascript-api/jslib/aws/kinesisclient/getrecords.md, or by sending Accept: text/markdown to https://grafana.com/docs/k6/latest/javascript-api/jslib/aws/kinesisclient/getrecords/. For broader documentation discovery, the curated index is available at https://grafana.com/llms.txt and the complete index is available at https://grafana.com/llms-full.txt.
Menu
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.
Choose a product
Viewing: v2.0.x (latest)
Find another version
Scroll for more