<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>KinesisClient on Grafana Labs</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/</link><description>Recent content in KinesisClient on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/index.xml" rel="self" type="application/rss+xml"/><item><title>createStream</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/createstream/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/createstream/</guid><content><![CDATA[&lt;h1 id=&#34;createstream&#34;&gt;createStream&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KinesisClient.createStream(streamName, [options])&lt;/code&gt; creates a new Kinesis stream.&lt;/p&gt;
&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;streamName&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The name of the Kinesis stream to create.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;options&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;object&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Optional configuration for the stream creation.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;options&#34;&gt;Options&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;shardCount&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;number&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The number of shards for the stream (for provisioned mode).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;streamModeDetails&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;object&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Configuration for the stream mode.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;streamModeDetails.streamMode&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The billing mode for the stream. Either &lt;code&gt;PROVISIONED&lt;/code&gt; or &lt;code&gt;ON_DEMAND&lt;/code&gt;.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;returns&#34;&gt;Returns&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Promise&amp;lt;void&amp;gt;&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A Promise that fulfills when the stream creation request is complete.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import {
  AWSConfig,
  KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;

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 () {
  // Create a stream with provisioned billing and 2 shards
  await kinesis.createStream(&amp;#39;my-provisioned-stream&amp;#39;, {
    shardCount: 2,
  });

  // Create a stream with on-demand billing
  await kinesis.createStream(&amp;#39;my-on-demand-stream&amp;#39;, {
    streamModeDetails: {
      streamMode: &amp;#39;ON_DEMAND&amp;#39;,
    },
  });
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="createstream">createStream&lt;/h1>
&lt;p>&lt;code>KinesisClient.createStream(streamName, [options])&lt;/code> creates a new Kinesis stream.&lt;/p>
&lt;h3 id="parameters">Parameters&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">streamName&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The name of the Kinesis stream to create.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">options&lt;/td>
&lt;td style="text-align: left">object&lt;/td>
&lt;td style="text-align: left">Optional configuration for the stream creation.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="options">Options&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">shardCount&lt;/td>
&lt;td style="text-align: left">number&lt;/td>
&lt;td style="text-align: left">The number of shards for the stream (for provisioned mode).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">streamModeDetails&lt;/td>
&lt;td style="text-align: left">object&lt;/td>
&lt;td style="text-align: left">Configuration for the stream mode.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">streamModeDetails.streamMode&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The billing mode for the stream. Either &lt;code>PROVISIONED&lt;/code> or &lt;code>ON_DEMAND&lt;/code>.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="returns">Returns&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">&lt;code>Promise&amp;lt;void&amp;gt;&lt;/code>&lt;/td>
&lt;td style="text-align: left">A Promise that fulfills when the stream creation request is complete.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="example">Example&lt;/h3>
&lt;!-- md-k6:skip -->
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JavaScript&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-javascript">import {
AWSConfig,
KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;
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 () {
// Create a stream with provisioned billing and 2 shards
await kinesis.createStream(&amp;#39;my-provisioned-stream&amp;#39;, {
shardCount: 2,
});
// Create a stream with on-demand billing
await kinesis.createStream(&amp;#39;my-on-demand-stream&amp;#39;, {
streamModeDetails: {
streamMode: &amp;#39;ON_DEMAND&amp;#39;,
},
});
}&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title>deleteStream</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/deletestream/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/deletestream/</guid><content><![CDATA[&lt;h1 id=&#34;deletestream&#34;&gt;deleteStream&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KinesisClient.deleteStream(streamName)&lt;/code&gt; deletes a Kinesis stream.&lt;/p&gt;
&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;streamName&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The name of the Kinesis stream to delete.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;returns&#34;&gt;Returns&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Promise&amp;lt;void&amp;gt;&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A Promise that fulfills when the stream deletion request is complete.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import {
  AWSConfig,
  KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;

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 = &amp;#39;my-test-stream&amp;#39;;

  // Delete the stream
  await kinesis.deleteStream(streamName);
  console.log(`Stream ${streamName} deleted`);
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="deletestream">deleteStream&lt;/h1>
&lt;p>&lt;code>KinesisClient.deleteStream(streamName)&lt;/code> deletes a Kinesis stream.&lt;/p>
&lt;h3 id="parameters">Parameters&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">streamName&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The name of the Kinesis stream to delete.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="returns">Returns&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">&lt;code>Promise&amp;lt;void&amp;gt;&lt;/code>&lt;/td>
&lt;td style="text-align: left">A Promise that fulfills when the stream deletion request is complete.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="example">Example&lt;/h3>
&lt;!-- md-k6:skip -->
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JavaScript&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-javascript">import {
AWSConfig,
KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;
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 = &amp;#39;my-test-stream&amp;#39;;
// Delete the stream
await kinesis.deleteStream(streamName);
console.log(`Stream ${streamName} deleted`);
}&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title>getRecords</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/getrecords/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/getrecords/</guid><content><![CDATA[&lt;h1 id=&#34;getrecords&#34;&gt;getRecords&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KinesisClient.getRecords(shardIterator, [options])&lt;/code&gt; gets records from a Kinesis stream shard using a shard iterator.&lt;/p&gt;
&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;shardIterator&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The shard iterator from which to get records.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;options&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;object&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Optional configuration for the get records operation.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;options&#34;&gt;Options&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;limit&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;number&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The maximum number of records to return.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;returns&#34;&gt;Returns&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Promise&amp;lt;Object&amp;gt;&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A Promise that fulfills with the records response.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;returns-object&#34;&gt;Returns object&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Property&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;records&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Array&lt;Object&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;An array of records retrieved from the stream.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;nextShardIterator&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The next shard iterator to use for subsequent calls.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;millisBehindLatest&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;number&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The number of milliseconds behind the latest record.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;record-object&#34;&gt;Record object&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Property&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;sequenceNumber&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The sequence number of the record.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;approximateArrivalTimestamp&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Date&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The approximate arrival timestamp of the record.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;data&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The data payload of the record.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;partitionKey&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The partition key of the record.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import {
  AWSConfig,
  KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;

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 = &amp;#39;my-test-stream&amp;#39;;

  // First, get the shards for the stream
  const shards = await kinesis.listShards(streamName);

  if (shards.shards.length &amp;gt; 0) {
    const shardId = shards.shards[0].shardId;

    // Get a shard iterator for the first shard
    const shardIteratorResponse = await kinesis.getShardIterator(
      streamName,
      shardId,
      &amp;#39;TRIM_HORIZON&amp;#39;
    );

    const shardIterator = shardIteratorResponse.shardIterator;

    // Get records from the shard
    const recordsResponse = await kinesis.getRecords(shardIterator, { limit: 10 });

    console.log(&amp;#39;Records retrieved:&amp;#39;, recordsResponse.records.length);
    console.log(&amp;#39;Milliseconds behind latest:&amp;#39;, recordsResponse.millisBehindLatest);

    // Process the records
    recordsResponse.records.forEach((record, index) =&amp;gt; {
      console.log(`Record ${index}:`);
      console.log(&amp;#39;  Sequence number:&amp;#39;, record.sequenceNumber);
      console.log(&amp;#39;  Partition key:&amp;#39;, record.partitionKey);
      console.log(&amp;#39;  Data:&amp;#39;, record.data);
      console.log(&amp;#39;  Arrival timestamp:&amp;#39;, record.approximateArrivalTimestamp);

      // Parse JSON data if applicable
      try {
        const jsonData = JSON.parse(record.data);
        console.log(&amp;#39;  Parsed data:&amp;#39;, jsonData);
      } catch (e) {
        console.log(&amp;#39;  Data is not JSON&amp;#39;);
      }
    });

    // Continue reading with the next shard iterator
    if (recordsResponse.nextShardIterator) {
      const nextBatch = await kinesis.getRecords(recordsResponse.nextShardIterator, { limit: 5 });
      console.log(&amp;#39;Next batch size:&amp;#39;, nextBatch.records.length);
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="getrecords">getRecords&lt;/h1>
&lt;p>&lt;code>KinesisClient.getRecords(shardIterator, [options])&lt;/code> gets records from a Kinesis stream shard using a shard iterator.&lt;/p>
&lt;h3 id="parameters">Parameters&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">shardIterator&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The shard iterator from which to get records.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">options&lt;/td>
&lt;td style="text-align: left">object&lt;/td>
&lt;td style="text-align: left">Optional configuration for the get records operation.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="options">Options&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">limit&lt;/td>
&lt;td style="text-align: left">number&lt;/td>
&lt;td style="text-align: left">The maximum number of records to return.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="returns">Returns&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">&lt;code>Promise&amp;lt;Object&amp;gt;&lt;/code>&lt;/td>
&lt;td style="text-align: left">A Promise that fulfills with the records response.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="returns-object">Returns object&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Property&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">records&lt;/td>
&lt;td style="text-align: left">Array&lt;Object>&lt;/td>
&lt;td style="text-align: left">An array of records retrieved from the stream.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">nextShardIterator&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The next shard iterator to use for subsequent calls.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">millisBehindLatest&lt;/td>
&lt;td style="text-align: left">number&lt;/td>
&lt;td style="text-align: left">The number of milliseconds behind the latest record.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="record-object">Record object&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Property&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">sequenceNumber&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The sequence number of the record.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">approximateArrivalTimestamp&lt;/td>
&lt;td style="text-align: left">Date&lt;/td>
&lt;td style="text-align: left">The approximate arrival timestamp of the record.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">data&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The data payload of the record.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">partitionKey&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The partition key of the record.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="example">Example&lt;/h3>
&lt;!-- md-k6:skip -->
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JavaScript&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-javascript">import {
AWSConfig,
KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;
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 = &amp;#39;my-test-stream&amp;#39;;
// First, get the shards for the stream
const shards = await kinesis.listShards(streamName);
if (shards.shards.length &amp;gt; 0) {
const shardId = shards.shards[0].shardId;
// Get a shard iterator for the first shard
const shardIteratorResponse = await kinesis.getShardIterator(
streamName,
shardId,
&amp;#39;TRIM_HORIZON&amp;#39;
);
const shardIterator = shardIteratorResponse.shardIterator;
// Get records from the shard
const recordsResponse = await kinesis.getRecords(shardIterator, { limit: 10 });
console.log(&amp;#39;Records retrieved:&amp;#39;, recordsResponse.records.length);
console.log(&amp;#39;Milliseconds behind latest:&amp;#39;, recordsResponse.millisBehindLatest);
// Process the records
recordsResponse.records.forEach((record, index) =&amp;gt; {
console.log(`Record ${index}:`);
console.log(&amp;#39; Sequence number:&amp;#39;, record.sequenceNumber);
console.log(&amp;#39; Partition key:&amp;#39;, record.partitionKey);
console.log(&amp;#39; Data:&amp;#39;, record.data);
console.log(&amp;#39; Arrival timestamp:&amp;#39;, record.approximateArrivalTimestamp);
// Parse JSON data if applicable
try {
const jsonData = JSON.parse(record.data);
console.log(&amp;#39; Parsed data:&amp;#39;, jsonData);
} catch (e) {
console.log(&amp;#39; Data is not JSON&amp;#39;);
}
});
// Continue reading with the next shard iterator
if (recordsResponse.nextShardIterator) {
const nextBatch = await kinesis.getRecords(recordsResponse.nextShardIterator, { limit: 5 });
console.log(&amp;#39;Next batch size:&amp;#39;, nextBatch.records.length);
}
}
}&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title>getShardIterator</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/getsharditerator/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/getsharditerator/</guid><content><![CDATA[&lt;h1 id=&#34;getsharditerator&#34;&gt;getShardIterator&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KinesisClient.getShardIterator(streamName, shardId, shardIteratorType, [options])&lt;/code&gt; gets a shard iterator for reading records from a Kinesis stream shard.&lt;/p&gt;
&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;streamName&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The name of the Kinesis stream.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;shardId&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The shard ID for which to get the iterator.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;shardIteratorType&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The type of shard iterator to get.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;options&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;object&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Optional configuration for the shard iterator.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;shard-iterator-types&#34;&gt;Shard Iterator Types&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;TRIM_HORIZON&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Start reading at the last untrimmed record in the shard.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;LATEST&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Start reading just after the most recent record in the shard.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;AT_SEQUENCE_NUMBER&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Start reading from the position denoted by a specific sequence number.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;AFTER_SEQUENCE_NUMBER&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Start reading right after the position denoted by a specific sequence number.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;AT_TIMESTAMP&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Start reading from the position denoted by a specific timestamp.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;options&#34;&gt;Options&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;startingSequenceNumber&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The sequence number to start from (required for &lt;code&gt;AT_SEQUENCE_NUMBER&lt;/code&gt; and &lt;code&gt;AFTER_SEQUENCE_NUMBER&lt;/code&gt; types).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;timestamp&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Date&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The timestamp to start from (required for &lt;code&gt;AT_TIMESTAMP&lt;/code&gt; type).&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;returns&#34;&gt;Returns&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Promise&amp;lt;Object&amp;gt;&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A Promise that fulfills with the shard iterator response.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;returns-object&#34;&gt;Returns object&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Property&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;shardIterator&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The shard iterator to use for reading records.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import {
  AWSConfig,
  KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;

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 = &amp;#39;my-test-stream&amp;#39;;

  // First, get the shards for the stream
  const shards = await kinesis.listShards(streamName);

  if (shards.shards.length &amp;gt; 0) {
    const shardId = shards.shards[0].shardId;

    // Get a shard iterator starting from the beginning
    const trimHorizonIterator = await kinesis.getShardIterator(streamName, shardId, &amp;#39;TRIM_HORIZON&amp;#39;);
    console.log(&amp;#39;Trim horizon iterator:&amp;#39;, trimHorizonIterator.shardIterator);

    // Get a shard iterator starting from the latest records
    const latestIterator = await kinesis.getShardIterator(streamName, shardId, &amp;#39;LATEST&amp;#39;);
    console.log(&amp;#39;Latest iterator:&amp;#39;, latestIterator.shardIterator);

    // Get a shard iterator starting from a specific timestamp
    const timestampIterator = await kinesis.getShardIterator(streamName, shardId, &amp;#39;AT_TIMESTAMP&amp;#39;, {
      timestamp: new Date(Date.now() - 3600000), // 1 hour ago
    });
    console.log(&amp;#39;Timestamp iterator:&amp;#39;, timestampIterator.shardIterator);

    // Use the iterator to read records
    const records = await kinesis.getRecords(trimHorizonIterator.shardIterator);
    console.log(&amp;#39;Records retrieved:&amp;#39;, records.records.length);

    // If we have records, we can get an iterator starting after a specific sequence number
    if (records.records.length &amp;gt; 0) {
      const sequenceNumber = records.records[0].sequenceNumber;
      const afterSequenceIterator = await kinesis.getShardIterator(
        streamName,
        shardId,
        &amp;#39;AFTER_SEQUENCE_NUMBER&amp;#39;,
        {
          startingSequenceNumber: sequenceNumber,
        }
      );
      console.log(&amp;#39;After sequence iterator:&amp;#39;, afterSequenceIterator.shardIterator);
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="getsharditerator">getShardIterator&lt;/h1>
&lt;p>&lt;code>KinesisClient.getShardIterator(streamName, shardId, shardIteratorType, [options])&lt;/code> gets a shard iterator for reading records from a Kinesis stream shard.&lt;/p>
&lt;h3 id="parameters">Parameters&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">streamName&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The name of the Kinesis stream.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">shardId&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The shard ID for which to get the iterator.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">shardIteratorType&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The type of shard iterator to get.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">options&lt;/td>
&lt;td style="text-align: left">object&lt;/td>
&lt;td style="text-align: left">Optional configuration for the shard iterator.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="shard-iterator-types">Shard Iterator Types&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">TRIM_HORIZON&lt;/td>
&lt;td style="text-align: left">Start reading at the last untrimmed record in the shard.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">LATEST&lt;/td>
&lt;td style="text-align: left">Start reading just after the most recent record in the shard.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">AT_SEQUENCE_NUMBER&lt;/td>
&lt;td style="text-align: left">Start reading from the position denoted by a specific sequence number.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">AFTER_SEQUENCE_NUMBER&lt;/td>
&lt;td style="text-align: left">Start reading right after the position denoted by a specific sequence number.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">AT_TIMESTAMP&lt;/td>
&lt;td style="text-align: left">Start reading from the position denoted by a specific timestamp.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="options">Options&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">startingSequenceNumber&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The sequence number to start from (required for &lt;code>AT_SEQUENCE_NUMBER&lt;/code> and &lt;code>AFTER_SEQUENCE_NUMBER&lt;/code> types).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">timestamp&lt;/td>
&lt;td style="text-align: left">Date&lt;/td>
&lt;td style="text-align: left">The timestamp to start from (required for &lt;code>AT_TIMESTAMP&lt;/code> type).&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="returns">Returns&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">&lt;code>Promise&amp;lt;Object&amp;gt;&lt;/code>&lt;/td>
&lt;td style="text-align: left">A Promise that fulfills with the shard iterator response.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="returns-object">Returns object&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Property&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">shardIterator&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The shard iterator to use for reading records.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="example">Example&lt;/h3>
&lt;!-- md-k6:skip -->
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JavaScript&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-javascript">import {
AWSConfig,
KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;
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 = &amp;#39;my-test-stream&amp;#39;;
// First, get the shards for the stream
const shards = await kinesis.listShards(streamName);
if (shards.shards.length &amp;gt; 0) {
const shardId = shards.shards[0].shardId;
// Get a shard iterator starting from the beginning
const trimHorizonIterator = await kinesis.getShardIterator(streamName, shardId, &amp;#39;TRIM_HORIZON&amp;#39;);
console.log(&amp;#39;Trim horizon iterator:&amp;#39;, trimHorizonIterator.shardIterator);
// Get a shard iterator starting from the latest records
const latestIterator = await kinesis.getShardIterator(streamName, shardId, &amp;#39;LATEST&amp;#39;);
console.log(&amp;#39;Latest iterator:&amp;#39;, latestIterator.shardIterator);
// Get a shard iterator starting from a specific timestamp
const timestampIterator = await kinesis.getShardIterator(streamName, shardId, &amp;#39;AT_TIMESTAMP&amp;#39;, {
timestamp: new Date(Date.now() - 3600000), // 1 hour ago
});
console.log(&amp;#39;Timestamp iterator:&amp;#39;, timestampIterator.shardIterator);
// Use the iterator to read records
const records = await kinesis.getRecords(trimHorizonIterator.shardIterator);
console.log(&amp;#39;Records retrieved:&amp;#39;, records.records.length);
// If we have records, we can get an iterator starting after a specific sequence number
if (records.records.length &amp;gt; 0) {
const sequenceNumber = records.records[0].sequenceNumber;
const afterSequenceIterator = await kinesis.getShardIterator(
streamName,
shardId,
&amp;#39;AFTER_SEQUENCE_NUMBER&amp;#39;,
{
startingSequenceNumber: sequenceNumber,
}
);
console.log(&amp;#39;After sequence iterator:&amp;#39;, afterSequenceIterator.shardIterator);
}
}
}&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title>listShards</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/listshards/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/listshards/</guid><content><![CDATA[&lt;h1 id=&#34;listshards&#34;&gt;listShards&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KinesisClient.listShards(streamName, [options])&lt;/code&gt; lists the shards in a Kinesis stream.&lt;/p&gt;
&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;streamName&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The name of the Kinesis stream.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;options&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;object&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Optional configuration for the list shards operation.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;options&#34;&gt;Options&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;nextToken&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The token to use for pagination.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;exclusiveStartShardId&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The shard ID to start listing from (exclusive).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;maxResults&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;number&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The maximum number of shards to return.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;returns&#34;&gt;Returns&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Promise&amp;lt;Object&amp;gt;&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A Promise that fulfills with the list of shards.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;returns-object&#34;&gt;Returns object&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Property&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;shards&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Array&lt;Object&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;An array of shard objects.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;nextToken&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The token to use for the next page of results.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;shard-object&#34;&gt;Shard object&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Property&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;shardId&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The unique identifier of the shard.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;parentShardId&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string (optional)&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The shard ID of the parent shard (if any).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;adjacentParentShardId&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string (optional)&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The shard ID of the adjacent parent shard (if any).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;hashKeyRange&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Object&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The hash key range for the shard.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;sequenceNumberRange&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Object&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The sequence number range for the shard.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import {
  AWSConfig,
  KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;

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 = &amp;#39;my-test-stream&amp;#39;;

  // List all shards in the stream
  const shardsResponse = await kinesis.listShards(streamName);

  console.log(&amp;#39;Number of shards:&amp;#39;, shardsResponse.shards.length);

  // Display information about each shard
  shardsResponse.shards.forEach((shard, index) =&amp;gt; {
    console.log(`Shard ${index}:`);
    console.log(&amp;#39;  Shard ID:&amp;#39;, shard.shardId);
    console.log(&amp;#39;  Parent Shard ID:&amp;#39;, shard.parentShardId || &amp;#39;None&amp;#39;);
    console.log(&amp;#39;  Adjacent Parent Shard ID:&amp;#39;, shard.adjacentParentShardId || &amp;#39;None&amp;#39;);
    console.log(&amp;#39;  Hash Key Range:&amp;#39;, shard.hashKeyRange);
    console.log(&amp;#39;  Sequence Number Range:&amp;#39;, shard.sequenceNumberRange);
  });

  // List shards with pagination
  const limitedShards = await kinesis.listShards(streamName, { maxResults: 2 });
  console.log(&amp;#39;Limited shards:&amp;#39;, limitedShards.shards.length);

  // Continue pagination if there are more shards
  if (limitedShards.nextToken) {
    const nextPage = await kinesis.listShards(streamName, {
      nextToken: limitedShards.nextToken,
    });
    console.log(&amp;#39;Next page shards:&amp;#39;, nextPage.shards.length);
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="listshards">listShards&lt;/h1>
&lt;p>&lt;code>KinesisClient.listShards(streamName, [options])&lt;/code> lists the shards in a Kinesis stream.&lt;/p>
&lt;h3 id="parameters">Parameters&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">streamName&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The name of the Kinesis stream.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">options&lt;/td>
&lt;td style="text-align: left">object&lt;/td>
&lt;td style="text-align: left">Optional configuration for the list shards operation.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="options">Options&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">nextToken&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The token to use for pagination.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">exclusiveStartShardId&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The shard ID to start listing from (exclusive).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">maxResults&lt;/td>
&lt;td style="text-align: left">number&lt;/td>
&lt;td style="text-align: left">The maximum number of shards to return.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="returns">Returns&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">&lt;code>Promise&amp;lt;Object&amp;gt;&lt;/code>&lt;/td>
&lt;td style="text-align: left">A Promise that fulfills with the list of shards.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="returns-object">Returns object&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Property&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">shards&lt;/td>
&lt;td style="text-align: left">Array&lt;Object>&lt;/td>
&lt;td style="text-align: left">An array of shard objects.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">nextToken&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The token to use for the next page of results.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="shard-object">Shard object&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Property&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">shardId&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The unique identifier of the shard.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">parentShardId&lt;/td>
&lt;td style="text-align: left">string (optional)&lt;/td>
&lt;td style="text-align: left">The shard ID of the parent shard (if any).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">adjacentParentShardId&lt;/td>
&lt;td style="text-align: left">string (optional)&lt;/td>
&lt;td style="text-align: left">The shard ID of the adjacent parent shard (if any).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">hashKeyRange&lt;/td>
&lt;td style="text-align: left">Object&lt;/td>
&lt;td style="text-align: left">The hash key range for the shard.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">sequenceNumberRange&lt;/td>
&lt;td style="text-align: left">Object&lt;/td>
&lt;td style="text-align: left">The sequence number range for the shard.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="example">Example&lt;/h3>
&lt;!-- md-k6:skip -->
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JavaScript&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-javascript">import {
AWSConfig,
KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;
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 = &amp;#39;my-test-stream&amp;#39;;
// List all shards in the stream
const shardsResponse = await kinesis.listShards(streamName);
console.log(&amp;#39;Number of shards:&amp;#39;, shardsResponse.shards.length);
// Display information about each shard
shardsResponse.shards.forEach((shard, index) =&amp;gt; {
console.log(`Shard ${index}:`);
console.log(&amp;#39; Shard ID:&amp;#39;, shard.shardId);
console.log(&amp;#39; Parent Shard ID:&amp;#39;, shard.parentShardId || &amp;#39;None&amp;#39;);
console.log(&amp;#39; Adjacent Parent Shard ID:&amp;#39;, shard.adjacentParentShardId || &amp;#39;None&amp;#39;);
console.log(&amp;#39; Hash Key Range:&amp;#39;, shard.hashKeyRange);
console.log(&amp;#39; Sequence Number Range:&amp;#39;, shard.sequenceNumberRange);
});
// List shards with pagination
const limitedShards = await kinesis.listShards(streamName, { maxResults: 2 });
console.log(&amp;#39;Limited shards:&amp;#39;, limitedShards.shards.length);
// Continue pagination if there are more shards
if (limitedShards.nextToken) {
const nextPage = await kinesis.listShards(streamName, {
nextToken: limitedShards.nextToken,
});
console.log(&amp;#39;Next page shards:&amp;#39;, nextPage.shards.length);
}
}&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title>listStreams</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/liststreams/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/liststreams/</guid><content><![CDATA[&lt;h1 id=&#34;liststreams&#34;&gt;listStreams&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KinesisClient.listStreams([options])&lt;/code&gt; lists the Kinesis streams in the current region.&lt;/p&gt;
&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;options&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;object (optional)&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Configuration for the listing operation.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;options&#34;&gt;Options&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;exclusiveStartStreamName&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The name of the stream to start listing from (exclusive).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;limit&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;number&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The maximum number of streams to return.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;returns&#34;&gt;Returns&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Promise&amp;lt;Object&amp;gt;&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A Promise that fulfills with the list of streams.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;returns-object&#34;&gt;Returns object&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Property&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;streamNames&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Array&lt;string&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;An array of stream names.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;hasMoreStreams&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;boolean&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Indicates if there are more streams to list.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import {
  AWSConfig,
  KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;

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 () {
  // List all streams
  const streams = await kinesis.listStreams();
  console.log(&amp;#39;Available streams:&amp;#39;, streams.streamNames);
  console.log(&amp;#39;Has more streams:&amp;#39;, streams.hasMoreStreams);

  // List streams with pagination
  const limitedStreams = await kinesis.listStreams({ limit: 5 });
  console.log(&amp;#39;First 5 streams:&amp;#39;, limitedStreams.streamNames);

  // List streams starting from a specific stream
  if (limitedStreams.hasMoreStreams &amp;amp;&amp;amp; limitedStreams.streamNames.length &amp;gt; 0) {
    const nextBatch = await kinesis.listStreams({
      exclusiveStartStreamName: limitedStreams.streamNames[limitedStreams.streamNames.length - 1],
    });
    console.log(&amp;#39;Next batch of streams:&amp;#39;, nextBatch.streamNames);
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="liststreams">listStreams&lt;/h1>
&lt;p>&lt;code>KinesisClient.listStreams([options])&lt;/code> lists the Kinesis streams in the current region.&lt;/p>
&lt;h3 id="parameters">Parameters&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">options&lt;/td>
&lt;td style="text-align: left">object (optional)&lt;/td>
&lt;td style="text-align: left">Configuration for the listing operation.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="options">Options&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">exclusiveStartStreamName&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The name of the stream to start listing from (exclusive).&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">limit&lt;/td>
&lt;td style="text-align: left">number&lt;/td>
&lt;td style="text-align: left">The maximum number of streams to return.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="returns">Returns&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">&lt;code>Promise&amp;lt;Object&amp;gt;&lt;/code>&lt;/td>
&lt;td style="text-align: left">A Promise that fulfills with the list of streams.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="returns-object">Returns object&lt;/h4>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Property&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">streamNames&lt;/td>
&lt;td style="text-align: left">Array&lt;string>&lt;/td>
&lt;td style="text-align: left">An array of stream names.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">hasMoreStreams&lt;/td>
&lt;td style="text-align: left">boolean&lt;/td>
&lt;td style="text-align: left">Indicates if there are more streams to list.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="example">Example&lt;/h3>
&lt;!-- md-k6:skip -->
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JavaScript&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-javascript">import {
AWSConfig,
KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;
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 () {
// List all streams
const streams = await kinesis.listStreams();
console.log(&amp;#39;Available streams:&amp;#39;, streams.streamNames);
console.log(&amp;#39;Has more streams:&amp;#39;, streams.hasMoreStreams);
// List streams with pagination
const limitedStreams = await kinesis.listStreams({ limit: 5 });
console.log(&amp;#39;First 5 streams:&amp;#39;, limitedStreams.streamNames);
// List streams starting from a specific stream
if (limitedStreams.hasMoreStreams &amp;amp;&amp;amp; limitedStreams.streamNames.length &amp;gt; 0) {
const nextBatch = await kinesis.listStreams({
exclusiveStartStreamName: limitedStreams.streamNames[limitedStreams.streamNames.length - 1],
});
console.log(&amp;#39;Next batch of streams:&amp;#39;, nextBatch.streamNames);
}
}&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title>putRecords</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/putrecords/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kinesisclient/putrecords/</guid><content><![CDATA[&lt;h1 id=&#34;putrecords&#34;&gt;putRecords&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KinesisClient.putRecords(streamName, records)&lt;/code&gt; puts multiple records into a Kinesis stream.&lt;/p&gt;
&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;streamName&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The name of the Kinesis stream to put records into.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;records&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Array&lt;Object&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;An array of records to put into the stream.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;records&#34;&gt;Records&lt;/h4&gt;
&lt;p&gt;Each record in the &lt;code&gt;records&lt;/code&gt; array should be an object with the following properties:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Property&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;data&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The data payload of the record.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;partitionKey&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The partition key for the record.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;explicitHashKey&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Optional. The explicit hash key for the record.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;returns&#34;&gt;Returns&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;Promise&amp;lt;Object&amp;gt;&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A Promise that fulfills with the put records response.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;returns-object&#34;&gt;Returns object&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Property&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;failedRecordCount&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;number&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The number of records that failed to be put.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;records&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Array&lt;Object&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;An array of record results.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;record-result-object&#34;&gt;Record result object&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Property&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;sequenceNumber&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The sequence number of the record (if successful).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;shardId&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The shard ID where the record was placed (if successful).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;errorCode&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The error code (if the record failed).&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;errorMessage&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The error message (if the record failed).&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import {
  AWSConfig,
  KinesisClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kinesis.js&amp;#39;;

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 = &amp;#39;my-test-stream&amp;#39;;

  // Create records to put into the stream
  const records = [
    {
      data: JSON.stringify({
        message: &amp;#39;Hello from k6!&amp;#39;,
        timestamp: Date.now(),
        userId: &amp;#39;user123&amp;#39;,
      }),
      partitionKey: &amp;#39;user123&amp;#39;,
    },
    {
      data: JSON.stringify({
        message: &amp;#39;Another message&amp;#39;,
        timestamp: Date.now(),
        userId: &amp;#39;user456&amp;#39;,
      }),
      partitionKey: &amp;#39;user456&amp;#39;,
    },
    {
      data: JSON.stringify({
        message: &amp;#39;Load test data&amp;#39;,
        timestamp: Date.now(),
        userId: &amp;#39;user789&amp;#39;,
      }),
      partitionKey: &amp;#39;user789&amp;#39;,
      explicitHashKey: &amp;#39;123456789012345678901234567890123456789&amp;#39;,
    },
  ];

  // Put records into the stream
  const result = await kinesis.putRecords(streamName, records);

  console.log(&amp;#39;Put records result:&amp;#39;);
  console.log(&amp;#39;Failed record count:&amp;#39;, result.failedRecordCount);

  // Check individual record results
  result.records.forEach((record, index) =&amp;gt; {
    if (record.errorCode) {
      console.log(`Record ${index} failed: ${record.errorCode} - ${record.errorMessage}`);
    } else {
      console.log(
        `Record ${index} succeeded: sequence=${record.sequenceNumber}, shard=${record.shardId}`
      );
    }
  });
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="putrecords">putRecords&lt;/h1>
&lt;p>&lt;code>KinesisClient.putRecords(streamName, records)&lt;/code> puts multiple records into a Kinesis stream.&lt;/p>
&lt;h3 id="parameters">Parameters&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Parameter&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">streamName&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The name of the Kinesis stream to put records into.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">records&lt;/td>
&lt;td style="text-align: left">Array&lt;Object>&lt;/td>
&lt;td style="text-align: left">An array of records to put into the stream.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h4 id="records">Records&lt;/h4>
&lt;p>Each record in the &lt;code>records&lt;/code> array should be an object with the following properties:&lt;/p></description></item></channel></rss>