k6 is an open-source load testing tool and cloud service for developers, DevOps, QA, and SRE teams. Designed to help organizations build resilient systems, k6 runs tests with high loads while consuming minimal resources and monitors application performance. Thousands of developers worldwide use k6’s load-testing and open source SaaS platforms.
As their client base continues to grow, so does the number of tests they need to run—and they need them to run simultaneously and quickly. Just one user’s configuration test could produce gigabytes of data every minute, all of which is time-series data. At scale, this number is massive.
Originally, the team used Cassandra to store the load test results and associated metrics that they surface for their users. But, as they looked ahead to the next generation of their application, they knew they needed to address certain Cassandra limitations, like its limited query capabilities and difficulty storing all of their data. After evaluating many available options and doing their due diligence, Timescale won the selection race.
During a period of high demand, k6 Cloud will INSERT nearly 200K rows into their master Timescale database per second (loads are particularly high before Black Friday and Cyber Monday, given their popularity with eCommerce brands). At the same time, they replicate that data to a Timescale replica server and SELECT at least 200K rows per second. Thanks to Timescale’s purpose-built time-series architecture, k6 Cloud’s insert rates remain stable during intense periods.
With Timescale, we can perform correlations, aggregate group-bys on URLs, join time-series with metadata, and use full SQL to work across datasets. As a result, we get better query performance, run more complex queries, and can focus on our goal: helping customers catch performance issues before they make it into production.
Pawel Suwala, CTO at k6