mirror of https://github.com/grafana/grafana
Phlare: Use data query schema (#62112)
* Create cue file and gen ts/go types * Use generated schema in ts/go * Run make den-cue to update report * Manually extend Phlare query * Updates * Add default queryType * Run make gen-cue to Update report.jsonpull/62552/head^2
parent
30b4205521
commit
f3c5e85559
@ -0,0 +1,22 @@ |
||||
--- |
||||
keywords: |
||||
- grafana |
||||
- schema |
||||
title: PhlareDataQuery kind |
||||
--- |
||||
> Both documentation generation and kinds schemas are in active development and subject to change without prior notice. |
||||
|
||||
# PhlareDataQuery kind |
||||
|
||||
## Maturity: experimental |
||||
## Version: 0.0 |
||||
|
||||
## Properties |
||||
|
||||
| Property | Type | Required | Description | |
||||
|-----------------|----------|----------|-----------------------------------------------------| |
||||
| `groupBy` | string[] | No | Allows to group the results. | |
||||
| `labelSelector` | string | No | Specifies the query label selectors. Default: `{}`. | |
||||
| `profileTypeId` | string | No | Specifies the type of profile to query. | |
||||
|
||||
|
@ -0,0 +1,53 @@ |
||||
// Code generated - EDITING IS FUTILE. DO NOT EDIT.
|
||||
//
|
||||
// Generated by:
|
||||
// public/app/plugins/gen.go
|
||||
// Using jennies:
|
||||
// PluginGoTypesJenny
|
||||
//
|
||||
// Run 'make gen-cue' from repository root to regenerate.
|
||||
|
||||
package dataquery |
||||
|
||||
// Defines values for PhlareQueryType.
|
||||
const ( |
||||
PhlareQueryTypeBoth PhlareQueryType = "both" |
||||
|
||||
PhlareQueryTypeMetrics PhlareQueryType = "metrics" |
||||
|
||||
PhlareQueryTypeProfile PhlareQueryType = "profile" |
||||
) |
||||
|
||||
// PhlareDataQuery defines model for PhlareDataQuery.
|
||||
type PhlareDataQuery struct { |
||||
// For mixed data sources the selected datasource is on the query level.
|
||||
// For non mixed scenarios this is undefined.
|
||||
// TODO find a better way to do this ^ that's friendly to schema
|
||||
// TODO this shouldn't be unknown but DataSourceRef | null
|
||||
Datasource *interface{} `json:"datasource,omitempty"` |
||||
|
||||
// Allows to group the results.
|
||||
GroupBy []string `json:"groupBy"` |
||||
|
||||
// true if query is disabled (ie should not be returned to the dashboard)
|
||||
Hide *bool `json:"hide,omitempty"` |
||||
|
||||
// Unique, guid like, string used in explore mode
|
||||
Key *string `json:"key,omitempty"` |
||||
|
||||
// Specifies the query label selectors.
|
||||
LabelSelector string `json:"labelSelector"` |
||||
|
||||
// Specifies the type of profile to query.
|
||||
ProfileTypeId string `json:"profileTypeId"` |
||||
|
||||
// Specify the query flavor
|
||||
// TODO make this required and give it a default
|
||||
QueryType *string `json:"queryType,omitempty"` |
||||
|
||||
// A - Z
|
||||
RefId string `json:"refId"` |
||||
} |
||||
|
||||
// PhlareQueryType defines model for PhlareQueryType.
|
||||
type PhlareQueryType string |
@ -0,0 +1,48 @@ |
||||
// Copyright 2023 Grafana Labs |
||||
// |
||||
// Licensed under the Apache License, Version 2.0 (the "License"); |
||||
// you may not use this file except in compliance with the License. |
||||
// You may obtain a copy of the License at |
||||
// |
||||
// http://www.apache.org/licenses/LICENSE-2.0 |
||||
// |
||||
// Unless required by applicable law or agreed to in writing, software |
||||
// distributed under the License is distributed on an "AS IS" BASIS, |
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
// See the License for the specific language governing permissions and |
||||
// limitations under the License. |
||||
|
||||
package grafanaplugin |
||||
|
||||
import ( |
||||
"github.com/grafana/grafana/packages/grafana-schema/src/common" |
||||
"github.com/grafana/grafana/pkg/plugins/pfs" |
||||
) |
||||
|
||||
// This file (with its sibling .cue files) implements pfs.GrafanaPlugin |
||||
pfs.GrafanaPlugin |
||||
|
||||
composableKinds: DataQuery: { |
||||
maturity: "experimental" |
||||
|
||||
lineage: { |
||||
seqs: [ |
||||
{ |
||||
schemas: [ |
||||
// v0.0 |
||||
{ |
||||
common.DataQuery |
||||
|
||||
// Specifies the query label selectors. |
||||
labelSelector: string | *"{}" |
||||
// Specifies the type of profile to query. |
||||
profileTypeId: string |
||||
// Allows to group the results. |
||||
groupBy: [...string] |
||||
#PhlareQueryType: "metrics" | "profile" | *"both" @cuetsy(kind="type") |
||||
}, |
||||
] |
||||
}, |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,37 @@ |
||||
// Code generated - EDITING IS FUTILE. DO NOT EDIT.
|
||||
//
|
||||
// Generated by:
|
||||
// public/app/plugins/gen.go
|
||||
// Using jennies:
|
||||
// TSTypesJenny
|
||||
// PluginTSTypesJenny
|
||||
//
|
||||
// Run 'make gen-cue' from repository root to regenerate.
|
||||
|
||||
import * as common from '@grafana/schema'; |
||||
|
||||
export const DataQueryModelVersion = Object.freeze([0, 0]); |
||||
|
||||
export type PhlareQueryType = ('metrics' | 'profile' | 'both'); |
||||
|
||||
export const defaultPhlareQueryType: PhlareQueryType = 'both'; |
||||
|
||||
export interface Phlare extends common.DataQuery { |
||||
/** |
||||
* Allows to group the results. |
||||
*/ |
||||
groupBy: Array<string>; |
||||
/** |
||||
* Specifies the query label selectors. |
||||
*/ |
||||
labelSelector: string; |
||||
/** |
||||
* Specifies the type of profile to query. |
||||
*/ |
||||
profileTypeId: string; |
||||
} |
||||
|
||||
export const defaultPhlare: Partial<Phlare> = { |
||||
groupBy: [], |
||||
labelSelector: '{}', |
||||
}; |
Loading…
Reference in new issue