‹ Reports
The Dispatch

OSS Report: grafana/k6


K6 Project Advances Cloud Integration and Performance Monitoring Amid Active Development

K6 is an open-source load testing tool designed for developers and testers in the DevOps era, primarily written in Go with JavaScript for test scripting. It is developed and maintained by Grafana.

The project has seen significant activity recently, with a strong focus on enhancing cloud-related features and improving performance monitoring. Notable developments include the introduction of a new 'k6 cloud upload' functionality, implementation of local execution mode for cloud runs, and integration of pyroscope traces for enhanced performance analysis. The team is also working on deprecating older authentication methods and refining the release process.

Recent Activity

Recent issues and pull requests indicate a concerted effort to improve browser testing capabilities, optimize resource usage for large-scale tests, and enhance API functionality. The proposal to add native ESM support (#3265) stands out as a potentially significant enhancement to k6's JavaScript capabilities.

The development team has been particularly active:

  1. Oleg Bespalov (olegbespalov): Recently updated the Sobek dependency with BigInt support and upgraded gRPC to v1.65.0. Currently working on async invoke for gRPC.

  2. Ivan (codebien): Implemented a new release flow branching strategy and is working on telemetry improvements for test run IDs.

  3. Joan López de la Franca Beltran (joanlopez): Introduced the 'k6 cloud upload' functionality and is working on deprecating email & password login for k6 cloud.

  4. Théo Crevon (oleiade): Implementing local execution mode for k6 cloud run and adding pyroscope traces to the kontext module.

  5. Mihail Stoykov (mstoykov): Fixed line number issues with inline sourcemaps and is working on making setTimeout and related functions globally available.

Of Note

  1. The introduction of 'k6 cloud upload' functionality (#3906) represents a significant shift in cloud integration strategy.

  2. The implementation of local execution mode for k6 cloud run (#3904) enhances flexibility for users transitioning between local and cloud environments.

  3. The ongoing work to add native ESM support (#3265) could substantially improve the JavaScript scripting experience for users.

  4. The project is actively deprecating experimental features, indicating a move towards a more stable and streamlined codebase.

  5. The introduction of a new release flow branching strategy suggests a maturing development process, potentially leading to more structured and predictable releases.

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 2 1 0 0 1
30 Days 12 9 10 1 2
90 Days 51 36 85 3 4
1 Year 174 134 397 16 8
All Time 1796 1436 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Théo Crevon 4 2/1/1 18 95 15152
Oleg Bespalov 4 4/2/0 8 126 2792
Mihail Stoykov 1 9/9/1 9 54 1438
Federico Tedin 1 0/0/0 5 5 1020
Joan López de la Franca Beltran 3 4/2/3 5 5 353
Lev Zakharov 1 1/1/0 1 6 178
Ankur 2 2/2/0 2 12 153
Ivan 3 3/1/0 3 5 146
Dhia Abbassi (d14c) 1 1/1/0 2 2 40
dependabot[bot] 1 1/1/0 1 3 8
Ben Radler 1 0/1/0 1 1 1
None (aiwaters) 0 0/0/1 0 0 0
tsukasa-ino (tsukasaI) 0 1/0/0 0 0 0
Ikko Eltociear Ashimine (eltociear) 0 1/0/0 0 0 0
Athish Venkatesh (athishaves) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Based on the information provided, here is a high-level analysis of the recent GitHub issues activity for the k6 project:

Recent Activity Analysis:

There has been consistent activity on k6 GitHub issues over the past few months, with a mix of bug reports, feature requests, and general questions from users. Many issues are being actively triaged, discussed, and resolved by the k6 team.

Some notable themes and patterns in recent issues:

  1. Browser testing: There are ongoing efforts to improve and stabilize k6's browser testing capabilities, including issues around configuration and performance (e.g. #3310, #3778).

  2. Performance and resource usage: Several issues relate to optimizing k6's performance and resource consumption, especially for large-scale tests (e.g. #3515, #3518).

  3. API enhancements: Users are requesting various API improvements and additions, such as support for WebSockets, Redis clusters, and file system operations (e.g. #3280, #3031, #3141).

  4. Output and metrics: There are ongoing discussions about improving metrics output, especially for cloud integrations and time series databases (e.g. #3637, #3862).

  5. JavaScript compatibility: Issues around JavaScript feature support and compatibility continue to arise as k6 evolves its JS engine (e.g. #3329, #3265).

  6. Configuration and usability: Users are seeking ways to make k6 more flexible in terms of configuration and easier to use in various environments (e.g. #3362, #3682).

One particularly significant issue is #3265, which proposes adding native ESM (ECMAScript Modules) support to k6. This would be a major enhancement to k6's JavaScript capabilities and could simplify many aspects of test script development.

Issue Details:

Most recently created issues: 1. #3914: "k6 release v0.5x.0" (open, created 1 day ago) 2. #3907: "Make metrics.Metric be immutable" (open, created 3 days ago) 3. #3896: "k6 release v0.54.0" (open, created 11 days ago)

Most recently updated issues: 1. #3914: "k6 release v0.5x.0" (open, updated 1 day ago) 2. #3907: "Make metrics.Metric be immutable" (open, updated 3 days ago) 3. #3896: "k6 release v0.54.0" (open, updated 4 days ago)

These recent issues focus on upcoming releases and internal improvements to the metrics system. The release-related issues (#3914 and #3896) are particularly important as they coordinate the efforts for future versions of k6.

Report On: Fetch pull requests



Here is a high-level summary of the key pull requests and development activity for the k6 project:

Overview

The pull request data shows very active ongoing development of k6, with 28 open pull requests and over 2000 closed pull requests. Recent work has focused on adding new features, improving existing functionality, and updating dependencies.

Summary of Pull Requests

  • #3913: Updating sobek dependency to add BigInt support
  • #3912: Upgrading gRPC dependency
  • #3911: Updating the release process to use release branches
  • #3909: Minor documentation fix
  • #3906: Introducing new k6 cloud upload command to replace --upload-only flag
  • #3904: Implementing --local-execution mode for k6 cloud run command
  • #3898: Disabling setup function when setupTimeout option is 0s
  • #3877: Adding discardResponseMessage option for gRPC streams
  • #3874: Adding source information for uncaught exceptions in logs
  • #3801: Adding metadata to gRPC stream callbacks
  • #3765: Removing success/fail marks on rate summary output
  • #3743: Adding experimental CSV streaming parser module
  • #3213: Adding support for thresholds and end-of-test summary in distributed execution
  • #3205: Adding basic support for distributed execution
  • #2905: Refactoring metric types
  • #2816: Proof of concept changes for test suites and HDR histograms

Analysis of Pull Requests

The pull requests show k6 is continuing to expand its capabilities, particularly around cloud execution, distributed testing, and support for additional protocols like gRPC. There's ongoing work to improve the developer experience through better error reporting and new APIs like the CSV parser.

Performance and scalability also seem to be key focus areas, with work on HDR histograms and optimizations for handling large responses. The project is maintaining compatibility while adding new features, as seen in the careful deprecation of older APIs.

Dependency management is actively maintained, with regular updates to key libraries. The release process is being refined to use release branches, indicating a maturation of the development workflow.

There are some larger refactoring efforts underway, like the metric type changes, which suggest the maintainers are working to improve the internal architecture as the project grows. The proof-of-concept work on test suites hints at potential major new features on the horizon.

Overall, the pull request activity demonstrates k6 is in active development with a good balance of new features, optimizations, and maintenance work. The project appears to be growing in sophistication while maintaining backward compatibility and stability.

Report On: Fetch commits



Based on the recent commits and developer activity in the k6 project, here is a summary of the development team's recent activities:

Development Team and Recent Activity

Team Members and Activity:

  1. Oleg Bespalov (olegbespalov):

    • Updated Sobek dependency with improvements to bigInt and other features
    • Upgraded gRPC from v1.64.1 to v1.65.0
    • Working on implementing async invoke for gRPC
    • Made changes to improve error handling for undefined functions in timers
  2. Ivan (codebien):

    • Implementing a new release flow branching strategy
    • Working on collecting and reporting test run IDs for telemetry purposes
    • Contributed to v0.54.0 release notes
  3. Joan López de la Franca Beltran (joanlopez):

    • Introducing 'k6 cloud upload' functionality to replace '--upload-only'
    • Working on deprecating email & password login for k6 cloud login
    • Collaborating on cloud subcommands and local execution features
  4. Théo Crevon (oleiade):

    • Implementing local execution mode for k6 cloud run
    • Working on kontext feature, including support for local and cloud environments
    • Adding pyroscope traces to the kontext module
  5. Ankur (ankur22):

    • Updated browser-related changes in release notes
    • Updating and fixing browser test examples
  6. Mihail Stoykov (mstoykov):

    • Fixing line number issues with inline sourcemaps
    • Working on dropping support for experimental features (e.g., tracing, timers)
    • Making setTimeout and related functions globally available
  7. Iván Szkiba (szkiba):

    • Upgrading xk6-dashboard to v0.7.4 (with Sobek integration)
  8. Lev Zakharov (lzakharov):

    • Added 'discardResponseMessage' option for gRPC client

Patterns and Themes:

  1. Cloud Integration: There's a significant focus on improving and refining cloud-related features, including new subcommands, local execution modes, and login processes.

  2. Performance and Telemetry: Work is being done to improve performance monitoring and data collection, such as integrating pyroscope traces and collecting test run IDs.

  3. Dependency Updates: Regular updates to key dependencies like gRPC, Sobek, and various experimental modules.

  4. Feature Deprecation and Cleanup: Efforts to remove or deprecate experimental or outdated features to streamline the codebase.

  5. Browser and gRPC Improvements: Ongoing work to enhance browser testing capabilities and gRPC client functionality.

  6. Release Management: Implementation of new release strategies and thorough release note preparation.

  7. Code Quality and Testing: Continuous efforts to improve error handling, fix bugs, and enhance test coverage.

The team appears to be actively working on both new features and maintenance tasks, with a strong focus on cloud integration, performance, and code quality. There's also an emphasis on gradually phasing out experimental features as the project matures.

Followup Questions

Who's most at risk of burnout among the contributors?

While the provided datasets don't contain specific information on individual contributor burnout risk, we can analyze recent activity and responsibilities to identify potential areas of concern.

Context:

Analysis:

Citations:

Recommendations:

Disclaimer: This analysis is based on limited information and focuses on potential risk factors. It is not a definitive assessment of individual burnout. A more comprehensive evaluation would require direct input from contributors regarding their workload, stress levels, and support needs.


Tell me more about the new 'k6 cloud upload' functionality.

The new k6 cloud upload functionality is a subcommand introduced in k6 v0.53.0 to replace the deprecated k6 cloud --upload-only flag. It provides a dedicated way to upload test scripts or archives to Grafana Cloud k6 without immediately running them.

This separation of concerns enhances user experience and aligns with the broader initiative of revamping k6 cloud commands for improved clarity and organization.

Here's a breakdown of its significance:

Context:

Analysis:

Citations:

This new functionality contributes to a more organized and user-friendly experience when working with Grafana Cloud k6, particularly for users who want to manage their test scripts or archives without immediately triggering test runs.