From c0f01c30c8b5cb9996ddf5a099b2fe9073d70a8e Mon Sep 17 00:00:00 2001 From: "Alyssa (Bull) Joyner" <58453566+alyssabull@users.noreply.github.com> Date: Thu, 1 Aug 2024 10:59:40 -0600 Subject: [PATCH] Add CockroachDB as an enterprise data source (#90860) --- docs/sources/introduction/grafana-enterprise.md | 1 + .../datasources/state/buildCategories.test.ts | 2 +- .../datasources/state/buildCategories.ts | 6 ++++++ public/img/plugins/cockroachdb.jpg | Bin 0 -> 19276 bytes 4 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 public/img/plugins/cockroachdb.jpg diff --git a/docs/sources/introduction/grafana-enterprise.md b/docs/sources/introduction/grafana-enterprise.md index 2d29889a0d6..2eae40170b8 100644 --- a/docs/sources/introduction/grafana-enterprise.md +++ b/docs/sources/introduction/grafana-enterprise.md @@ -80,6 +80,7 @@ With a Grafana Enterprise license, you also get access to premium data sources, - [Azure Devops](/grafana/plugins/grafana-azuredevops-datasource) - [Catchpoint](/grafana/plugins/grafana-catchpoint-datasource) - [Cloudflare](/grafana/plugins/grafana-cloudflare-datasource) +- [CockroachDB](/grafana/plugins/grafana-cockroachdb-datasource) - [Databricks](/grafana/plugins/grafana-databricks-datasource) - [DataDog](/grafana/plugins/grafana-datadog-datasource) - [Dynatrace](/grafana/plugins/grafana-dynatrace-datasource) diff --git a/public/app/features/datasources/state/buildCategories.test.ts b/public/app/features/datasources/state/buildCategories.test.ts index 8d964b29288..ad39fa4908d 100644 --- a/public/app/features/datasources/state/buildCategories.test.ts +++ b/public/app/features/datasources/state/buildCategories.test.ts @@ -53,7 +53,7 @@ describe('buildCategories', () => { it('should add enterprise phantom plugins', () => { const enterprisePluginsCategory = categories[3]; expect(enterprisePluginsCategory.title).toBe('Enterprise plugins'); - expect(enterprisePluginsCategory.plugins.length).toBe(23); + expect(enterprisePluginsCategory.plugins.length).toBe(24); expect(enterprisePluginsCategory.plugins[0].name).toBe('Adobe Analytics'); expect(enterprisePluginsCategory.plugins[enterprisePluginsCategory.plugins.length - 1].name).toBe('Wavefront'); }); diff --git a/public/app/features/datasources/state/buildCategories.ts b/public/app/features/datasources/state/buildCategories.ts index d8288e02aaf..6f59f4da835 100644 --- a/public/app/features/datasources/state/buildCategories.ts +++ b/public/app/features/datasources/state/buildCategories.ts @@ -233,6 +233,12 @@ function getEnterprisePhantomPlugins(): DataSourcePluginMeta[] { name: 'Cloudflare', imgUrl: 'public/img/plugins/cloudflare.jpg', }), + getPhantomPlugin({ + id: 'grafana-cockroachdb-datasource', + description: 'CockroachDB datasource', + name: 'CockroachDB', + imgUrl: 'public/img/plugins/cockroachdb.jpg', + }), ]; } diff --git a/public/img/plugins/cockroachdb.jpg b/public/img/plugins/cockroachdb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4edbb1945d499d6999d979c5ce4bccb8be10414e GIT binary patch literal 19276 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 n(bZo){}llIulDtyuKOz>