diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 991d852..dd3f5f0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -43,6 +43,7 @@ After modifying registry schema ([registry.schema.json]), the [registry_gen.go]
```bash
curl -s -o docs/registry.schema.json https://raw.githubusercontent.com/grafana/k6-extension-registry/main/registry.schema.json
go-jsonschema --capitalization URL --capitalization JavaScript --capitalization OSS -p k6registry --only-models -o registry_gen.go docs/registry.schema.json
+bash metrics_gen.sh
```
[registry.schema.json]: docs/registry.schema.json
diff --git a/README.md b/README.md
index d9ec81a..07c25c5 100644
--- a/README.md
+++ b/README.md
@@ -70,8 +70,8 @@ Registry generated from the source above.
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -89,8 +89,8 @@ Registry generated from the source above.
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -141,8 +141,11 @@ Registry generated from the source above.
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -155,14 +158,14 @@ Registry generated from the source above.
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -172,6 +175,7 @@ Registry generated from the source above.
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -188,7 +192,12 @@ Registry generated from the source above.
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -206,8 +215,8 @@ Registry generated from the source above.
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -219,6 +228,8 @@ Registry generated from the source above.
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -246,8 +257,11 @@ Registry generated from the source above.
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -265,8 +279,8 @@ Registry generated from the source above.
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -289,8 +303,12 @@ Registry generated from the source above.
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -354,6 +372,7 @@ Registry generated from the source above.
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -533,6 +552,8 @@ By using the `--api` flag, files are created with relative paths in a base direc
```ascii file=docs/example-api.txt
docs/example-api
├── catalog.json
+├── metrics.json
+├── metrics.txt
├── registry.json
├── category
│ ├── authentication.json
@@ -563,21 +584,26 @@ docs/example-api
│ │ └── grafana
│ │ ├── xk6-dashboard
│ │ │ ├── badge.svg
-│ │ │ └── extension.json
+│ │ │ ├── extension.json
+│ │ │ └── grade.svg
│ │ ├── xk6-disruptor
│ │ │ ├── badge.svg
-│ │ │ └── extension.json
+│ │ │ ├── extension.json
+│ │ │ └── grade.svg
│ │ ├── xk6-faker
│ │ │ ├── badge.svg
-│ │ │ └── extension.json
+│ │ │ ├── extension.json
+│ │ │ └── grade.svg
│ │ └── xk6-sql
│ │ ├── badge.svg
-│ │ └── extension.json
+│ │ ├── extension.json
+│ │ └── grade.svg
│ ├── gitlab.com
│ │ └── szkiba
│ │ └── xk6-banner
│ │ ├── badge.svg
-│ │ └── extension.json
+│ │ ├── extension.json
+│ │ └── grade.svg
│ └── go.k6.io
│ └── k6
│ └── extension.json
@@ -591,10 +617,16 @@ docs/example-api
└── tier
├── community-catalog.json
├── community.json
+ ├── community-metrics.json
+ ├── community-metrics.txt
├── official-catalog.json
├── official.json
+ ├── official-metrics.json
+ ├── official-metrics.txt
├── partner-catalog.json
├── partner.json
+ ├── partner-metrics.json
+ ├── partner-metrics.txt
└── at-least
├── community-catalog.json
├── community.json
diff --git a/cmd/api.go b/cmd/api.go
index e4bd3c0..efc8083 100644
--- a/cmd/api.go
+++ b/cmd/api.go
@@ -66,7 +66,50 @@ func writeAPIGroupGlobal(registry k6registry.Registry, target string) error {
return err
}
- return writeJSON(filepath.Join(target, "metrics.json"), k6registry.CalculateMetrics(registry))
+ if err := writeMetrics(registry, target, "", func(_ k6registry.Extension) bool { return true }); err != nil {
+ return err
+ }
+
+ for _, tier := range k6registry.Tiers {
+ err := writeMetrics(registry, filepath.Join(target, "tier"), string(tier)+"-",
+ func(ext k6registry.Extension) bool {
+ return ext.Tier == tier
+ })
+ if err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func writeMetrics(
+ registry k6registry.Registry,
+ target string,
+ prefix string,
+ cond func(k6registry.Extension) bool,
+) error {
+ metrics := k6registry.CalculateMetricsCond(registry, cond)
+
+ basename := "metrics"
+
+ if len(prefix) > 0 {
+ basename = prefix + basename
+ }
+
+ basename = filepath.Join(target, basename)
+
+ err := writeJSON(basename+".json", metrics)
+ if err != nil {
+ return err
+ }
+
+ data, err := metrics.MarshalPrometheus()
+ if err != nil {
+ return err
+ }
+
+ return os.WriteFile(basename+".txt", data, permFile) //nolint:forbidigo
}
const gradesvg = `` //nolint:lll
diff --git a/docs/example-api.txt b/docs/example-api.txt
index 1242c19..c352c4e 100644
--- a/docs/example-api.txt
+++ b/docs/example-api.txt
@@ -1,5 +1,7 @@
docs/example-api
├── catalog.json
+├── metrics.json
+├── metrics.txt
├── registry.json
├── category
│ ├── authentication.json
@@ -30,21 +32,26 @@ docs/example-api
│ │ └── grafana
│ │ ├── xk6-dashboard
│ │ │ ├── badge.svg
-│ │ │ └── extension.json
+│ │ │ ├── extension.json
+│ │ │ └── grade.svg
│ │ ├── xk6-disruptor
│ │ │ ├── badge.svg
-│ │ │ └── extension.json
+│ │ │ ├── extension.json
+│ │ │ └── grade.svg
│ │ ├── xk6-faker
│ │ │ ├── badge.svg
-│ │ │ └── extension.json
+│ │ │ ├── extension.json
+│ │ │ └── grade.svg
│ │ └── xk6-sql
│ │ ├── badge.svg
-│ │ └── extension.json
+│ │ ├── extension.json
+│ │ └── grade.svg
│ ├── gitlab.com
│ │ └── szkiba
│ │ └── xk6-banner
│ │ ├── badge.svg
-│ │ └── extension.json
+│ │ ├── extension.json
+│ │ └── grade.svg
│ └── go.k6.io
│ └── k6
│ └── extension.json
@@ -58,10 +65,16 @@ docs/example-api
└── tier
├── community-catalog.json
├── community.json
+ ├── community-metrics.json
+ ├── community-metrics.txt
├── official-catalog.json
├── official.json
+ ├── official-metrics.json
+ ├── official-metrics.txt
├── partner-catalog.json
├── partner.json
+ ├── partner-metrics.json
+ ├── partner-metrics.txt
└── at-least
├── community-catalog.json
├── community.json
diff --git a/docs/example-api/catalog.json b/docs/example-api/catalog.json
index c612ee6..4b24aae 100644
--- a/docs/example-api/catalog.json
+++ b/docs/example-api/catalog.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -106,6 +106,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -204,8 +205,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -240,7 +245,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -258,8 +268,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -271,6 +281,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -298,8 +310,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -317,8 +332,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -341,8 +356,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -355,14 +373,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -372,6 +390,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
diff --git a/docs/example-api/category/data.json b/docs/example-api/category/data.json
index f70f67f..662a08c 100644
--- a/docs/example-api/category/data.json
+++ b/docs/example-api/category/data.json
@@ -4,8 +4,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -18,14 +21,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -35,6 +38,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -50,8 +54,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -69,8 +76,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
diff --git a/docs/example-api/category/kubernetes.json b/docs/example-api/category/kubernetes.json
index b748497..32bc133 100644
--- a/docs/example-api/category/kubernetes.json
+++ b/docs/example-api/category/kubernetes.json
@@ -5,7 +5,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -23,8 +28,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -36,6 +41,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
diff --git a/docs/example-api/category/misc.json b/docs/example-api/category/misc.json
index dbc8d12..3040901 100644
--- a/docs/example-api/category/misc.json
+++ b/docs/example-api/category/misc.json
@@ -4,8 +4,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -69,6 +73,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/category/observability.json b/docs/example-api/category/observability.json
index 4a05d71..e877cbf 100644
--- a/docs/example-api/category/observability.json
+++ b/docs/example-api/category/observability.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
diff --git a/docs/example-api/category/reporting.json b/docs/example-api/category/reporting.json
index 4a05d71..e877cbf 100644
--- a/docs/example-api/category/reporting.json
+++ b/docs/example-api/category/reporting.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
diff --git a/docs/example-api/grade/A.json b/docs/example-api/grade/A.json
index ea1ec07..e877cbf 100644
--- a/docs/example-api/grade/A.json
+++ b/docs/example-api/grade/A.json
@@ -1,125 +1,73 @@
[
{
"categories": [
- "data"
+ "reporting",
+ "observability"
],
"compliance": {
"grade": "A",
"level": 100
},
- "description": "Load test SQL Servers",
- "imports": [
- "k6/x/sql"
+ "description": "Web-based metrics dashboard for k6",
+ "module": "github.com/grafana/xk6-dashboard",
+ "outputs": [
+ "dashboard"
],
- "module": "github.com/grafana/xk6-sql",
"products": [
- "cloud",
"oss"
],
"repo": {
- "clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
- "license": "Apache-2.0",
- "name": "xk6-sql",
- "owner": "grafana",
- "public": true,
- "stars": 110,
- "timestamp": 1725979901,
- "topics": [
- "k6",
- "sql",
- "xk6"
- ],
- "url": "https://github.com/grafana/xk6-sql"
- },
- "tier": "official",
- "versions": [
- "v0.4.1",
- "v0.4.0",
- "v0.3.0",
- "v0.2.1",
- "v0.2.0",
- "v0.1.1",
- "v0.1.0",
- "v0.0.1"
- ]
- },
- {
- "categories": [
- "data"
- ],
- "compliance": {
- "grade": "A",
- "level": 100
- },
- "description": "Generate random fake data",
- "imports": [
- "k6/x/faker"
- ],
- "module": "github.com/grafana/xk6-faker",
- "products": [
- "oss"
- ],
- "repo": {
- "clone_url": "https://github.com/grafana/xk6-faker.git",
- "description": "Random fake data generator for k6.",
- "homepage": "https://faker.x.k6.io",
+ "clone_url": "https://github.com/grafana/xk6-dashboard.git",
+ "description": "A k6 extension that makes k6 metrics available on a web-based dashboard.",
+ "homepage": "https://github.com/grafana/xk6-dashboard",
"license": "AGPL-3.0",
- "name": "xk6-faker",
+ "name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
- "xk6"
+ "xk6",
+ "xk6-official",
+ "xk6-output-dashboard"
],
- "url": "https://github.com/grafana/xk6-faker"
+ "url": "https://github.com/grafana/xk6-dashboard"
},
"tier": "official",
"versions": [
+ "v0.7.5",
+ "v0.7.4",
+ "v0.7.3",
+ "v0.7.3-alpha.1",
+ "v0.7.2",
+ "v0.7.1",
+ "v0.7.0",
+ "v0.7.0-apha.3",
+ "v0.7.0-alpha.5",
+ "v0.7.0-alpha.4",
+ "v0.7.0-alpha.3",
+ "v0.7.0-alpha.2",
+ "v0.7.0-alpha.1",
+ "v0.6.1",
+ "v0.6.0",
+ "v0.5.5",
+ "v0.5.4",
+ "v0.5.3",
+ "v0.5.2",
+ "v0.5.1",
+ "v0.5.0",
+ "v0.4.4",
+ "v0.4.3",
+ "v0.4.2",
+ "v0.4.1",
"v0.4.0",
+ "v0.3.2",
"v0.3.1",
"v0.3.0",
- "v0.3.0-alpha.1",
- "v0.2.2",
- "v0.2.1",
"v0.2.0",
- "v0.1.0"
- ]
- },
- {
- "categories": [
- "misc"
- ],
- "compliance": {
- "grade": "A",
- "level": 100
- },
- "description": "Print ASCII art banner from k6 test",
- "imports": [
- "k6/x/banner"
- ],
- "module": "gitlab.com/szkiba/xk6-banner",
- "products": [
- "oss"
- ],
- "repo": {
- "clone_url": "https://gitlab.com/szkiba/xk6-banner.git",
- "description": "Print ASCII art banner from k6 test.",
- "homepage": "https://gitlab.com/szkiba/xk6-banner",
- "license": "MIT",
- "name": "xk6-banner",
- "owner": "szkiba",
- "public": true,
- "timestamp": 1725896396,
- "topics": [
- "xk6"
- ],
- "url": "https://gitlab.com/szkiba/xk6-banner"
- },
- "tier": "community",
- "versions": [
+ "v0.1.3",
+ "v0.1.2",
+ "v0.1.1",
"v0.1.0"
]
}
diff --git a/docs/example-api/grade/B.json b/docs/example-api/grade/B.json
index fe51488..662a08c 100644
--- a/docs/example-api/grade/B.json
+++ b/docs/example-api/grade/B.json
@@ -1 +1,98 @@
-[]
+[
+ {
+ "categories": [
+ "data"
+ ],
+ "compliance": {
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
+ },
+ "description": "Load test SQL Servers",
+ "imports": [
+ "k6/x/sql"
+ ],
+ "module": "github.com/grafana/xk6-sql",
+ "products": [
+ "cloud",
+ "oss"
+ ],
+ "repo": {
+ "clone_url": "https://github.com/grafana/xk6-sql.git",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
+ "license": "Apache-2.0",
+ "name": "xk6-sql",
+ "owner": "grafana",
+ "public": true,
+ "stars": 120,
+ "timestamp": 1733736611,
+ "topics": [
+ "k6",
+ "sql",
+ "xk6"
+ ],
+ "url": "https://github.com/grafana/xk6-sql"
+ },
+ "tier": "official",
+ "versions": [
+ "v1.0.0",
+ "v0.4.1",
+ "v0.4.0",
+ "v0.3.0",
+ "v0.2.1",
+ "v0.2.0",
+ "v0.1.1",
+ "v0.1.0",
+ "v0.0.1"
+ ]
+ },
+ {
+ "categories": [
+ "data"
+ ],
+ "compliance": {
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
+ },
+ "description": "Generate random fake data",
+ "imports": [
+ "k6/x/faker"
+ ],
+ "module": "github.com/grafana/xk6-faker",
+ "products": [
+ "oss"
+ ],
+ "repo": {
+ "clone_url": "https://github.com/grafana/xk6-faker.git",
+ "description": "Random fake data generator for k6.",
+ "homepage": "https://faker.x.k6.io",
+ "license": "AGPL-3.0",
+ "name": "xk6-faker",
+ "owner": "grafana",
+ "public": true,
+ "stars": 63,
+ "timestamp": 1733730893,
+ "topics": [
+ "xk6"
+ ],
+ "url": "https://github.com/grafana/xk6-faker"
+ },
+ "tier": "official",
+ "versions": [
+ "v0.4.0",
+ "v0.3.1",
+ "v0.3.0",
+ "v0.3.0-alpha.1",
+ "v0.2.2",
+ "v0.2.1",
+ "v0.2.0",
+ "v0.1.0"
+ ]
+ }
+]
diff --git a/docs/example-api/grade/C.json b/docs/example-api/grade/C.json
index d3009a1..44b3b69 100644
--- a/docs/example-api/grade/C.json
+++ b/docs/example-api/grade/C.json
@@ -1,83 +1,16 @@
[
- {
- "categories": [
- "reporting",
- "observability"
- ],
- "compliance": {
- "grade": "C",
- "level": 80
- },
- "description": "Web-based metrics dashboard for k6",
- "module": "github.com/grafana/xk6-dashboard",
- "outputs": [
- "dashboard"
- ],
- "products": [
- "oss"
- ],
- "repo": {
- "clone_url": "https://github.com/grafana/xk6-dashboard.git",
- "description": "A k6 extension that makes k6 metrics available on a web-based dashboard.",
- "homepage": "https://github.com/grafana/xk6-dashboard",
- "license": "AGPL-3.0",
- "name": "xk6-dashboard",
- "owner": "grafana",
- "public": true,
- "stars": 343,
- "timestamp": 1719907965,
- "topics": [
- "xk6",
- "xk6-official",
- "xk6-output-dashboard"
- ],
- "url": "https://github.com/grafana/xk6-dashboard"
- },
- "tier": "official",
- "versions": [
- "v0.7.5",
- "v0.7.4",
- "v0.7.3",
- "v0.7.3-alpha.1",
- "v0.7.2",
- "v0.7.1",
- "v0.7.0",
- "v0.7.0-apha.3",
- "v0.7.0-alpha.5",
- "v0.7.0-alpha.4",
- "v0.7.0-alpha.3",
- "v0.7.0-alpha.2",
- "v0.7.0-alpha.1",
- "v0.6.1",
- "v0.6.0",
- "v0.5.5",
- "v0.5.4",
- "v0.5.3",
- "v0.5.2",
- "v0.5.1",
- "v0.5.0",
- "v0.4.4",
- "v0.4.3",
- "v0.4.2",
- "v0.4.1",
- "v0.4.0",
- "v0.3.2",
- "v0.3.1",
- "v0.3.0",
- "v0.2.0",
- "v0.1.3",
- "v0.1.2",
- "v0.1.1",
- "v0.1.0"
- ]
- },
{
"categories": [
"kubernetes"
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -95,8 +28,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -108,6 +41,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -129,5 +64,44 @@
"v0.1.1",
"v0.1.0"
]
+ },
+ {
+ "categories": [
+ "misc"
+ ],
+ "compliance": {
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
+ },
+ "description": "Print ASCII art banner from k6 test",
+ "imports": [
+ "k6/x/banner"
+ ],
+ "module": "gitlab.com/szkiba/xk6-banner",
+ "products": [
+ "oss"
+ ],
+ "repo": {
+ "clone_url": "https://gitlab.com/szkiba/xk6-banner.git",
+ "description": "Print ASCII art banner from k6 test.",
+ "homepage": "https://gitlab.com/szkiba/xk6-banner",
+ "license": "MIT",
+ "name": "xk6-banner",
+ "owner": "szkiba",
+ "public": true,
+ "timestamp": 1725896396,
+ "topics": [
+ "xk6"
+ ],
+ "url": "https://gitlab.com/szkiba/xk6-banner"
+ },
+ "tier": "community",
+ "versions": [
+ "v0.1.0"
+ ]
}
]
diff --git a/docs/example-api/grade/at-least/A.json b/docs/example-api/grade/at-least/A.json
index ea1ec07..e877cbf 100644
--- a/docs/example-api/grade/at-least/A.json
+++ b/docs/example-api/grade/at-least/A.json
@@ -1,125 +1,73 @@
[
{
"categories": [
- "data"
+ "reporting",
+ "observability"
],
"compliance": {
"grade": "A",
"level": 100
},
- "description": "Load test SQL Servers",
- "imports": [
- "k6/x/sql"
+ "description": "Web-based metrics dashboard for k6",
+ "module": "github.com/grafana/xk6-dashboard",
+ "outputs": [
+ "dashboard"
],
- "module": "github.com/grafana/xk6-sql",
"products": [
- "cloud",
"oss"
],
"repo": {
- "clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
- "license": "Apache-2.0",
- "name": "xk6-sql",
- "owner": "grafana",
- "public": true,
- "stars": 110,
- "timestamp": 1725979901,
- "topics": [
- "k6",
- "sql",
- "xk6"
- ],
- "url": "https://github.com/grafana/xk6-sql"
- },
- "tier": "official",
- "versions": [
- "v0.4.1",
- "v0.4.0",
- "v0.3.0",
- "v0.2.1",
- "v0.2.0",
- "v0.1.1",
- "v0.1.0",
- "v0.0.1"
- ]
- },
- {
- "categories": [
- "data"
- ],
- "compliance": {
- "grade": "A",
- "level": 100
- },
- "description": "Generate random fake data",
- "imports": [
- "k6/x/faker"
- ],
- "module": "github.com/grafana/xk6-faker",
- "products": [
- "oss"
- ],
- "repo": {
- "clone_url": "https://github.com/grafana/xk6-faker.git",
- "description": "Random fake data generator for k6.",
- "homepage": "https://faker.x.k6.io",
+ "clone_url": "https://github.com/grafana/xk6-dashboard.git",
+ "description": "A k6 extension that makes k6 metrics available on a web-based dashboard.",
+ "homepage": "https://github.com/grafana/xk6-dashboard",
"license": "AGPL-3.0",
- "name": "xk6-faker",
+ "name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
- "xk6"
+ "xk6",
+ "xk6-official",
+ "xk6-output-dashboard"
],
- "url": "https://github.com/grafana/xk6-faker"
+ "url": "https://github.com/grafana/xk6-dashboard"
},
"tier": "official",
"versions": [
+ "v0.7.5",
+ "v0.7.4",
+ "v0.7.3",
+ "v0.7.3-alpha.1",
+ "v0.7.2",
+ "v0.7.1",
+ "v0.7.0",
+ "v0.7.0-apha.3",
+ "v0.7.0-alpha.5",
+ "v0.7.0-alpha.4",
+ "v0.7.0-alpha.3",
+ "v0.7.0-alpha.2",
+ "v0.7.0-alpha.1",
+ "v0.6.1",
+ "v0.6.0",
+ "v0.5.5",
+ "v0.5.4",
+ "v0.5.3",
+ "v0.5.2",
+ "v0.5.1",
+ "v0.5.0",
+ "v0.4.4",
+ "v0.4.3",
+ "v0.4.2",
+ "v0.4.1",
"v0.4.0",
+ "v0.3.2",
"v0.3.1",
"v0.3.0",
- "v0.3.0-alpha.1",
- "v0.2.2",
- "v0.2.1",
"v0.2.0",
- "v0.1.0"
- ]
- },
- {
- "categories": [
- "misc"
- ],
- "compliance": {
- "grade": "A",
- "level": 100
- },
- "description": "Print ASCII art banner from k6 test",
- "imports": [
- "k6/x/banner"
- ],
- "module": "gitlab.com/szkiba/xk6-banner",
- "products": [
- "oss"
- ],
- "repo": {
- "clone_url": "https://gitlab.com/szkiba/xk6-banner.git",
- "description": "Print ASCII art banner from k6 test.",
- "homepage": "https://gitlab.com/szkiba/xk6-banner",
- "license": "MIT",
- "name": "xk6-banner",
- "owner": "szkiba",
- "public": true,
- "timestamp": 1725896396,
- "topics": [
- "xk6"
- ],
- "url": "https://gitlab.com/szkiba/xk6-banner"
- },
- "tier": "community",
- "versions": [
+ "v0.1.3",
+ "v0.1.2",
+ "v0.1.1",
"v0.1.0"
]
}
diff --git a/docs/example-api/grade/at-least/B.json b/docs/example-api/grade/at-least/B.json
index ea1ec07..44b21b4 100644
--- a/docs/example-api/grade/at-least/B.json
+++ b/docs/example-api/grade/at-least/B.json
@@ -1,12 +1,87 @@
[
{
"categories": [
- "data"
+ "reporting",
+ "observability"
],
"compliance": {
"grade": "A",
"level": 100
},
+ "description": "Web-based metrics dashboard for k6",
+ "module": "github.com/grafana/xk6-dashboard",
+ "outputs": [
+ "dashboard"
+ ],
+ "products": [
+ "oss"
+ ],
+ "repo": {
+ "clone_url": "https://github.com/grafana/xk6-dashboard.git",
+ "description": "A k6 extension that makes k6 metrics available on a web-based dashboard.",
+ "homepage": "https://github.com/grafana/xk6-dashboard",
+ "license": "AGPL-3.0",
+ "name": "xk6-dashboard",
+ "owner": "grafana",
+ "public": true,
+ "stars": 367,
+ "timestamp": 1731922735,
+ "topics": [
+ "xk6",
+ "xk6-official",
+ "xk6-output-dashboard"
+ ],
+ "url": "https://github.com/grafana/xk6-dashboard"
+ },
+ "tier": "official",
+ "versions": [
+ "v0.7.5",
+ "v0.7.4",
+ "v0.7.3",
+ "v0.7.3-alpha.1",
+ "v0.7.2",
+ "v0.7.1",
+ "v0.7.0",
+ "v0.7.0-apha.3",
+ "v0.7.0-alpha.5",
+ "v0.7.0-alpha.4",
+ "v0.7.0-alpha.3",
+ "v0.7.0-alpha.2",
+ "v0.7.0-alpha.1",
+ "v0.6.1",
+ "v0.6.0",
+ "v0.5.5",
+ "v0.5.4",
+ "v0.5.3",
+ "v0.5.2",
+ "v0.5.1",
+ "v0.5.0",
+ "v0.4.4",
+ "v0.4.3",
+ "v0.4.2",
+ "v0.4.1",
+ "v0.4.0",
+ "v0.3.2",
+ "v0.3.1",
+ "v0.3.0",
+ "v0.2.0",
+ "v0.1.3",
+ "v0.1.2",
+ "v0.1.1",
+ "v0.1.0"
+ ]
+ },
+ {
+ "categories": [
+ "data"
+ ],
+ "compliance": {
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
+ },
"description": "Load test SQL Servers",
"imports": [
"k6/x/sql"
@@ -18,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -35,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -50,8 +126,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -69,8 +148,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -87,40 +166,5 @@
"v0.2.0",
"v0.1.0"
]
- },
- {
- "categories": [
- "misc"
- ],
- "compliance": {
- "grade": "A",
- "level": 100
- },
- "description": "Print ASCII art banner from k6 test",
- "imports": [
- "k6/x/banner"
- ],
- "module": "gitlab.com/szkiba/xk6-banner",
- "products": [
- "oss"
- ],
- "repo": {
- "clone_url": "https://gitlab.com/szkiba/xk6-banner.git",
- "description": "Print ASCII art banner from k6 test.",
- "homepage": "https://gitlab.com/szkiba/xk6-banner",
- "license": "MIT",
- "name": "xk6-banner",
- "owner": "szkiba",
- "public": true,
- "timestamp": 1725896396,
- "topics": [
- "xk6"
- ],
- "url": "https://gitlab.com/szkiba/xk6-banner"
- },
- "tier": "community",
- "versions": [
- "v0.1.0"
- ]
}
]
diff --git a/docs/example-api/grade/at-least/C.json b/docs/example-api/grade/at-least/C.json
index 2a3aea1..c08edb7 100644
--- a/docs/example-api/grade/at-least/C.json
+++ b/docs/example-api/grade/at-least/C.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -224,8 +238,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
diff --git a/docs/example-api/grade/at-least/D.json b/docs/example-api/grade/at-least/D.json
index 2a3aea1..c08edb7 100644
--- a/docs/example-api/grade/at-least/D.json
+++ b/docs/example-api/grade/at-least/D.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -224,8 +238,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
diff --git a/docs/example-api/grade/at-least/E.json b/docs/example-api/grade/at-least/E.json
index 2a3aea1..c08edb7 100644
--- a/docs/example-api/grade/at-least/E.json
+++ b/docs/example-api/grade/at-least/E.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -224,8 +238,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
diff --git a/docs/example-api/grade/at-least/F.json b/docs/example-api/grade/at-least/F.json
index 2a3aea1..c08edb7 100644
--- a/docs/example-api/grade/at-least/F.json
+++ b/docs/example-api/grade/at-least/F.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -224,8 +238,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
diff --git a/docs/example-api/metrics.json b/docs/example-api/metrics.json
new file mode 100644
index 0000000..9542036
--- /dev/null
+++ b/docs/example-api/metrics.json
@@ -0,0 +1,20 @@
+{
+ "registry_category_data_count": 2,
+ "registry_category_kubernetes_count": 1,
+ "registry_category_misc_count": 1,
+ "registry_category_observability_count": 1,
+ "registry_category_reporting_count": 1,
+ "registry_extension_count": 5,
+ "registry_grade_a_count": 1,
+ "registry_grade_b_count": 2,
+ "registry_grade_c_count": 2,
+ "registry_issue_examples_count": 1,
+ "registry_issue_smoke_count": 4,
+ "registry_issue_types_count": 2,
+ "registry_product_cloud_count": 1,
+ "registry_product_oss_count": 5,
+ "registry_tier_community_count": 1,
+ "registry_tier_official_count": 4,
+ "registry_type_javascript_count": 4,
+ "registry_type_output_count": 1
+}
diff --git a/docs/example-api/metrics.txt b/docs/example-api/metrics.txt
new file mode 100644
index 0000000..40cf492
--- /dev/null
+++ b/docs/example-api/metrics.txt
@@ -0,0 +1,54 @@
+# HELP registry_category_misc_count Number of extensions in the 'misc' category.
+# TYPE registry_category_misc_count counter
+registry_category_misc_count 1 1733945081492
+# HELP registry_grade_b_count Number of B-grade extensions.
+# TYPE registry_grade_b_count counter
+registry_grade_b_count 2 1733945081492
+# HELP registry_issue_types_count Number of extensions without API declaration file.
+# TYPE registry_issue_types_count counter
+registry_issue_types_count 2 1733945081492
+# HELP registry_product_oss_count Number of extensions available in Grafana k6.
+# TYPE registry_product_oss_count counter
+registry_product_oss_count 5 1733945081492
+# HELP registry_type_output_count Number of Output extension.
+# TYPE registry_type_output_count counter
+registry_type_output_count 1 1733945081492
+# HELP registry_category_observability_count Number of extensions in the 'observability' category.
+# TYPE registry_category_observability_count counter
+registry_category_observability_count 1 1733945081492
+# HELP registry_issue_examples_count Number of extensions without examples directory.
+# TYPE registry_issue_examples_count counter
+registry_issue_examples_count 1 1733945081492
+# HELP registry_issue_smoke_count Number of extensions without smoke test script.
+# TYPE registry_issue_smoke_count counter
+registry_issue_smoke_count 4 1733945081492
+# HELP registry_product_cloud_count Number of extensions available in Grafana Cloud k6.
+# TYPE registry_product_cloud_count counter
+registry_product_cloud_count 1 1733945081492
+# HELP registry_tier_official_count Number of extensions in the 'official' tier.
+# TYPE registry_tier_official_count counter
+registry_tier_official_count 4 1733945081492
+# HELP registry_category_data_count Number of extensions in the 'data' category.
+# TYPE registry_category_data_count counter
+registry_category_data_count 2 1733945081492
+# HELP registry_extension_count The total number of extensions.
+# TYPE registry_extension_count counter
+registry_extension_count 5 1733945081492
+# HELP registry_tier_community_count Number of extension in the community' tier.
+# TYPE registry_tier_community_count counter
+registry_tier_community_count 1 1733945081492
+# HELP registry_category_kubernetes_count Number of extensions in the 'kubernetes' category.
+# TYPE registry_category_kubernetes_count counter
+registry_category_kubernetes_count 1 1733945081492
+# HELP registry_category_reporting_count Number of extensions in the 'reporting' category.
+# TYPE registry_category_reporting_count counter
+registry_category_reporting_count 1 1733945081492
+# HELP registry_grade_a_count Number of A-grade extensions.
+# TYPE registry_grade_a_count counter
+registry_grade_a_count 1 1733945081492
+# HELP registry_grade_c_count Number of C-grade extensions.
+# TYPE registry_grade_c_count counter
+registry_grade_c_count 2 1733945081492
+# HELP registry_type_javascript_count Number of JavaScript extension.
+# TYPE registry_type_javascript_count counter
+registry_type_javascript_count 4 1733945081492
diff --git a/docs/example-api/module/github.com/grafana/xk6-dashboard/badge.svg b/docs/example-api/module/github.com/grafana/xk6-dashboard/badge.svg
index 8d69d24..f24dfbf 100644
--- a/docs/example-api/module/github.com/grafana/xk6-dashboard/badge.svg
+++ b/docs/example-api/module/github.com/grafana/xk6-dashboard/badge.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/example-api/module/github.com/grafana/xk6-dashboard/extension.json b/docs/example-api/module/github.com/grafana/xk6-dashboard/extension.json
index ce6a97c..c65b115 100644
--- a/docs/example-api/module/github.com/grafana/xk6-dashboard/extension.json
+++ b/docs/example-api/module/github.com/grafana/xk6-dashboard/extension.json
@@ -4,8 +4,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -23,8 +23,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
diff --git a/docs/example-api/module/github.com/grafana/xk6-dashboard/grade.svg b/docs/example-api/module/github.com/grafana/xk6-dashboard/grade.svg
new file mode 100644
index 0000000..bd74973
--- /dev/null
+++ b/docs/example-api/module/github.com/grafana/xk6-dashboard/grade.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/example-api/module/github.com/grafana/xk6-disruptor/extension.json b/docs/example-api/module/github.com/grafana/xk6-disruptor/extension.json
index 479a8e0..9d591c5 100644
--- a/docs/example-api/module/github.com/grafana/xk6-disruptor/extension.json
+++ b/docs/example-api/module/github.com/grafana/xk6-disruptor/extension.json
@@ -4,7 +4,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -22,8 +27,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -35,6 +40,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
diff --git a/docs/example-api/module/github.com/grafana/xk6-disruptor/grade.svg b/docs/example-api/module/github.com/grafana/xk6-disruptor/grade.svg
new file mode 100644
index 0000000..c386b1d
--- /dev/null
+++ b/docs/example-api/module/github.com/grafana/xk6-disruptor/grade.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/example-api/module/github.com/grafana/xk6-faker/badge.svg b/docs/example-api/module/github.com/grafana/xk6-faker/badge.svg
index f24dfbf..1670a8a 100644
--- a/docs/example-api/module/github.com/grafana/xk6-faker/badge.svg
+++ b/docs/example-api/module/github.com/grafana/xk6-faker/badge.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/example-api/module/github.com/grafana/xk6-faker/extension.json b/docs/example-api/module/github.com/grafana/xk6-faker/extension.json
index cd666d4..05d88ef 100644
--- a/docs/example-api/module/github.com/grafana/xk6-faker/extension.json
+++ b/docs/example-api/module/github.com/grafana/xk6-faker/extension.json
@@ -3,8 +3,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -22,8 +25,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
diff --git a/docs/example-api/module/github.com/grafana/xk6-faker/grade.svg b/docs/example-api/module/github.com/grafana/xk6-faker/grade.svg
new file mode 100644
index 0000000..a2885f6
--- /dev/null
+++ b/docs/example-api/module/github.com/grafana/xk6-faker/grade.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/example-api/module/github.com/grafana/xk6-sql/badge.svg b/docs/example-api/module/github.com/grafana/xk6-sql/badge.svg
index f24dfbf..1670a8a 100644
--- a/docs/example-api/module/github.com/grafana/xk6-sql/badge.svg
+++ b/docs/example-api/module/github.com/grafana/xk6-sql/badge.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/example-api/module/github.com/grafana/xk6-sql/extension.json b/docs/example-api/module/github.com/grafana/xk6-sql/extension.json
index 8ec7fb4..fae04ff 100644
--- a/docs/example-api/module/github.com/grafana/xk6-sql/extension.json
+++ b/docs/example-api/module/github.com/grafana/xk6-sql/extension.json
@@ -3,8 +3,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -17,14 +20,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -34,6 +37,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
diff --git a/docs/example-api/module/github.com/grafana/xk6-sql/grade.svg b/docs/example-api/module/github.com/grafana/xk6-sql/grade.svg
new file mode 100644
index 0000000..a2885f6
--- /dev/null
+++ b/docs/example-api/module/github.com/grafana/xk6-sql/grade.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/example-api/module/gitlab.com/szkiba/xk6-banner/badge.svg b/docs/example-api/module/gitlab.com/szkiba/xk6-banner/badge.svg
index f24dfbf..8d69d24 100644
--- a/docs/example-api/module/gitlab.com/szkiba/xk6-banner/badge.svg
+++ b/docs/example-api/module/gitlab.com/szkiba/xk6-banner/badge.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/example-api/module/gitlab.com/szkiba/xk6-banner/extension.json b/docs/example-api/module/gitlab.com/szkiba/xk6-banner/extension.json
index 1afd3bf..114c8ad 100644
--- a/docs/example-api/module/gitlab.com/szkiba/xk6-banner/extension.json
+++ b/docs/example-api/module/gitlab.com/szkiba/xk6-banner/extension.json
@@ -3,8 +3,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
diff --git a/docs/example-api/module/gitlab.com/szkiba/xk6-banner/grade.svg b/docs/example-api/module/gitlab.com/szkiba/xk6-banner/grade.svg
new file mode 100644
index 0000000..c386b1d
--- /dev/null
+++ b/docs/example-api/module/gitlab.com/szkiba/xk6-banner/grade.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/example-api/module/go.k6.io/k6/extension.json b/docs/example-api/module/go.k6.io/k6/extension.json
index 0bb628a..226ded5 100644
--- a/docs/example-api/module/go.k6.io/k6/extension.json
+++ b/docs/example-api/module/go.k6.io/k6/extension.json
@@ -33,6 +33,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/product/cloud-catalog.json b/docs/example-api/product/cloud-catalog.json
index 7709e97..d67d852 100644
--- a/docs/example-api/product/cloud-catalog.json
+++ b/docs/example-api/product/cloud-catalog.json
@@ -34,6 +34,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -132,8 +133,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -146,14 +150,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -163,6 +167,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
diff --git a/docs/example-api/product/cloud.json b/docs/example-api/product/cloud.json
index e559047..32e7fc1 100644
--- a/docs/example-api/product/cloud.json
+++ b/docs/example-api/product/cloud.json
@@ -4,8 +4,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -18,14 +21,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -35,6 +38,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -80,6 +84,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/product/oss-catalog.json b/docs/example-api/product/oss-catalog.json
index c612ee6..4b24aae 100644
--- a/docs/example-api/product/oss-catalog.json
+++ b/docs/example-api/product/oss-catalog.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -106,6 +106,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -204,8 +205,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -240,7 +245,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -258,8 +268,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -271,6 +281,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -298,8 +310,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -317,8 +332,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -341,8 +356,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -355,14 +373,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -372,6 +390,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
diff --git a/docs/example-api/product/oss.json b/docs/example-api/product/oss.json
index 1602961..092264f 100644
--- a/docs/example-api/product/oss.json
+++ b/docs/example-api/product/oss.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -224,8 +238,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -289,6 +307,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/product/synthetic-catalog.json b/docs/example-api/product/synthetic-catalog.json
index 32ca2c5..3e671a9 100644
--- a/docs/example-api/product/synthetic-catalog.json
+++ b/docs/example-api/product/synthetic-catalog.json
@@ -34,6 +34,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/product/synthetic.json b/docs/example-api/product/synthetic.json
index d0d56f9..00acbe1 100644
--- a/docs/example-api/product/synthetic.json
+++ b/docs/example-api/product/synthetic.json
@@ -34,6 +34,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/registry.json b/docs/example-api/registry.json
index 1602961..092264f 100644
--- a/docs/example-api/registry.json
+++ b/docs/example-api/registry.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -224,8 +238,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -289,6 +307,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/tier/at-least/community-catalog.json b/docs/example-api/tier/at-least/community-catalog.json
index c612ee6..4b24aae 100644
--- a/docs/example-api/tier/at-least/community-catalog.json
+++ b/docs/example-api/tier/at-least/community-catalog.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -106,6 +106,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -204,8 +205,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -240,7 +245,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -258,8 +268,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -271,6 +281,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -298,8 +310,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -317,8 +332,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -341,8 +356,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -355,14 +373,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -372,6 +390,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
diff --git a/docs/example-api/tier/at-least/community.json b/docs/example-api/tier/at-least/community.json
index 1602961..092264f 100644
--- a/docs/example-api/tier/at-least/community.json
+++ b/docs/example-api/tier/at-least/community.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -224,8 +238,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -289,6 +307,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/tier/at-least/official-catalog.json b/docs/example-api/tier/at-least/official-catalog.json
index b141f73..8127aef 100644
--- a/docs/example-api/tier/at-least/official-catalog.json
+++ b/docs/example-api/tier/at-least/official-catalog.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -106,6 +106,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -205,7 +206,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -223,8 +229,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -236,6 +242,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -263,8 +271,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -282,8 +293,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -306,8 +317,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -320,14 +334,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -337,6 +351,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
diff --git a/docs/example-api/tier/at-least/official.json b/docs/example-api/tier/at-least/official.json
index 7d84464..8e5a354 100644
--- a/docs/example-api/tier/at-least/official.json
+++ b/docs/example-api/tier/at-least/official.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -254,6 +268,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/tier/at-least/partner-catalog.json b/docs/example-api/tier/at-least/partner-catalog.json
index b141f73..8127aef 100644
--- a/docs/example-api/tier/at-least/partner-catalog.json
+++ b/docs/example-api/tier/at-least/partner-catalog.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -106,6 +106,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -205,7 +206,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -223,8 +229,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -236,6 +242,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -263,8 +271,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -282,8 +293,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -306,8 +317,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -320,14 +334,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -337,6 +351,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
diff --git a/docs/example-api/tier/at-least/partner.json b/docs/example-api/tier/at-least/partner.json
index 7d84464..8e5a354 100644
--- a/docs/example-api/tier/at-least/partner.json
+++ b/docs/example-api/tier/at-least/partner.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -254,6 +268,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/tier/community-catalog.json b/docs/example-api/tier/community-catalog.json
index 83dfa47..bb24d5d 100644
--- a/docs/example-api/tier/community-catalog.json
+++ b/docs/example-api/tier/community-catalog.json
@@ -34,6 +34,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -132,8 +133,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
diff --git a/docs/example-api/tier/community-metrics.json b/docs/example-api/tier/community-metrics.json
new file mode 100644
index 0000000..aab038d
--- /dev/null
+++ b/docs/example-api/tier/community-metrics.json
@@ -0,0 +1,10 @@
+{
+ "registry_category_misc_count": 1,
+ "registry_extension_count": 1,
+ "registry_grade_c_count": 1,
+ "registry_issue_smoke_count": 1,
+ "registry_issue_types_count": 1,
+ "registry_product_oss_count": 1,
+ "registry_tier_community_count": 1,
+ "registry_type_javascript_count": 1
+}
diff --git a/docs/example-api/tier/community-metrics.txt b/docs/example-api/tier/community-metrics.txt
new file mode 100644
index 0000000..b038a84
--- /dev/null
+++ b/docs/example-api/tier/community-metrics.txt
@@ -0,0 +1,24 @@
+# HELP registry_extension_count The total number of extensions.
+# TYPE registry_extension_count counter
+registry_extension_count 1 1733945081492
+# HELP registry_grade_c_count Number of C-grade extensions.
+# TYPE registry_grade_c_count counter
+registry_grade_c_count 1 1733945081492
+# HELP registry_issue_smoke_count Number of extensions without smoke test script.
+# TYPE registry_issue_smoke_count counter
+registry_issue_smoke_count 1 1733945081492
+# HELP registry_issue_types_count Number of extensions without API declaration file.
+# TYPE registry_issue_types_count counter
+registry_issue_types_count 1 1733945081492
+# HELP registry_product_oss_count Number of extensions available in Grafana k6.
+# TYPE registry_product_oss_count counter
+registry_product_oss_count 1 1733945081492
+# HELP registry_tier_community_count Number of extension in the community' tier.
+# TYPE registry_tier_community_count counter
+registry_tier_community_count 1 1733945081492
+# HELP registry_type_javascript_count Number of JavaScript extension.
+# TYPE registry_type_javascript_count counter
+registry_type_javascript_count 1 1733945081492
+# HELP registry_category_misc_count Number of extensions in the 'misc' category.
+# TYPE registry_category_misc_count counter
+registry_category_misc_count 1 1733945081492
diff --git a/docs/example-api/tier/community.json b/docs/example-api/tier/community.json
index dbc8d12..3040901 100644
--- a/docs/example-api/tier/community.json
+++ b/docs/example-api/tier/community.json
@@ -4,8 +4,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -69,6 +73,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/tier/official-catalog.json b/docs/example-api/tier/official-catalog.json
index b141f73..8127aef 100644
--- a/docs/example-api/tier/official-catalog.json
+++ b/docs/example-api/tier/official-catalog.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -106,6 +106,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -205,7 +206,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -223,8 +229,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -236,6 +242,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -263,8 +271,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -282,8 +293,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -306,8 +317,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -320,14 +334,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -337,6 +351,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
diff --git a/docs/example-api/tier/official-metrics.json b/docs/example-api/tier/official-metrics.json
new file mode 100644
index 0000000..c3cad19
--- /dev/null
+++ b/docs/example-api/tier/official-metrics.json
@@ -0,0 +1,18 @@
+{
+ "registry_category_data_count": 2,
+ "registry_category_kubernetes_count": 1,
+ "registry_category_observability_count": 1,
+ "registry_category_reporting_count": 1,
+ "registry_extension_count": 4,
+ "registry_grade_a_count": 1,
+ "registry_grade_b_count": 2,
+ "registry_grade_c_count": 1,
+ "registry_issue_examples_count": 1,
+ "registry_issue_smoke_count": 3,
+ "registry_issue_types_count": 1,
+ "registry_product_cloud_count": 1,
+ "registry_product_oss_count": 4,
+ "registry_tier_official_count": 4,
+ "registry_type_javascript_count": 3,
+ "registry_type_output_count": 1
+}
diff --git a/docs/example-api/tier/official-metrics.txt b/docs/example-api/tier/official-metrics.txt
new file mode 100644
index 0000000..46a0aac
--- /dev/null
+++ b/docs/example-api/tier/official-metrics.txt
@@ -0,0 +1,48 @@
+# HELP registry_type_output_count Number of Output extension.
+# TYPE registry_type_output_count counter
+registry_type_output_count 1 1733945081492
+# HELP registry_category_data_count Number of extensions in the 'data' category.
+# TYPE registry_category_data_count counter
+registry_category_data_count 2 1733945081492
+# HELP registry_category_kubernetes_count Number of extensions in the 'kubernetes' category.
+# TYPE registry_category_kubernetes_count counter
+registry_category_kubernetes_count 1 1733945081492
+# HELP registry_extension_count The total number of extensions.
+# TYPE registry_extension_count counter
+registry_extension_count 4 1733945081492
+# HELP registry_grade_a_count Number of A-grade extensions.
+# TYPE registry_grade_a_count counter
+registry_grade_a_count 1 1733945081492
+# HELP registry_issue_types_count Number of extensions without API declaration file.
+# TYPE registry_issue_types_count counter
+registry_issue_types_count 1 1733945081492
+# HELP registry_tier_official_count Number of extensions in the 'official' tier.
+# TYPE registry_tier_official_count counter
+registry_tier_official_count 4 1733945081492
+# HELP registry_grade_b_count Number of B-grade extensions.
+# TYPE registry_grade_b_count counter
+registry_grade_b_count 2 1733945081492
+# HELP registry_product_oss_count Number of extensions available in Grafana k6.
+# TYPE registry_product_oss_count counter
+registry_product_oss_count 4 1733945081492
+# HELP registry_category_observability_count Number of extensions in the 'observability' category.
+# TYPE registry_category_observability_count counter
+registry_category_observability_count 1 1733945081492
+# HELP registry_grade_c_count Number of C-grade extensions.
+# TYPE registry_grade_c_count counter
+registry_grade_c_count 1 1733945081492
+# HELP registry_issue_smoke_count Number of extensions without smoke test script.
+# TYPE registry_issue_smoke_count counter
+registry_issue_smoke_count 3 1733945081492
+# HELP registry_category_reporting_count Number of extensions in the 'reporting' category.
+# TYPE registry_category_reporting_count counter
+registry_category_reporting_count 1 1733945081492
+# HELP registry_issue_examples_count Number of extensions without examples directory.
+# TYPE registry_issue_examples_count counter
+registry_issue_examples_count 1 1733945081492
+# HELP registry_product_cloud_count Number of extensions available in Grafana Cloud k6.
+# TYPE registry_product_cloud_count counter
+registry_product_cloud_count 1 1733945081492
+# HELP registry_type_javascript_count Number of JavaScript extension.
+# TYPE registry_type_javascript_count counter
+registry_type_javascript_count 3 1733945081492
diff --git a/docs/example-api/tier/official.json b/docs/example-api/tier/official.json
index 7d84464..8e5a354 100644
--- a/docs/example-api/tier/official.json
+++ b/docs/example-api/tier/official.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -254,6 +268,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/tier/partner-catalog.json b/docs/example-api/tier/partner-catalog.json
index 32ca2c5..3e671a9 100644
--- a/docs/example-api/tier/partner-catalog.json
+++ b/docs/example-api/tier/partner-catalog.json
@@ -34,6 +34,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-api/tier/partner-metrics.json b/docs/example-api/tier/partner-metrics.json
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/docs/example-api/tier/partner-metrics.json
@@ -0,0 +1 @@
+{}
diff --git a/docs/example-api/tier/partner-metrics.txt b/docs/example-api/tier/partner-metrics.txt
new file mode 100644
index 0000000..e69de29
diff --git a/docs/example-api/tier/partner.json b/docs/example-api/tier/partner.json
index d0d56f9..00acbe1 100644
--- a/docs/example-api/tier/partner.json
+++ b/docs/example-api/tier/partner.json
@@ -34,6 +34,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/example-catalog.json b/docs/example-catalog.json
index c612ee6..4b24aae 100644
--- a/docs/example-catalog.json
+++ b/docs/example-catalog.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -106,6 +106,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
@@ -204,8 +205,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -240,7 +245,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -258,8 +268,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -271,6 +281,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -298,8 +310,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -317,8 +332,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -341,8 +356,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -355,14 +373,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -372,6 +390,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
diff --git a/docs/example.json b/docs/example.json
index 1602961..092264f 100644
--- a/docs/example.json
+++ b/docs/example.json
@@ -5,8 +5,8 @@
"observability"
],
"compliance": {
- "grade": "C",
- "level": 80
+ "grade": "A",
+ "level": 100
},
"description": "Web-based metrics dashboard for k6",
"module": "github.com/grafana/xk6-dashboard",
@@ -24,8 +24,8 @@
"name": "xk6-dashboard",
"owner": "grafana",
"public": true,
- "stars": 343,
- "timestamp": 1719907965,
+ "stars": 367,
+ "timestamp": 1731922735,
"topics": [
"xk6",
"xk6-official",
@@ -76,8 +76,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Load test SQL Servers",
"imports": [
@@ -90,14 +93,14 @@
],
"repo": {
"clone_url": "https://github.com/grafana/xk6-sql.git",
- "description": "k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)",
- "homepage": "https://github.com/grafana/xk6-sql",
+ "description": "Use SQL databases from k6 tests.",
+ "homepage": "http://sql.x.k6.io",
"license": "Apache-2.0",
"name": "xk6-sql",
"owner": "grafana",
"public": true,
- "stars": 110,
- "timestamp": 1725979901,
+ "stars": 120,
+ "timestamp": 1733736611,
"topics": [
"k6",
"sql",
@@ -107,6 +110,7 @@
},
"tier": "official",
"versions": [
+ "v1.0.0",
"v0.4.1",
"v0.4.0",
"v0.3.0",
@@ -123,7 +127,12 @@
],
"compliance": {
"grade": "C",
- "level": 80
+ "issues": [
+ "smoke",
+ "examples",
+ "types"
+ ],
+ "level": 81
},
"description": "Inject faults to test",
"imports": [
@@ -141,8 +150,8 @@
"name": "xk6-disruptor",
"owner": "grafana",
"public": true,
- "stars": 93,
- "timestamp": 1727763654,
+ "stars": 97,
+ "timestamp": 1733824028,
"topics": [
"chaos-engineering",
"fault-injection",
@@ -154,6 +163,8 @@
},
"tier": "official",
"versions": [
+ "v0.3.13",
+ "v0.3.12",
"v0.3.11",
"v0.3.10",
"v0.3.9",
@@ -181,8 +192,11 @@
"data"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "B",
+ "issues": [
+ "smoke"
+ ],
+ "level": 93
},
"description": "Generate random fake data",
"imports": [
@@ -200,8 +214,8 @@
"name": "xk6-faker",
"owner": "grafana",
"public": true,
- "stars": 55,
- "timestamp": 1725533453,
+ "stars": 63,
+ "timestamp": 1733730893,
"topics": [
"xk6"
],
@@ -224,8 +238,12 @@
"misc"
],
"compliance": {
- "grade": "A",
- "level": 100
+ "grade": "C",
+ "issues": [
+ "smoke",
+ "types"
+ ],
+ "level": 87
},
"description": "Print ASCII art banner from k6 test",
"imports": [
@@ -289,6 +307,7 @@
},
"tier": "official",
"versions": [
+ "v0.55.0",
"v0.54.0",
"v0.53.0",
"v0.52.0",
diff --git a/docs/registry.schema.json b/docs/registry.schema.json
index 904a1ee..aa65083 100644
--- a/docs/registry.schema.json
+++ b/docs/registry.schema.json
@@ -587,7 +587,8 @@
"default": 0,
"description": "Number of extensions without CODEOWNERS file."
}
- }
+ },
+ "example": "{\n \"registry_category_authentication_count\": 2,\n \"registry_category_browser_count\": 1,\n \"registry_category_data_count\": 23,\n \"registry_category_kubernetes_count\": 2,\n \"registry_category_messaging_count\": 11,\n \"registry_category_misc_count\": 16,\n \"registry_category_observability_count\": 12,\n \"registry_category_protocol_count\": 10,\n \"registry_category_reporting_count\": 13,\n \"registry_cgo_count\": 1,\n \"registry_extension_count\": 72,\n \"registry_grade_a_count\": 19,\n \"registry_grade_b_count\": 4,\n \"registry_grade_c_count\": 44,\n \"registry_grade_d_count\": 4,\n \"registry_grade_e_count\": 1,\n \"registry_issue_build_count\": 5,\n \"registry_issue_codeowners_count\": 5,\n \"registry_issue_examples_count\": 16,\n \"registry_issue_replace_count\": 2,\n \"registry_issue_smoke_count\": 51,\n \"registry_issue_types_count\": 44,\n \"registry_product_cloud_count\": 4,\n \"registry_product_oss_count\": 71,\n \"registry_product_synthetic_count\": 2,\n \"registry_tier_community_count\": 54,\n \"registry_tier_official_count\": 18,\n \"registry_tier_unofficial_count\": 6,\n \"registry_type_javascript_count\": 57,\n \"registry_type_output_count\": 16\n}\n"
}
}
}
diff --git a/metrics.go b/metrics.go
index 4750f88..92f2035 100644
--- a/metrics.go
+++ b/metrics.go
@@ -1,14 +1,25 @@
package k6registry
-import "strings"
-
-// CalculateMetrics calculates registry metrics.
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "strings"
+ "time"
+)
+
+// CalculateMetrics calculates registry metrics for all extensions.
func CalculateMetrics(reg Registry) *Metrics {
+ return CalculateMetricsCond(reg, func(_ Extension) bool { return true })
+}
+
+// CalculateMetricsCond calculates registry metrics for subset of extensions.
+func CalculateMetricsCond(reg Registry, predicate func(Extension) bool) *Metrics {
const k6Module = "go.k6.io/k6"
m := new(Metrics)
for _, ext := range reg {
- if ext.Module == k6Module {
+ if ext.Module == k6Module || !predicate(ext) {
continue
}
@@ -156,3 +167,32 @@ func (m *Metrics) issue(issue string) {
default:
}
}
+
+// MarshalPrometheus marshals metrics in Prometheus text format.
+func (m *Metrics) MarshalPrometheus() ([]byte, error) {
+ data, err := json.Marshal(m)
+ if err != nil {
+ return nil, err
+ }
+
+ var dict map[string]int
+
+ if err := json.Unmarshal(data, &dict); err != nil {
+ return nil, err
+ }
+
+ var buff bytes.Buffer
+
+ now := time.Now().UnixMilli()
+
+ for name, value := range dict {
+ if help, hasHelp := metricsHelps[name]; hasHelp {
+ fmt.Fprintf(&buff, "# HELP %s %s\n", name, help)
+ }
+
+ fmt.Fprintf(&buff, "# TYPE %s counter\n", name)
+ fmt.Fprintf(&buff, "%s %d %d\n", name, value, now)
+ }
+
+ return buff.Bytes(), nil
+}
diff --git a/metrics_gen.go b/metrics_gen.go
new file mode 100644
index 0000000..1ce5e48
--- /dev/null
+++ b/metrics_gen.go
@@ -0,0 +1,6 @@
+// Code generated by metrics_gen.sh, DO NOT EDIT.
+
+package k6registry
+
+var metricsHelps = map[string]string {"registry_extension_count":"The total number of extensions.","registry_tier_official_count":"Number of extensions in the 'official' tier.","registry_tier_unofficial_count":"Number of unofficial extensions.","registry_tier_partner_count":"Number of extensions in the 'partner' tier.","registry_tier_community_count":"Number of extension in the community' tier.","registry_type_javascript_count":"Number of JavaScript extension.","registry_type_output_count":"Number of Output extension.","registry_product_cloud_count":"Number of extensions available in Grafana Cloud k6.","registry_product_oss_count":"Number of extensions available in Grafana k6.","registry_product_synthetic_count":"Number of extensions available in Synthetic Monitoring.","registry_grade_a_count":"Number of A-grade extensions.","registry_grade_b_count":"Number of B-grade extensions.","registry_grade_c_count":"Number of C-grade extensions.","registry_grade_d_count":"Number of D-grade extensions.","registry_grade_e_count":"Number of E-grade extensions.","registry_grade_f_count":"Number of F-grade extensions.","registry_cgo_count":"Number of extensions requiring cgo.","registry_category_authentication_count":"Number of extensions in the 'authentication' category.","registry_category_browser_count":"Number of extensions in the 'browser' category.","registry_category_data_count":"Number of extensions in the 'data' category.","registry_category_kubernetes_count":"Number of extensions in the 'kubernetes' category.","registry_category_messaging_count":"Number of extensions in the 'messaging' category.","registry_category_misc_count":"Number of extensions in the 'misc' category.","registry_category_observability_count":"Number of extensions in the 'observability' category.","registry_category_protocol_count":"Number of extensions in the 'protocol' category.","registry_category_reporting_count":"Number of extensions in the 'reporting' category.","registry_issue_module_count":"Number of extensions without valid go.mod.","registry_issue_replace_count":"Number of extensions with replace directive in go.mod.","registry_issue_readme_count":"Number of extensions without readme file.","registry_issue_examples_count":"Number of extensions without examples directory.","registry_issue_license_count":"Number of extensions without suitable OSS license.","registry_issue_git_count":"Number of extensions without git workdir.","registry_issue_versions_count":"Number of extensions without semantic versioning git tags.","registry_issue_build_count":"Number of extensions not buildable with the latest k6 version.","registry_issue_smoke_count":"Number of extensions without smoke test script.","registry_issue_types_count":"Number of extensions without API declaration file.","registry_issue_codeowners_count":"Number of extensions without CODEOWNERS file."}
+
diff --git a/metrics_gen.sh b/metrics_gen.sh
new file mode 100644
index 0000000..9abf2a5
--- /dev/null
+++ b/metrics_gen.sh
@@ -0,0 +1,8 @@
+cat > metrics_gen.go <