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