From dc20b776bb2321a015c40871b4c86ead89d79b33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20L=C3=B3pez=20de=20la=20Franca=20Beltran?= <5459617+joanlopez@users.noreply.github.com> Date: Thu, 5 Jan 2023 22:48:13 +0100 Subject: [PATCH] Kindsys: New schema for Kinds report (#61034) * New (desired) report output * Kinds: New schema for kinds report * Update report.json * Sort dimension items --- pkg/kindsys/report.go | 81 ++++-- pkg/kindsys/report.json | 589 ++++++++++++++++++++++++++-------------- 2 files changed, 453 insertions(+), 217 deletions(-) diff --git a/pkg/kindsys/report.go b/pkg/kindsys/report.go index c8382908c0d..7ede815620e 100644 --- a/pkg/kindsys/report.go +++ b/pkg/kindsys/report.go @@ -14,6 +14,7 @@ import ( "strings" "github.com/grafana/codejen" + "github.com/grafana/grafana/pkg/kindsys" "github.com/grafana/grafana/pkg/plugins/pfs/corelist" "github.com/grafana/grafana/pkg/registry/corekind" @@ -54,27 +55,71 @@ var plannedCoreKinds = []string{ } type KindStateReport struct { - Core []kindsys.CoreProperties `json:"core"` - Composable []kindsys.ComposableProperties `json:"composable"` + Kinds map[string]kindsys.SomeKindProperties `json:"kinds"` + Dimensions map[string]Dimension `json:"dimensions"` } -func emptyKindStateReport() KindStateReport { - return KindStateReport{ - Core: make([]kindsys.CoreProperties, 0), - Composable: make([]kindsys.ComposableProperties, 0), +func (r *KindStateReport) add(k kindsys.SomeKindProperties, category string) { + kName := k.Common().MachineName + + r.Kinds[kName] = k + r.Dimensions["maturity"][k.Common().Maturity.String()].add(kName) + r.Dimensions["category"][category].add(kName) +} + +type Dimension map[string]*DimensionValue + +type DimensionValue struct { + Name string `json:"name"` + Items []string `json:"items"` + Count int `json:"count"` +} + +func (dv *DimensionValue) add(s string) { + dv.Count++ + dv.Items = append(dv.Items, s) +} + +// emptyKindStateReport is used to ensure certain +// dimension values are present (even if empty) in +// the final report. +func emptyKindStateReport() *KindStateReport { + return &KindStateReport{ + Kinds: make(map[string]kindsys.SomeKindProperties), + Dimensions: map[string]Dimension{ + "maturity": { + "planned": emptyDimensionValue("planned"), + "merged": emptyDimensionValue("merged"), + "experimental": emptyDimensionValue("experimental"), + "stable": emptyDimensionValue("stable"), + "mature": emptyDimensionValue("mature"), + }, + "category": { + "core": emptyDimensionValue("core"), + "composable": emptyDimensionValue("composable"), + }, + }, } } -func buildKindStateReport() KindStateReport { +func emptyDimensionValue(name string) *DimensionValue { + return &DimensionValue{ + Name: name, + Items: make([]string, 0), + Count: 0, + } +} + +func buildKindStateReport() *KindStateReport { r := emptyKindStateReport() b := corekind.NewBase(nil) seen := make(map[string]bool) for _, k := range b.All() { seen[k.Props().Common().Name] = true - switch props := k.Props().(type) { + switch k.Props().(type) { case kindsys.CoreProperties: - r.Core = append(r.Core, props) + r.add(k.Props(), "core") } } @@ -82,7 +127,8 @@ func buildKindStateReport() KindStateReport { if seen[kn] { continue } - r.Core = append(r.Core, kindsys.CoreProperties{ + + r.add(kindsys.CoreProperties{ CommonProperties: kindsys.CommonProperties{ Name: kn, PluralName: kn + "s", @@ -90,7 +136,7 @@ func buildKindStateReport() KindStateReport { PluralMachineName: machinize(kn) + "s", Maturity: "planned", }, - }) + }, "core") } all := kindsys.AllSlots(nil) @@ -114,17 +160,16 @@ func buildKindStateReport() KindStateReport { props.CommonProperties.Maturity = "merged" props.CurrentVersion = ck.Latest().Version() } - r.Composable = append(r.Composable, props) + r.add(props, "composable") } } } - sort.Slice(r.Core, func(i, j int) bool { - return r.Core[i].Common().Name < r.Core[j].Common().Name - }) - sort.Slice(r.Composable, func(i, j int) bool { - return r.Composable[i].Common().Name < r.Composable[j].Common().Name - }) + for _, d := range r.Dimensions { + for _, dv := range d { + sort.Strings(dv.Items) + } + } return r } diff --git a/pkg/kindsys/report.json b/pkg/kindsys/report.json index a307268e80e..34e41bce973 100644 --- a/pkg/kindsys/report.json +++ b/pkg/kindsys/report.json @@ -1,140 +1,6 @@ { - "core": [ - { - "name": "APIKey", - "pluralName": "APIKeys", - "machineName": "apikey", - "pluralMachineName": "apikeys", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "Dashboard", - "pluralName": "Dashboards", - "machineName": "dashboard", - "pluralMachineName": "dashboards", - "lineageIsGroup": false, - "maturity": "merged", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "DataSource", - "pluralName": "DataSources", - "machineName": "datasource", - "pluralMachineName": "datasources", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "Folder", - "pluralName": "Folders", - "machineName": "folder", - "pluralMachineName": "folders", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "Playlist", - "pluralName": "Playlists", - "machineName": "playlist", - "pluralMachineName": "playlists", - "lineageIsGroup": false, - "maturity": "merged", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "Query", - "pluralName": "Querys", - "machineName": "query", - "pluralMachineName": "querys", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "QueryHistory", - "pluralName": "QueryHistorys", - "machineName": "queryhistory", - "pluralMachineName": "queryhistorys", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "ServiceAccount", - "pluralName": "ServiceAccounts", - "machineName": "serviceaccount", - "pluralMachineName": "serviceaccounts", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "Team", - "pluralName": "Teams", - "machineName": "team", - "pluralMachineName": "teams", - "lineageIsGroup": false, - "maturity": "merged", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "Thumb", - "pluralName": "Thumbs", - "machineName": "thumb", - "pluralMachineName": "thumbs", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - }, - { - "name": "User", - "pluralName": "Users", - "machineName": "user", - "pluralMachineName": "users", - "lineageIsGroup": false, - "maturity": "planned", - "currentVersion": [ - 0, - 0 - ] - } - ], - "composable": [ - { + "kinds": { + "alertgroups_panel": { "name": "AlertGroups-Panel", "pluralName": "AlertGroups-Panels", "machineName": "alertgroups_panel", @@ -146,7 +12,7 @@ 0 ] }, - { + "alertlist_panel": { "name": "Alertlist-Panel", "pluralName": "Alertlist-Panels", "machineName": "alertlist_panel", @@ -158,7 +24,7 @@ 0 ] }, - { + "alertmanager_dsoptions": { "name": "Alertmanager-DSOptions", "pluralName": "Alertmanager-DSOptionss", "machineName": "alertmanager_dsoptions", @@ -170,7 +36,7 @@ 0 ] }, - { + "alertmanager_query": { "name": "Alertmanager-Query", "pluralName": "Alertmanager-Querys", "machineName": "alertmanager_query", @@ -182,7 +48,7 @@ 0 ] }, - { + "annolist_panel": { "name": "Annolist-Panel", "pluralName": "Annolist-Panels", "machineName": "annolist_panel", @@ -194,7 +60,19 @@ 0 ] }, - { + "apikey": { + "name": "APIKey", + "pluralName": "APIKeys", + "machineName": "apikey", + "pluralMachineName": "apikeys", + "lineageIsGroup": false, + "maturity": "planned", + "currentVersion": [ + 0, + 0 + ] + }, + "barchart_panel": { "name": "Barchart-Panel", "pluralName": "Barchart-Panels", "machineName": "barchart_panel", @@ -206,7 +84,7 @@ 0 ] }, - { + "bargauge_panel": { "name": "Bargauge-Panel", "pluralName": "Bargauge-Panels", "machineName": "bargauge_panel", @@ -218,7 +96,7 @@ 0 ] }, - { + "cloudwatch_dsoptions": { "name": "Cloudwatch-DSOptions", "pluralName": "Cloudwatch-DSOptionss", "machineName": "cloudwatch_dsoptions", @@ -230,7 +108,7 @@ 0 ] }, - { + "cloudwatch_query": { "name": "Cloudwatch-Query", "pluralName": "Cloudwatch-Querys", "machineName": "cloudwatch_query", @@ -242,7 +120,19 @@ 0 ] }, - { + "dashboard": { + "name": "Dashboard", + "pluralName": "Dashboards", + "machineName": "dashboard", + "pluralMachineName": "dashboards", + "lineageIsGroup": false, + "maturity": "merged", + "currentVersion": [ + 0, + 0 + ] + }, + "dashboard_dsoptions": { "name": "Dashboard-DSOptions", "pluralName": "Dashboard-DSOptionss", "machineName": "dashboard_dsoptions", @@ -254,7 +144,7 @@ 0 ] }, - { + "dashboard_query": { "name": "Dashboard-Query", "pluralName": "Dashboard-Querys", "machineName": "dashboard_query", @@ -266,7 +156,7 @@ 0 ] }, - { + "dashlist_panel": { "name": "Dashlist-Panel", "pluralName": "Dashlist-Panels", "machineName": "dashlist_panel", @@ -278,7 +168,19 @@ 0 ] }, - { + "datasource": { + "name": "DataSource", + "pluralName": "DataSources", + "machineName": "datasource", + "pluralMachineName": "datasources", + "lineageIsGroup": false, + "maturity": "planned", + "currentVersion": [ + 0, + 0 + ] + }, + "debug_panel": { "name": "Debug-Panel", "pluralName": "Debug-Panels", "machineName": "debug_panel", @@ -290,7 +192,7 @@ 0 ] }, - { + "elasticsearch_dsoptions": { "name": "Elasticsearch-DSOptions", "pluralName": "Elasticsearch-DSOptionss", "machineName": "elasticsearch_dsoptions", @@ -302,7 +204,7 @@ 0 ] }, - { + "elasticsearch_query": { "name": "Elasticsearch-Query", "pluralName": "Elasticsearch-Querys", "machineName": "elasticsearch_query", @@ -314,7 +216,7 @@ 0 ] }, - { + "flamegraph_panel": { "name": "Flamegraph-Panel", "pluralName": "Flamegraph-Panels", "machineName": "flamegraph_panel", @@ -326,7 +228,19 @@ 0 ] }, - { + "folder": { + "name": "Folder", + "pluralName": "Folders", + "machineName": "folder", + "pluralMachineName": "folders", + "lineageIsGroup": false, + "maturity": "planned", + "currentVersion": [ + 0, + 0 + ] + }, + "gauge_panel": { "name": "Gauge-Panel", "pluralName": "Gauge-Panels", "machineName": "gauge_panel", @@ -338,7 +252,7 @@ 0 ] }, - { + "geomap_panel": { "name": "Geomap-Panel", "pluralName": "Geomap-Panels", "machineName": "geomap_panel", @@ -350,7 +264,7 @@ 0 ] }, - { + "gettingstarted_panel": { "name": "Gettingstarted-Panel", "pluralName": "Gettingstarted-Panels", "machineName": "gettingstarted_panel", @@ -362,7 +276,7 @@ 0 ] }, - { + "grafana_azure_monitor_datasource_dsoptions": { "name": "Grafana-Azure-Monitor-Datasource-DSOptions", "pluralName": "Grafana-Azure-Monitor-Datasource-DSOptionss", "machineName": "grafana_azure_monitor_datasource_dsoptions", @@ -374,7 +288,7 @@ 0 ] }, - { + "grafana_azure_monitor_datasource_query": { "name": "Grafana-Azure-Monitor-Datasource-Query", "pluralName": "Grafana-Azure-Monitor-Datasource-Querys", "machineName": "grafana_azure_monitor_datasource_query", @@ -386,7 +300,7 @@ 0 ] }, - { + "grafana_dsoptions": { "name": "Grafana-DSOptions", "pluralName": "Grafana-DSOptionss", "machineName": "grafana_dsoptions", @@ -398,7 +312,7 @@ 0 ] }, - { + "grafana_query": { "name": "Grafana-Query", "pluralName": "Grafana-Querys", "machineName": "grafana_query", @@ -410,7 +324,7 @@ 0 ] }, - { + "graph_panel": { "name": "Graph-Panel", "pluralName": "Graph-Panels", "machineName": "graph_panel", @@ -422,7 +336,7 @@ 0 ] }, - { + "graphite_dsoptions": { "name": "Graphite-DSOptions", "pluralName": "Graphite-DSOptionss", "machineName": "graphite_dsoptions", @@ -434,7 +348,7 @@ 0 ] }, - { + "graphite_query": { "name": "Graphite-Query", "pluralName": "Graphite-Querys", "machineName": "graphite_query", @@ -446,7 +360,7 @@ 0 ] }, - { + "histogram_panel": { "name": "Histogram-Panel", "pluralName": "Histogram-Panels", "machineName": "histogram_panel", @@ -458,7 +372,7 @@ 0 ] }, - { + "icon_panel": { "name": "Icon-Panel", "pluralName": "Icon-Panels", "machineName": "icon_panel", @@ -470,7 +384,7 @@ 0 ] }, - { + "jaeger_dsoptions": { "name": "Jaeger-DSOptions", "pluralName": "Jaeger-DSOptionss", "machineName": "jaeger_dsoptions", @@ -482,7 +396,7 @@ 0 ] }, - { + "jaeger_query": { "name": "Jaeger-Query", "pluralName": "Jaeger-Querys", "machineName": "jaeger_query", @@ -494,7 +408,7 @@ 0 ] }, - { + "live_panel": { "name": "Live-Panel", "pluralName": "Live-Panels", "machineName": "live_panel", @@ -506,7 +420,7 @@ 0 ] }, - { + "logs_panel": { "name": "Logs-Panel", "pluralName": "Logs-Panels", "machineName": "logs_panel", @@ -518,7 +432,7 @@ 0 ] }, - { + "loki_dsoptions": { "name": "Loki-DSOptions", "pluralName": "Loki-DSOptionss", "machineName": "loki_dsoptions", @@ -530,7 +444,7 @@ 0 ] }, - { + "loki_query": { "name": "Loki-Query", "pluralName": "Loki-Querys", "machineName": "loki_query", @@ -542,7 +456,7 @@ 0 ] }, - { + "mssql_dsoptions": { "name": "Mssql-DSOptions", "pluralName": "Mssql-DSOptionss", "machineName": "mssql_dsoptions", @@ -554,7 +468,7 @@ 0 ] }, - { + "mssql_query": { "name": "Mssql-Query", "pluralName": "Mssql-Querys", "machineName": "mssql_query", @@ -566,7 +480,7 @@ 0 ] }, - { + "mysql_dsoptions": { "name": "Mysql-DSOptions", "pluralName": "Mysql-DSOptionss", "machineName": "mysql_dsoptions", @@ -578,7 +492,7 @@ 0 ] }, - { + "mysql_query": { "name": "Mysql-Query", "pluralName": "Mysql-Querys", "machineName": "mysql_query", @@ -590,7 +504,7 @@ 0 ] }, - { + "news_panel": { "name": "News-Panel", "pluralName": "News-Panels", "machineName": "news_panel", @@ -602,7 +516,7 @@ 0 ] }, - { + "nodegraph_panel": { "name": "NodeGraph-Panel", "pluralName": "NodeGraph-Panels", "machineName": "nodegraph_panel", @@ -614,7 +528,7 @@ 0 ] }, - { + "parca_dsoptions": { "name": "Parca-DSOptions", "pluralName": "Parca-DSOptionss", "machineName": "parca_dsoptions", @@ -626,7 +540,7 @@ 0 ] }, - { + "parca_query": { "name": "Parca-Query", "pluralName": "Parca-Querys", "machineName": "parca_query", @@ -638,7 +552,7 @@ 0 ] }, - { + "phlare_dsoptions": { "name": "Phlare-DSOptions", "pluralName": "Phlare-DSOptionss", "machineName": "phlare_dsoptions", @@ -650,7 +564,7 @@ 0 ] }, - { + "phlare_query": { "name": "Phlare-Query", "pluralName": "Phlare-Querys", "machineName": "phlare_query", @@ -662,7 +576,7 @@ 0 ] }, - { + "piechart_panel": { "name": "Piechart-Panel", "pluralName": "Piechart-Panels", "machineName": "piechart_panel", @@ -674,7 +588,19 @@ 0 ] }, - { + "playlist": { + "name": "Playlist", + "pluralName": "Playlists", + "machineName": "playlist", + "pluralMachineName": "playlists", + "lineageIsGroup": false, + "maturity": "merged", + "currentVersion": [ + 0, + 0 + ] + }, + "postgres_dsoptions": { "name": "Postgres-DSOptions", "pluralName": "Postgres-DSOptionss", "machineName": "postgres_dsoptions", @@ -686,7 +612,7 @@ 0 ] }, - { + "postgres_query": { "name": "Postgres-Query", "pluralName": "Postgres-Querys", "machineName": "postgres_query", @@ -698,7 +624,7 @@ 0 ] }, - { + "prometheus_dsoptions": { "name": "Prometheus-DSOptions", "pluralName": "Prometheus-DSOptionss", "machineName": "prometheus_dsoptions", @@ -710,7 +636,7 @@ 0 ] }, - { + "prometheus_query": { "name": "Prometheus-Query", "pluralName": "Prometheus-Querys", "machineName": "prometheus_query", @@ -722,7 +648,43 @@ 0 ] }, - { + "query": { + "name": "Query", + "pluralName": "Querys", + "machineName": "query", + "pluralMachineName": "querys", + "lineageIsGroup": false, + "maturity": "planned", + "currentVersion": [ + 0, + 0 + ] + }, + "queryhistory": { + "name": "QueryHistory", + "pluralName": "QueryHistorys", + "machineName": "queryhistory", + "pluralMachineName": "queryhistorys", + "lineageIsGroup": false, + "maturity": "planned", + "currentVersion": [ + 0, + 0 + ] + }, + "serviceaccount": { + "name": "ServiceAccount", + "pluralName": "ServiceAccounts", + "machineName": "serviceaccount", + "pluralMachineName": "serviceaccounts", + "lineageIsGroup": false, + "maturity": "planned", + "currentVersion": [ + 0, + 0 + ] + }, + "stackdriver_dsoptions": { "name": "Stackdriver-DSOptions", "pluralName": "Stackdriver-DSOptionss", "machineName": "stackdriver_dsoptions", @@ -734,7 +696,7 @@ 0 ] }, - { + "stackdriver_query": { "name": "Stackdriver-Query", "pluralName": "Stackdriver-Querys", "machineName": "stackdriver_query", @@ -746,7 +708,7 @@ 0 ] }, - { + "stat_panel": { "name": "Stat-Panel", "pluralName": "Stat-Panels", "machineName": "stat_panel", @@ -758,7 +720,7 @@ 0 ] }, - { + "table_old_panel": { "name": "Table-Old-Panel", "pluralName": "Table-Old-Panels", "machineName": "table_old_panel", @@ -770,7 +732,19 @@ 0 ] }, - { + "team": { + "name": "Team", + "pluralName": "Teams", + "machineName": "team", + "pluralMachineName": "teams", + "lineageIsGroup": false, + "maturity": "merged", + "currentVersion": [ + 0, + 0 + ] + }, + "tempo_dsoptions": { "name": "Tempo-DSOptions", "pluralName": "Tempo-DSOptionss", "machineName": "tempo_dsoptions", @@ -782,7 +756,7 @@ 0 ] }, - { + "tempo_query": { "name": "Tempo-Query", "pluralName": "Tempo-Querys", "machineName": "tempo_query", @@ -794,7 +768,7 @@ 0 ] }, - { + "testdata_dsoptions": { "name": "Testdata-DSOptions", "pluralName": "Testdata-DSOptionss", "machineName": "testdata_dsoptions", @@ -806,7 +780,7 @@ 0 ] }, - { + "testdata_query": { "name": "Testdata-Query", "pluralName": "Testdata-Querys", "machineName": "testdata_query", @@ -818,7 +792,7 @@ 0 ] }, - { + "text_panel": { "name": "Text-Panel", "pluralName": "Text-Panels", "machineName": "text_panel", @@ -830,7 +804,19 @@ 0 ] }, - { + "thumb": { + "name": "Thumb", + "pluralName": "Thumbs", + "machineName": "thumb", + "pluralMachineName": "thumbs", + "lineageIsGroup": false, + "maturity": "planned", + "currentVersion": [ + 0, + 0 + ] + }, + "traces_panel": { "name": "Traces-Panel", "pluralName": "Traces-Panels", "machineName": "traces_panel", @@ -842,7 +828,19 @@ 0 ] }, - { + "user": { + "name": "User", + "pluralName": "Users", + "machineName": "user", + "pluralMachineName": "users", + "lineageIsGroup": false, + "maturity": "planned", + "currentVersion": [ + 0, + 0 + ] + }, + "welcome_panel": { "name": "Welcome-Panel", "pluralName": "Welcome-Panels", "machineName": "welcome_panel", @@ -854,7 +852,7 @@ 0 ] }, - { + "xychart_panel": { "name": "Xychart-Panel", "pluralName": "Xychart-Panels", "machineName": "xychart_panel", @@ -866,7 +864,7 @@ 0 ] }, - { + "zipkin_dsoptions": { "name": "Zipkin-DSOptions", "pluralName": "Zipkin-DSOptionss", "machineName": "zipkin_dsoptions", @@ -878,7 +876,7 @@ 0 ] }, - { + "zipkin_query": { "name": "Zipkin-Query", "pluralName": "Zipkin-Querys", "machineName": "zipkin_query", @@ -890,5 +888,198 @@ 0 ] } - ] + }, + "dimensions": { + "category": { + "composable": { + "name": "composable", + "items": [ + "alertgroups_panel", + "alertlist_panel", + "alertmanager_dsoptions", + "alertmanager_query", + "annolist_panel", + "barchart_panel", + "bargauge_panel", + "cloudwatch_dsoptions", + "cloudwatch_query", + "dashboard_dsoptions", + "dashboard_query", + "dashlist_panel", + "debug_panel", + "elasticsearch_dsoptions", + "elasticsearch_query", + "flamegraph_panel", + "gauge_panel", + "geomap_panel", + "gettingstarted_panel", + "grafana_azure_monitor_datasource_dsoptions", + "grafana_azure_monitor_datasource_query", + "grafana_dsoptions", + "grafana_query", + "graph_panel", + "graphite_dsoptions", + "graphite_query", + "histogram_panel", + "icon_panel", + "jaeger_dsoptions", + "jaeger_query", + "live_panel", + "logs_panel", + "loki_dsoptions", + "loki_query", + "mssql_dsoptions", + "mssql_query", + "mysql_dsoptions", + "mysql_query", + "news_panel", + "nodegraph_panel", + "parca_dsoptions", + "parca_query", + "phlare_dsoptions", + "phlare_query", + "piechart_panel", + "postgres_dsoptions", + "postgres_query", + "prometheus_dsoptions", + "prometheus_query", + "stackdriver_dsoptions", + "stackdriver_query", + "stat_panel", + "table_old_panel", + "tempo_dsoptions", + "tempo_query", + "testdata_dsoptions", + "testdata_query", + "text_panel", + "traces_panel", + "welcome_panel", + "xychart_panel", + "zipkin_dsoptions", + "zipkin_query" + ], + "count": 63 + }, + "core": { + "name": "core", + "items": [ + "apikey", + "dashboard", + "datasource", + "folder", + "playlist", + "query", + "queryhistory", + "serviceaccount", + "team", + "thumb", + "user" + ], + "count": 11 + } + }, + "maturity": { + "experimental": { + "name": "experimental", + "items": [], + "count": 0 + }, + "mature": { + "name": "mature", + "items": [], + "count": 0 + }, + "merged": { + "name": "merged", + "items": [ + "annolist_panel", + "barchart_panel", + "bargauge_panel", + "dashboard", + "dashlist_panel", + "gauge_panel", + "histogram_panel", + "news_panel", + "piechart_panel", + "playlist", + "stat_panel", + "team", + "text_panel" + ], + "count": 13 + }, + "planned": { + "name": "planned", + "items": [ + "alertgroups_panel", + "alertlist_panel", + "alertmanager_dsoptions", + "alertmanager_query", + "apikey", + "cloudwatch_dsoptions", + "cloudwatch_query", + "dashboard_dsoptions", + "dashboard_query", + "datasource", + "debug_panel", + "elasticsearch_dsoptions", + "elasticsearch_query", + "flamegraph_panel", + "folder", + "geomap_panel", + "gettingstarted_panel", + "grafana_azure_monitor_datasource_dsoptions", + "grafana_azure_monitor_datasource_query", + "grafana_dsoptions", + "grafana_query", + "graph_panel", + "graphite_dsoptions", + "graphite_query", + "icon_panel", + "jaeger_dsoptions", + "jaeger_query", + "live_panel", + "logs_panel", + "loki_dsoptions", + "loki_query", + "mssql_dsoptions", + "mssql_query", + "mysql_dsoptions", + "mysql_query", + "nodegraph_panel", + "parca_dsoptions", + "parca_query", + "phlare_dsoptions", + "phlare_query", + "postgres_dsoptions", + "postgres_query", + "prometheus_dsoptions", + "prometheus_query", + "query", + "queryhistory", + "serviceaccount", + "stackdriver_dsoptions", + "stackdriver_query", + "table_old_panel", + "tempo_dsoptions", + "tempo_query", + "testdata_dsoptions", + "testdata_query", + "thumb", + "traces_panel", + "user", + "welcome_panel", + "xychart_panel", + "zipkin_dsoptions", + "zipkin_query" + ], + "count": 61 + }, + "stable": { + "name": "stable", + "items": [], + "count": 0 + } + } + } } \ No newline at end of file