No results for

Powered byAlgolia

Amazon CloudWatch

suggest edits

k6 can send metrics data to Amazon CloudWatch through the CloudWatch Agent, which is effectively a StatsD integration. These metrics can then be visualized in dashboards.

This guide covers running the CloudWatch integration and visualizing the results:

  • Run the CloudWatch agent
  • Run the k6 test
  • Visualize k6 metrics in Amazon CloudWatch

Run the CloudWatch agent

We presume that you already have a machine that supports both running k6 and CloudWatch agent, which either runs a flavor of GNU/Linux or Windows. Just go ahead and download the suitable CloudWatch agent version for your operating system.

  1. Create an IAM role to be able to send metrics to CloudWatch via the agent. Then, if you are running on Amazon EC2, just attach the role to your EC2 instance, so that you can be able to send metrics to CloudWatch. Otherwise, if you are running on-premises servers, follow this guide.

  2. Download the CloudWatch Agent package suitable for your operating system. For example, on Debian 10 (Buster), we've used the following link. For other operating systems, please refer to this guide:

    $ wget https://s3.amazonaws.com/amazoncloudwatch-agent/debian/amd64/latest/amazon-cloudwatch-agent.deb
  3. Install the package:

    $ sudo dpkg -i amazon-cloudwatch-agent.deb
  4. Configure the agent to receive data from k6. For this, create a file called "/opt/aws/amazon-cloudwatch-agent/etc/statsd.json" and paste the following JSON config object into it. This configuration means that the agent would listen on port number 8125, which is the default port number for k6 and StatsD. The interval for collecting metrics is 5 seconds and we don't aggregate them, since we need the raw data later in CloudWatch.

    {
    "metrics": {
    "namespace": "k6",
    "metrics_collected": {
    "statsd": {
    "service_address": ":8125",
    "metrics_collection_interval": 5,
    "metrics_aggregation_interval": 0
    }
    }
    }
    }
  5. Run the following command to start the agent:

    $ sudo amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/etc/statsd.json
  6. You can check the status of the agent using the following command:

    $ amazon-cloudwatch-agent-ctl -a status

Run the k6 test

Once the agent is running, install k6 and run the test, so that the metrics gets sent to the agent with the following command:

$ k6 run --out statsd script.js

The following options can be configured as environment variables, depending on the agent's configuration:

NameValue
K6_STATSD_ADDRAddress of the statsd service, currently only UDP is supported. The default value is localhost:8125.
K6_STATSD_NAMESPACEThe namespace used as a prefix for all the metric names. The default value is k6.
K6_STATSD_PUSH_INTERVALConfigure how often data batches are sent. The default value is 1s.
K6_STATSD_BUFFER_SIZEThe buffer size. The default value is 20.

Visualize k6 metrics in Amazon CloudWatch

Visualization of the exported metrics to CloudWatch is done by creating a dashboard and selecting desired metrics to be displayed.

List of k6 metrics

Here's an example dashboard we've created to visualize the test results.

k6 Dashboard on Amazon CloudWatch

The above dashboard is exported as JSON and is available here.