菜单
文档breadcrumb arrow Grafana k6breadcrumb arrow 扩展breadcrumb arrow 说明breadcrumb arrow 关于扩展注册表
开源

关于扩展注册表

您是否创建了扩展并希望与您的 k6 用户分享?我们很高兴在我们的可用扩展注册表中加入此新功能。但是,在将扩展添加到注册表之前,我们必须确保其符合注册表标准。

我们的目标是在使用 k6 时提供最佳的开发者体验。这同样适用于扩展生态系统。k6 扩展提供的适应性开辟了广泛的潜在用例。

为确保质量,我们需要一个维护良好、精心策划的扩展列表。我们向社区承诺,将尽最大努力确保列出的项目符合特定标准。虽然我们无法保证社区提供扩展的质量,但我们可以通过要求一定的一致性来协助评估。

注册表要求

每个源代码仓库至少必须包含以下内容:

  • README 文件

    README 文件必须包含项目描述、构建和使用说明以及 k6 版本兼容性等文档。目标是提供足够的信息以便快速轻松地评估该扩展。

  • 设置 xk6 主题

    GitHub 允许为仓库设置主题。这支持根据关键字查询所有公共仓库,以便更好地发现,例如“xk6”。请参阅 GitHub 文档来添加主题。

  • 非限制性许可

    任何开源软件 (OSS) 许可都可以,但Apache2 更受欢迎。

  • 包含示例的 examples 文件夹

    提供至少一个脚本来展示您的 API 的正确使用方法。如果提供了 Docker Compose 规范,可以将其用作集成测试,以验证扩展按预期工作。

  • 至少一个版本化的发布

    当功能或修复准备好被使用时,创建一个发布。这通过允许用户使用特定版本来提高稳定性。使用语义版本控制来传达扩展演进过程中的变化。

  • 使用最新的 k6 版本构建

    理想情况下,该扩展应使用最新发布版本进行构建。但是,它必须使用不超过三个版本之前的 k6 版本进行构建。例如,如果 k6 的最新版本是 v0.100,则该扩展必须至少使用 v0.98 版本进行构建。请务必同时匹配由 k6 版本决定的 Go 版本。

命名约定

有些扩展可能非常具体,而另一些则更通用。甚至可能为同一产品创建多个扩展,其支持级别因版本而异。通过遵循典型的命名约定,您的扩展名称可以消除关于支持哪些内容的疑虑。

对于任何扩展,我们推荐使用 xk6- 前缀,对于输出扩展,还可以选择使用 output-。接下来,提供产品或协议名称;不要使用难以理解的术语。如有必要,仅采用众所周知的首字母缩略词或缩写,以确保用法明确。如果您的扩展仅支持产品的特定版本,请将版本合并到名称中,例如 v2

举例来说,假设有一个扩展可以将测试指标输出到 AwesomeLog 应用程序,并且它仅使用 v2 API。在这种情况下,最新的 v3 API 可能不向后兼容。应用我们的约定,我们建议将此仓库命名为 xk6-output-awesomelog-v2

注意

我们的目标是快速理解扩展的用途。

扩展分层

扩展来自多个来源。为了帮助区分扩展,我们现在将每个扩展分为一个层级。每个层级的定义如下:

  • 官方扩展

    官方扩展是 Grafana Labs 所有并维护的扩展。它们将拥有官方文档,并由 Grafana 组织的成员提供支持。

  • 社区扩展

    社区扩展由社区中的个人或团体创建和维护。这些扩展不提供任何默示保证或支持级别。Grafana 团队将尽最大努力协助使热门项目保持合规。

可能被移除列表

鉴于我们希望在使用 k6 时提供最佳的开发者体验,我们保留从列表中移除我们认为不再符合标准的任何扩展的权利。在采取任何行动之前,我们将联系扩展的维护者,以便他们有机会修正项目,从而避免被移除。此类联系可能通过 GitHub Issue 或合并请求的形式进行。

如果任何扩展被移除列表,这不构成永久移除。任何被移除列表的扩展在最初移除的原因得到纠正后,都可以恢复。