-
Notifications
You must be signed in to change notification settings - Fork 238
Updates to Extensions section #2034
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
ec3ed8a
88af808
1c97e48
c6b680d
74d3dbc
e2ccc07
8d048e3
94d6f13
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,67 +1,65 @@ | ||
--- | ||
title: 'Explore extensions' | ||
menuTitle: 'Explore extensions' | ||
description: 'Explore the k6 extension ecosystem to find extensions that meet your requirements.' | ||
description: 'Explore the k6 extension ecosystem to find extensions that fit your use cases.' | ||
weight: 01 | ||
--- | ||
|
||
# Explore extensions | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @dgzlopes wanted to ask you again here, I saw there were some conversations around how to organize the official/community vs cloud/custom binary extensions. What do you think if we change the headings on this page to what I did here:
If that doesn't sound good, I can change it back, I just might tweak the headings a little bit. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This new iteration looks good to me 👍 |
||
|
||
## Supported by automatic extension resolution | ||
Extensions can be used to extend the core k6 features to fit your performance-testing use cases. There are two main categories of extensions: | ||
|
||
These extensions can be used in your test without any additional configuration. They are automatically resolved and loaded by k6 when you [import them in your test script](https://grafana.com/docs/k6/<K6_VERSION>/extensions/run/#using-automatic-extension-loading). | ||
|
||
We have two categories of extensions: | ||
|
||
| Category | Maintainer | Audited | Cloud support | | ||
| ------------- | ----------------------------------- | ------- | ------------- | | ||
| **Official** | Grafana Labs | ✅ Yes | ✅ Yes | | ||
| **Community** | Community | ✅ Yes | ⚠️ Partial\* | | ||
| Category | Maintainer | Audited | Cloud support | | ||
| ------------- | ------------ | ------- | ------------- | | ||
| **Official** | Grafana Labs | ✅ Yes | ✅ Yes | | ||
| **Community** | Community | ✅ Yes | ⚠️ Partial\* | | ||
|
||
\* *Partial* means that they can be used in the CLI with the `--local-execution` mode. Also, on Private Load Zones if a custom image is build. They don't work on Grafana Cloud k6 Public Load Zones. | ||
\* _Partial_ cloud support means that the extensions can be used in the CLI with the `--local-execution` mode, and on Private Load Zones with a custom image. They don't work on Grafana Cloud k6 Public Load Zones. | ||
|
||
### Official extensions | ||
## Official extensions | ||
|
||
| Extension | Description | Versions | | ||
| --------- | ----------- | -------- | | ||
| [xk6-client-prometheus-remote](https://github.com/grafana/xk6-client-prometheus-remote) | Test Prometheus Remote Write-compatible endpoints | 0.3.2 | | ||
| [xk6-faker](https://github.com/grafana/xk6-faker) | Generate fake data in your tests | 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4 | | ||
| [xk6-loki](https://github.com/grafana/xk6-loki) | Test Grafana Loki log ingestion endpoints | 1.0.0, 1.0.1 | | ||
| Extension | Description | Versions | | ||
| --------------------------------------------------------------------------------------- | ------------------------------------------------- | ---------------------------------------- | | ||
| [xk6-client-prometheus-remote](https://github.com/grafana/xk6-client-prometheus-remote) | Test Prometheus Remote Write-compatible endpoints | 0.3.2 | | ||
| [xk6-faker](https://github.com/grafana/xk6-faker) | Generate fake data in your tests | 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4 | | ||
| [xk6-loki](https://github.com/grafana/xk6-loki) | Test Grafana Loki log ingestion endpoints | 1.0.0, 1.0.1 | | ||
| [xk6-sql](https://github.com/grafana/xk6-sql) | Test SQL servers | 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5 | | ||
| [xk6-sql-driver-mysql](https://github.com/grafana/xk6-sql-driver-mysql) | SQL driver for MySQL | 0.1.0, 0.2.0, 0.2.1 | | ||
| [xk6-sql-driver-postgres](https://github.com/grafana/xk6-sql-driver-postgres) | SQL driver for Postgres | 0.1.0, 0.1.1 | | ||
| [xk6-ssh](https://github.com/grafana/xk6-ssh) | Use SSH connections in your tests | 0.1.0, 0.1.1, 0.1.2, 0.1.3 | | ||
| [xk6-sql-driver-mysql](https://github.com/grafana/xk6-sql-driver-mysql) | SQL driver for MySQL | 0.1.0, 0.2.0, 0.2.1 | | ||
| [xk6-sql-driver-postgres](https://github.com/grafana/xk6-sql-driver-postgres) | SQL driver for Postgres | 0.1.0, 0.1.1 | | ||
| [xk6-ssh](https://github.com/grafana/xk6-ssh) | Use SSH connections in your tests | 0.1.0, 0.1.1, 0.1.2, 0.1.3 | | ||
|
||
### Community extensions | ||
## Community extensions | ||
|
||
{{< admonition type="note" >}} | ||
|
||
We are working on process for community folks to submit their extensions to be included here. | ||
We're working on a process for community folks to submit their extensions. | ||
|
||
{{< /admonition >}} | ||
|
||
| Extension | Description | Versions | | ||
| --------------------------------------------------------------------------------------- | ------------------------------------------------- | ---------------------------------------- | | ||
| [xk6-kafka](https://github.com/mostafa/xk6-kafka) | Load test Apache Kafka | 1.0.0 | | ||
| [xk6-sql-driver-azuresql](https://github.com/grafana/xk6-sql-driver-azuresql) | SQL driver for AzureSQL | 0.1.0, 0.1.1 | | ||
| [xk6-sql-driver-clickhouse](https://github.com/grafana/xk6-sql-driver-clickhouse) | SQL driver for Clickhouse | 0.1.0, 0.1.1 | | ||
| [xk6-sql-driver-sqlserver](https://github.com/grafana/xk6-sql-driver-sqlserver) | SQL driver for SQLite3 | 0.1.0, 0.1.1 | | ||
| [xk6-sse](https://github.com/phymbert/xk6-sse) | Test with Server-Sent Events (SSE) | 0.1.10, 0.1.11 | | ||
| Extension | Description | Versions | | ||
| --------------------------------------------------------------------------------- | ---------------------------------- | -------------- | | ||
| [xk6-kafka](https://github.com/mostafa/xk6-kafka) | Load test Apache Kafka | 1.0.0 | | ||
| [xk6-sql-driver-azuresql](https://github.com/grafana/xk6-sql-driver-azuresql) | SQL driver for AzureSQL | 0.1.0, 0.1.1 | | ||
| [xk6-sql-driver-clickhouse](https://github.com/grafana/xk6-sql-driver-clickhouse) | SQL driver for Clickhouse | 0.1.0, 0.1.1 | | ||
| [xk6-sql-driver-sqlserver](https://github.com/grafana/xk6-sql-driver-sqlserver) | SQL driver for SQLite3 | 0.1.0, 0.1.1 | | ||
| [xk6-sse](https://github.com/phymbert/xk6-sse) | Test with Server-Sent Events (SSE) | 0.1.10, 0.1.11 | | ||
|
||
## Use extensions | ||
|
||
## Require building a custom k6 binary | ||
There are two ways to use extensions when running a k6 test script. | ||
|
||
### Your own extensions | ||
### Automatic extension resolution | ||
|
||
If you have developed your own k6 extension or want to use an extension that's not available through automatic extension resolution, you'll need to build a custom k6 binary. This process involves using the xk6 tool to compile k6 with your desired extensions included. Custom binaries give you the flexibility to incorporate any extension from the k6 ecosystem. | ||
These extensions can be used in your test without any additional configuration. They are automatically resolved and loaded by k6 when you [import them in your test script](https://grafana.com/docs/k6/<K6_VERSION>/extensions/run/#using-automatic-extension-loading). | ||
|
||
Check out how to [build a custom k6 binary guide](https://grafana.com/docs/k6/<K6_VERSION>/extensions/run/#using-extensions-that-require-building-a-custom-k6-binary) to learn how to create your own k6 binary with custom extensions. | ||
### Custom k6 binary | ||
|
||
### More ecosystem extensions | ||
If you have developed your own k6 extension or want to use an extension that's not available through automatic extension resolution, you have to build a custom k6 binary. The process involves using the xk6 tool to compile k6 with your desired extensions included. Custom binaries give you the flexibility to incorporate any extension from the k6 ecosystem. | ||
|
||
Refer to [build a custom k6 binary guide](https://grafana.com/docs/k6/<K6_VERSION>/extensions/run/#use-extensions-with-a-custom-k6-binary) to learn how to create your own k6 binary with custom extensions. | ||
|
||
{{< admonition type="caution" >}} | ||
|
||
The extensions in this category are not maintained nor audited by Grafana Labs. | ||
Many other extensions maintained by members of the k6 ecosystem are available in [GitHub](https://github.com/topics/xk6). These extensions aren't maintained nor audited by Grafana Labs. | ||
|
||
{{< /admonition >}} | ||
|
||
Many other extensions, maintained by members of the k6 ecosystem are available in [GitHub](https://github.com/topics/xk6). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dgzlopes do you think we should get rid of all of this information?
I know we have other sections that just include the
{{< section >}}
shortcode, but I do think the information we had on this page was helpful.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see you removed a bunch of things we had there originally 👀
It's much better. Still, the use cases are outdated. xk6-kubernetes is not officially maintained. Prometheus RW is now in core, so being an extension is not relevant. The last one about distributed tracing is archived.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, that's helpful! I removed the use cases section, we do at least list some use cases when talking about the types of extensions in the introduction.