mirror of https://github.com/grafana/grafana
TestData: Introduce schema types (#62130)
* schematize data query * add the stuff you dingus * feat(testdatasource): add scenario to generated types * use generated testdata query in frontend * update code owners * Add path exception for testdata datasource * use specific numeric data types * fix test * fix e2e smoketest * add test data query type * use test data query type * fix betterer * Fix typo * move to experimental Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com> Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com> Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com> Co-authored-by: sam boyer <sdboyer@grafana.com> Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>pull/62241/head
parent
0cd14091c4
commit
42732539ed
@ -0,0 +1,121 @@ |
||||
--- |
||||
keywords: |
||||
- grafana |
||||
- schema |
||||
title: TestDataDataQuery kind |
||||
--- |
||||
> Both documentation generation and kinds schemas are in active development and subject to change without prior notice. |
||||
|
||||
# TestDataDataQuery kind |
||||
|
||||
## Maturity: experimental |
||||
## Version: 0.0 |
||||
|
||||
## Properties |
||||
|
||||
| Property | Type | Required | Description | |
||||
|-------------------|-------------------------------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
||||
| `alias` | string | No | | |
||||
| `channel` | string | No | | |
||||
| `csvContent` | string | No | | |
||||
| `csvFileName` | string | No | | |
||||
| `csvWave` | [CSVWave](#csvwave)[] | No | | |
||||
| `errorType` | string | No | Possible values are: `server_panic`, `frontend_exception`, `frontend_observable`. | |
||||
| `labels` | string | No | | |
||||
| `levelColumn` | boolean | No | | |
||||
| `lines` | integer | No | | |
||||
| `nodes` | [NodesQuery](#nodesquery) | No | | |
||||
| `points` | array[] | No | | |
||||
| `pulseWave` | [PulseWaveQuery](#pulsewavequery) | No | | |
||||
| `rawFrameContent` | string | No | | |
||||
| `scenarioId` | string | No | Possible values are: `random_walk`, `slow_query`, `random_walk_with_error`, `random_walk_table`, `exponential_heatmap_bucket_data`, `linear_heatmap_bucket_data`, `no_data_points`, `datapoints_outside_range`, `csv_metric_values`, `predictable_pulse`, `predictable_csv_wave`, `streaming_client`, `simulation`, `usa`, `live`, `grafana_api`, `arrow`, `annotations`, `table_static`, `server_error_500`, `logs`, `node_graph`, `flame_graph`, `raw_frame`, `csv_file`, `csv_content`, `trace`, `manual_entry`, `variables-query`. | |
||||
| `seriesCount` | integer | No | | |
||||
| `sim` | [SimulationQuery](#simulationquery) | No | | |
||||
| `spanCount` | integer | No | | |
||||
| `stream` | [StreamingQuery](#streamingquery) | No | | |
||||
| `stringInput` | string | No | | |
||||
| `usa` | [USAQuery](#usaquery) | No | | |
||||
|
||||
## CSVWave |
||||
|
||||
### Properties |
||||
|
||||
| Property | Type | Required | Description | |
||||
|-------------|---------|----------|-------------| |
||||
| `labels` | string | No | | |
||||
| `name` | string | No | | |
||||
| `timeStep` | integer | No | | |
||||
| `valuesCSV` | string | No | | |
||||
|
||||
## NodesQuery |
||||
|
||||
### Properties |
||||
|
||||
| Property | Type | Required | Description | |
||||
|----------|---------|----------|------------------------------------------------------------| |
||||
| `count` | integer | No | | |
||||
| `type` | string | No | Possible values are: `random`, `response`, `random edges`. | |
||||
|
||||
## PulseWaveQuery |
||||
|
||||
### Properties |
||||
|
||||
| Property | Type | Required | Description | |
||||
|------------|---------|----------|-------------| |
||||
| `offCount` | integer | No | | |
||||
| `offValue` | number | No | | |
||||
| `onCount` | integer | No | | |
||||
| `onValue` | number | No | | |
||||
| `timeStep` | integer | No | | |
||||
|
||||
## SimulationQuery |
||||
|
||||
### Properties |
||||
|
||||
| Property | Type | Required | Description | |
||||
|----------|-------------------|----------|-------------| |
||||
| `key` | [object](#key) | **Yes** | | |
||||
| `config` | [object](#config) | No | | |
||||
| `last` | boolean | No | | |
||||
| `stream` | boolean | No | | |
||||
|
||||
### config |
||||
|
||||
| Property | Type | Required | Description | |
||||
|----------|------|----------|-------------| |
||||
|
||||
### key |
||||
|
||||
#### Properties |
||||
|
||||
| Property | Type | Required | Description | |
||||
|----------|--------|----------|-------------| |
||||
| `tick` | number | **Yes** | | |
||||
| `type` | string | **Yes** | | |
||||
| `uid` | string | No | | |
||||
|
||||
## StreamingQuery |
||||
|
||||
### Properties |
||||
|
||||
| Property | Type | Required | Description | |
||||
|----------|---------|----------|-------------------------------------------------| |
||||
| `noise` | integer | **Yes** | | |
||||
| `speed` | integer | **Yes** | | |
||||
| `spread` | integer | **Yes** | | |
||||
| `type` | string | **Yes** | Possible values are: `signal`, `logs`, `fetch`. | |
||||
| `bands` | integer | No | | |
||||
| `url` | string | No | | |
||||
|
||||
## USAQuery |
||||
|
||||
### Properties |
||||
|
||||
| Property | Type | Required | Description | |
||||
|----------|----------|----------|-------------| |
||||
| `fields` | string[] | No | | |
||||
| `mode` | string | No | | |
||||
| `period` | string | No | | |
||||
| `states` | string[] | No | | |
||||
|
||||
|
@ -0,0 +1,338 @@ |
||||
// 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 NodesQueryType.
|
||||
const ( |
||||
NodesQueryTypeRandom NodesQueryType = "random" |
||||
|
||||
NodesQueryTypeRandomEdges NodesQueryType = "random edges" |
||||
|
||||
NodesQueryTypeResponse NodesQueryType = "response" |
||||
) |
||||
|
||||
// Defines values for StreamingQueryType.
|
||||
const ( |
||||
StreamingQueryTypeFetch StreamingQueryType = "fetch" |
||||
|
||||
StreamingQueryTypeLogs StreamingQueryType = "logs" |
||||
|
||||
StreamingQueryTypeSignal StreamingQueryType = "signal" |
||||
) |
||||
|
||||
// Defines values for ErrorType.
|
||||
const ( |
||||
ErrorTypeFrontendException ErrorType = "frontend_exception" |
||||
|
||||
ErrorTypeFrontendObservable ErrorType = "frontend_observable" |
||||
|
||||
ErrorTypeServerPanic ErrorType = "server_panic" |
||||
) |
||||
|
||||
// Defines values for NodesType.
|
||||
const ( |
||||
NodesTypeRandom NodesType = "random" |
||||
|
||||
NodesTypeRandomEdges NodesType = "random edges" |
||||
|
||||
NodesTypeResponse NodesType = "response" |
||||
) |
||||
|
||||
// Defines values for ScenarioId.
|
||||
const ( |
||||
ScenarioIdAnnotations ScenarioId = "annotations" |
||||
|
||||
ScenarioIdArrow ScenarioId = "arrow" |
||||
|
||||
ScenarioIdCsvContent ScenarioId = "csv_content" |
||||
|
||||
ScenarioIdCsvFile ScenarioId = "csv_file" |
||||
|
||||
ScenarioIdCsvMetricValues ScenarioId = "csv_metric_values" |
||||
|
||||
ScenarioIdDatapointsOutsideRange ScenarioId = "datapoints_outside_range" |
||||
|
||||
ScenarioIdExponentialHeatmapBucketData ScenarioId = "exponential_heatmap_bucket_data" |
||||
|
||||
ScenarioIdFlameGraph ScenarioId = "flame_graph" |
||||
|
||||
ScenarioIdGrafanaApi ScenarioId = "grafana_api" |
||||
|
||||
ScenarioIdLinearHeatmapBucketData ScenarioId = "linear_heatmap_bucket_data" |
||||
|
||||
ScenarioIdLive ScenarioId = "live" |
||||
|
||||
ScenarioIdLogs ScenarioId = "logs" |
||||
|
||||
ScenarioIdManualEntry ScenarioId = "manual_entry" |
||||
|
||||
ScenarioIdNoDataPoints ScenarioId = "no_data_points" |
||||
|
||||
ScenarioIdNodeGraph ScenarioId = "node_graph" |
||||
|
||||
ScenarioIdPredictableCsvWave ScenarioId = "predictable_csv_wave" |
||||
|
||||
ScenarioIdPredictablePulse ScenarioId = "predictable_pulse" |
||||
|
||||
ScenarioIdRandomWalk ScenarioId = "random_walk" |
||||
|
||||
ScenarioIdRandomWalkTable ScenarioId = "random_walk_table" |
||||
|
||||
ScenarioIdRandomWalkWithError ScenarioId = "random_walk_with_error" |
||||
|
||||
ScenarioIdRawFrame ScenarioId = "raw_frame" |
||||
|
||||
ScenarioIdServerError500 ScenarioId = "server_error_500" |
||||
|
||||
ScenarioIdSimulation ScenarioId = "simulation" |
||||
|
||||
ScenarioIdSlowQuery ScenarioId = "slow_query" |
||||
|
||||
ScenarioIdStreamingClient ScenarioId = "streaming_client" |
||||
|
||||
ScenarioIdTableStatic ScenarioId = "table_static" |
||||
|
||||
ScenarioIdTrace ScenarioId = "trace" |
||||
|
||||
ScenarioIdUsa ScenarioId = "usa" |
||||
|
||||
ScenarioIdVariablesQuery ScenarioId = "variables-query" |
||||
) |
||||
|
||||
// Defines values for StreamType.
|
||||
const ( |
||||
StreamTypeFetch StreamType = "fetch" |
||||
|
||||
StreamTypeLogs StreamType = "logs" |
||||
|
||||
StreamTypeSignal StreamType = "signal" |
||||
) |
||||
|
||||
// Defines values for TestDataQueryType.
|
||||
const ( |
||||
TestDataQueryTypeAnnotations TestDataQueryType = "annotations" |
||||
|
||||
TestDataQueryTypeArrow TestDataQueryType = "arrow" |
||||
|
||||
TestDataQueryTypeCsvContent TestDataQueryType = "csv_content" |
||||
|
||||
TestDataQueryTypeCsvFile TestDataQueryType = "csv_file" |
||||
|
||||
TestDataQueryTypeCsvMetricValues TestDataQueryType = "csv_metric_values" |
||||
|
||||
TestDataQueryTypeDatapointsOutsideRange TestDataQueryType = "datapoints_outside_range" |
||||
|
||||
TestDataQueryTypeExponentialHeatmapBucketData TestDataQueryType = "exponential_heatmap_bucket_data" |
||||
|
||||
TestDataQueryTypeFlameGraph TestDataQueryType = "flame_graph" |
||||
|
||||
TestDataQueryTypeGrafanaApi TestDataQueryType = "grafana_api" |
||||
|
||||
TestDataQueryTypeLinearHeatmapBucketData TestDataQueryType = "linear_heatmap_bucket_data" |
||||
|
||||
TestDataQueryTypeLive TestDataQueryType = "live" |
||||
|
||||
TestDataQueryTypeLogs TestDataQueryType = "logs" |
||||
|
||||
TestDataQueryTypeManualEntry TestDataQueryType = "manual_entry" |
||||
|
||||
TestDataQueryTypeNoDataPoints TestDataQueryType = "no_data_points" |
||||
|
||||
TestDataQueryTypeNodeGraph TestDataQueryType = "node_graph" |
||||
|
||||
TestDataQueryTypePredictableCsvWave TestDataQueryType = "predictable_csv_wave" |
||||
|
||||
TestDataQueryTypePredictablePulse TestDataQueryType = "predictable_pulse" |
||||
|
||||
TestDataQueryTypeRandomWalk TestDataQueryType = "random_walk" |
||||
|
||||
TestDataQueryTypeRandomWalkTable TestDataQueryType = "random_walk_table" |
||||
|
||||
TestDataQueryTypeRandomWalkWithError TestDataQueryType = "random_walk_with_error" |
||||
|
||||
TestDataQueryTypeRawFrame TestDataQueryType = "raw_frame" |
||||
|
||||
TestDataQueryTypeServerError500 TestDataQueryType = "server_error_500" |
||||
|
||||
TestDataQueryTypeSimulation TestDataQueryType = "simulation" |
||||
|
||||
TestDataQueryTypeSlowQuery TestDataQueryType = "slow_query" |
||||
|
||||
TestDataQueryTypeStreamingClient TestDataQueryType = "streaming_client" |
||||
|
||||
TestDataQueryTypeTableStatic TestDataQueryType = "table_static" |
||||
|
||||
TestDataQueryTypeTrace TestDataQueryType = "trace" |
||||
|
||||
TestDataQueryTypeUsa TestDataQueryType = "usa" |
||||
|
||||
TestDataQueryTypeVariablesQuery TestDataQueryType = "variables-query" |
||||
) |
||||
|
||||
// CSVWave defines model for CSVWave.
|
||||
type CSVWave struct { |
||||
Labels *string `json:"labels,omitempty"` |
||||
Name *string `json:"name,omitempty"` |
||||
TimeStep *int64 `json:"timeStep,omitempty"` |
||||
ValuesCSV *string `json:"valuesCSV,omitempty"` |
||||
} |
||||
|
||||
// NodesQuery defines model for NodesQuery.
|
||||
type NodesQuery struct { |
||||
Count *int64 `json:"count,omitempty"` |
||||
Type *NodesQueryType `json:"type,omitempty"` |
||||
} |
||||
|
||||
// NodesQueryType defines model for NodesQuery.Type.
|
||||
type NodesQueryType string |
||||
|
||||
// PulseWaveQuery defines model for PulseWaveQuery.
|
||||
type PulseWaveQuery struct { |
||||
OffCount *int64 `json:"offCount,omitempty"` |
||||
OffValue *float64 `json:"offValue,omitempty"` |
||||
OnCount *int64 `json:"onCount,omitempty"` |
||||
OnValue *float64 `json:"onValue,omitempty"` |
||||
TimeStep *int64 `json:"timeStep,omitempty"` |
||||
} |
||||
|
||||
// TODO: Should this live here given it's not used in the dataquery?
|
||||
type Scenario struct { |
||||
Description *string `json:"description,omitempty"` |
||||
HideAliasField *bool `json:"hideAliasField,omitempty"` |
||||
Id string `json:"id"` |
||||
Name string `json:"name"` |
||||
StringInput string `json:"stringInput"` |
||||
} |
||||
|
||||
// SimulationQuery defines model for SimulationQuery.
|
||||
type SimulationQuery struct { |
||||
Config map[string]interface{} `json:"config,omitempty"` |
||||
Key struct { |
||||
Tick float64 `json:"tick"` |
||||
Type string `json:"type"` |
||||
Uid *string `json:"uid,omitempty"` |
||||
} `json:"key"` |
||||
Last *bool `json:"last,omitempty"` |
||||
Stream *bool `json:"stream,omitempty"` |
||||
} |
||||
|
||||
// StreamingQuery defines model for StreamingQuery.
|
||||
type StreamingQuery struct { |
||||
Bands *int32 `json:"bands,omitempty"` |
||||
Noise int32 `json:"noise"` |
||||
Speed int32 `json:"speed"` |
||||
Spread int32 `json:"spread"` |
||||
Type StreamingQueryType `json:"type"` |
||||
Url *string `json:"url,omitempty"` |
||||
} |
||||
|
||||
// StreamingQueryType defines model for StreamingQuery.Type.
|
||||
type StreamingQueryType string |
||||
|
||||
// TestDataDataQuery defines model for TestDataDataQuery.
|
||||
type TestDataDataQuery struct { |
||||
Alias *string `json:"alias,omitempty"` |
||||
Channel *string `json:"channel,omitempty"` |
||||
CsvContent *string `json:"csvContent,omitempty"` |
||||
CsvFileName *string `json:"csvFileName,omitempty"` |
||||
CsvWave *[]struct { |
||||
Labels *string `json:"labels,omitempty"` |
||||
Name *string `json:"name,omitempty"` |
||||
TimeStep *int64 `json:"timeStep,omitempty"` |
||||
ValuesCSV *string `json:"valuesCSV,omitempty"` |
||||
} `json:"csvWave,omitempty"` |
||||
|
||||
// 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"` |
||||
ErrorType *ErrorType `json:"errorType,omitempty"` |
||||
|
||||
// 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"` |
||||
Labels *string `json:"labels,omitempty"` |
||||
LevelColumn *bool `json:"levelColumn,omitempty"` |
||||
Lines *int64 `json:"lines,omitempty"` |
||||
Nodes *struct { |
||||
Count *int64 `json:"count,omitempty"` |
||||
Type *NodesType `json:"type,omitempty"` |
||||
} `json:"nodes,omitempty"` |
||||
Points *[][]interface{} `json:"points,omitempty"` |
||||
PulseWave *struct { |
||||
OffCount *int64 `json:"offCount,omitempty"` |
||||
OffValue *float64 `json:"offValue,omitempty"` |
||||
OnCount *int64 `json:"onCount,omitempty"` |
||||
OnValue *float64 `json:"onValue,omitempty"` |
||||
TimeStep *int64 `json:"timeStep,omitempty"` |
||||
} `json:"pulseWave,omitempty"` |
||||
|
||||
// Specify the query flavor
|
||||
// TODO make this required and give it a default
|
||||
QueryType *string `json:"queryType,omitempty"` |
||||
RawFrameContent *string `json:"rawFrameContent,omitempty"` |
||||
|
||||
// A - Z
|
||||
RefId string `json:"refId"` |
||||
ScenarioId *ScenarioId `json:"scenarioId,omitempty"` |
||||
SeriesCount *int32 `json:"seriesCount,omitempty"` |
||||
Sim *struct { |
||||
Config map[string]interface{} `json:"config,omitempty"` |
||||
Key struct { |
||||
Tick float64 `json:"tick"` |
||||
Type string `json:"type"` |
||||
Uid *string `json:"uid,omitempty"` |
||||
} `json:"key"` |
||||
Last *bool `json:"last,omitempty"` |
||||
Stream *bool `json:"stream,omitempty"` |
||||
} `json:"sim,omitempty"` |
||||
SpanCount *int32 `json:"spanCount,omitempty"` |
||||
Stream *struct { |
||||
Bands *int32 `json:"bands,omitempty"` |
||||
Noise int32 `json:"noise"` |
||||
Speed int32 `json:"speed"` |
||||
Spread int32 `json:"spread"` |
||||
Type StreamType `json:"type"` |
||||
Url *string `json:"url,omitempty"` |
||||
} `json:"stream,omitempty"` |
||||
StringInput *string `json:"stringInput,omitempty"` |
||||
Usa *struct { |
||||
Fields *[]string `json:"fields,omitempty"` |
||||
Mode *string `json:"mode,omitempty"` |
||||
Period *string `json:"period,omitempty"` |
||||
States *[]string `json:"states,omitempty"` |
||||
} `json:"usa,omitempty"` |
||||
} |
||||
|
||||
// ErrorType defines model for TestDataDataQuery.ErrorType.
|
||||
type ErrorType string |
||||
|
||||
// NodesType defines model for TestDataDataQuery.Nodes.Type.
|
||||
type NodesType string |
||||
|
||||
// ScenarioId defines model for TestDataDataQuery.ScenarioId.
|
||||
type ScenarioId string |
||||
|
||||
// StreamType defines model for TestDataDataQuery.Stream.Type.
|
||||
type StreamType string |
||||
|
||||
// TestDataQueryType defines model for TestDataQueryType.
|
||||
type TestDataQueryType string |
||||
|
||||
// USAQuery defines model for USAQuery.
|
||||
type USAQuery struct { |
||||
Fields *[]string `json:"fields,omitempty"` |
||||
Mode *string `json:"mode,omitempty"` |
||||
Period *string `json:"period,omitempty"` |
||||
States *[]string `json:"states,omitempty"` |
||||
} |
@ -0,0 +1,117 @@ |
||||
// 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: [ |
||||
{ |
||||
common.DataQuery |
||||
alias?: string |
||||
scenarioId?: #TestDataQueryType | *"random_walk" |
||||
stringInput?: string |
||||
stream?: #StreamingQuery |
||||
pulseWave?: #PulseWaveQuery |
||||
sim?: #SimulationQuery |
||||
csvWave?: [...#CSVWave] //TODO can we prevent partial from being generated |
||||
labels?: string |
||||
lines?: int64 |
||||
levelColumn?: bool |
||||
channel?: string |
||||
nodes?: #NodesQuery |
||||
csvFileName?: string |
||||
csvContent?: string |
||||
rawFrameContent?: string |
||||
seriesCount?: int32 |
||||
usa?: #USAQuery |
||||
errorType?: "server_panic" | "frontend_exception" | "frontend_observable" |
||||
spanCount?: int32 |
||||
points?: [...[...string | int64]] |
||||
|
||||
#TestDataQueryType: "random_walk" | "slow_query" | "random_walk_with_error" | "random_walk_table" | "exponential_heatmap_bucket_data" | "linear_heatmap_bucket_data" | "no_data_points" | "datapoints_outside_range" | "csv_metric_values" | "predictable_pulse" | "predictable_csv_wave" | "streaming_client" | "simulation" | "usa" | "live" | "grafana_api" | "arrow" | "annotations" | "table_static" | "server_error_500" | "logs" | "node_graph" | "flame_graph" | "raw_frame" | "csv_file" | "csv_content" | "trace" | "manual_entry" | "variables-query" @cuetsy(kind="enum", memberNames="RandomWalk|SlowQuery|RandomWalkWithError|RandomWalkTable|ExponentialHeatmapBucketData|LinearHeatmapBucketData|NoDataPoints|DataPointsOutsideRange|CSVMetricValues|PredictablePulse|PredictableCSVWave|StreamingClient|Simulation|USA|Live|GrafanaAPI|Arrow|Annotations|TableStatic|ServerError500|Logs|NodeGraph|FlameGraph|RawFrame|CSVFile|CSVContent|Trace|ManualEntry|VariablesQuery") |
||||
|
||||
#StreamingQuery: { |
||||
type: "signal" | "logs" | "fetch" |
||||
speed: int32 |
||||
spread: int32 |
||||
noise: int32 |
||||
bands?: int32 |
||||
url?: string |
||||
} @cuetsy(kind="interface") |
||||
|
||||
#PulseWaveQuery: { |
||||
timeStep?: int64 |
||||
onCount?: int64 |
||||
offCount?: int64 |
||||
onValue?: float64 |
||||
offValue?: float64 |
||||
} @cuetsy(kind="interface") |
||||
|
||||
#SimulationQuery: { |
||||
key: { |
||||
type: string |
||||
tick: float64 |
||||
uid?: string |
||||
} |
||||
config?: {...} |
||||
stream?: bool |
||||
last?: bool |
||||
} @cuetsy(kind="interface") |
||||
|
||||
#NodesQuery: { |
||||
type?: "random" | "response" | "random edges" |
||||
count?: int64 |
||||
} @cuetsy(kind="interface") |
||||
|
||||
#USAQuery: { |
||||
mode?: string |
||||
period?: string |
||||
fields?: [...string] |
||||
states?: [...string] |
||||
} @cuetsy(kind="interface") |
||||
|
||||
#CSVWave: { |
||||
timeStep?: int64 |
||||
name?: string |
||||
valuesCSV?: string |
||||
labels?: string |
||||
} @cuetsy(kind="interface") |
||||
|
||||
// TODO: Should this live here given it's not used in the dataquery? |
||||
#Scenario: { |
||||
id: string |
||||
name: string |
||||
stringInput: string |
||||
description?: string |
||||
hideAliasField?: bool |
||||
} @cuetsy(kind="interface") |
||||
}, |
||||
] |
||||
}, |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,137 @@ |
||||
// 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 enum TestDataQueryType { |
||||
Annotations = 'annotations', |
||||
Arrow = 'arrow', |
||||
CSVContent = 'csv_content', |
||||
CSVFile = 'csv_file', |
||||
CSVMetricValues = 'csv_metric_values', |
||||
DataPointsOutsideRange = 'datapoints_outside_range', |
||||
ExponentialHeatmapBucketData = 'exponential_heatmap_bucket_data', |
||||
FlameGraph = 'flame_graph', |
||||
GrafanaAPI = 'grafana_api', |
||||
LinearHeatmapBucketData = 'linear_heatmap_bucket_data', |
||||
Live = 'live', |
||||
Logs = 'logs', |
||||
ManualEntry = 'manual_entry', |
||||
NoDataPoints = 'no_data_points', |
||||
NodeGraph = 'node_graph', |
||||
PredictableCSVWave = 'predictable_csv_wave', |
||||
PredictablePulse = 'predictable_pulse', |
||||
RandomWalk = 'random_walk', |
||||
RandomWalkTable = 'random_walk_table', |
||||
RandomWalkWithError = 'random_walk_with_error', |
||||
RawFrame = 'raw_frame', |
||||
ServerError500 = 'server_error_500', |
||||
Simulation = 'simulation', |
||||
SlowQuery = 'slow_query', |
||||
StreamingClient = 'streaming_client', |
||||
TableStatic = 'table_static', |
||||
Trace = 'trace', |
||||
USA = 'usa', |
||||
VariablesQuery = 'variables-query', |
||||
} |
||||
|
||||
export interface StreamingQuery { |
||||
bands?: number; |
||||
noise: number; |
||||
speed: number; |
||||
spread: number; |
||||
type: ('signal' | 'logs' | 'fetch'); |
||||
url?: string; |
||||
} |
||||
|
||||
export interface PulseWaveQuery { |
||||
offCount?: number; |
||||
offValue?: number; |
||||
onCount?: number; |
||||
onValue?: number; |
||||
timeStep?: number; |
||||
} |
||||
|
||||
export interface SimulationQuery { |
||||
config?: Record<string, unknown>; |
||||
key: { |
||||
type: string; |
||||
tick: number; |
||||
uid?: string; |
||||
}; |
||||
last?: boolean; |
||||
stream?: boolean; |
||||
} |
||||
|
||||
export interface NodesQuery { |
||||
count?: number; |
||||
type?: ('random' | 'response' | 'random edges'); |
||||
} |
||||
|
||||
export interface USAQuery { |
||||
fields?: Array<string>; |
||||
mode?: string; |
||||
period?: string; |
||||
states?: Array<string>; |
||||
} |
||||
|
||||
export const defaultUSAQuery: Partial<USAQuery> = { |
||||
fields: [], |
||||
states: [], |
||||
}; |
||||
|
||||
export interface CSVWave { |
||||
labels?: string; |
||||
name?: string; |
||||
timeStep?: number; |
||||
valuesCSV?: string; |
||||
} |
||||
|
||||
/** |
||||
* TODO: Should this live here given it's not used in the dataquery? |
||||
*/ |
||||
export interface Scenario { |
||||
description?: string; |
||||
hideAliasField?: boolean; |
||||
id: string; |
||||
name: string; |
||||
stringInput: string; |
||||
} |
||||
|
||||
export interface TestData extends common.DataQuery { |
||||
alias?: string; |
||||
channel?: string; |
||||
csvContent?: string; |
||||
csvFileName?: string; |
||||
csvWave?: Array<CSVWave>; |
||||
errorType?: ('server_panic' | 'frontend_exception' | 'frontend_observable'); |
||||
labels?: string; |
||||
levelColumn?: boolean; |
||||
lines?: number; |
||||
nodes?: NodesQuery; |
||||
points?: Array<Array<(string | number)>>; |
||||
pulseWave?: PulseWaveQuery; |
||||
rawFrameContent?: string; |
||||
scenarioId?: TestDataQueryType; |
||||
seriesCount?: number; |
||||
sim?: SimulationQuery; |
||||
spanCount?: number; |
||||
stream?: StreamingQuery; |
||||
stringInput?: string; |
||||
usa?: USAQuery; |
||||
} |
||||
|
||||
export const defaultTestData: Partial<TestData> = { |
||||
csvWave: [], |
||||
points: [], |
||||
scenarioId: TestDataQueryType.RandomWalk, |
||||
}; |
@ -1,77 +0,0 @@ |
||||
import { DataQuery } from '@grafana/data'; |
||||
|
||||
export interface Scenario { |
||||
id: string; |
||||
name: string; |
||||
stringInput: string; |
||||
description?: string; |
||||
hideAliasField?: boolean; |
||||
} |
||||
|
||||
export interface TestDataQuery extends DataQuery { |
||||
alias?: string; |
||||
scenarioId?: string; |
||||
stringInput?: string; |
||||
stream?: StreamingQuery; |
||||
pulseWave?: PulseWaveQuery; |
||||
sim?: SimulationQuery; |
||||
csvWave?: CSVWave[]; |
||||
labels?: string; |
||||
lines?: number; |
||||
levelColumn?: boolean; |
||||
channel?: string; // for grafana live
|
||||
nodes?: NodesQuery; |
||||
csvFileName?: string; |
||||
csvContent?: string; |
||||
rawFrameContent?: string; |
||||
seriesCount?: number; |
||||
usa?: USAQuery; |
||||
errorType?: 'server_panic' | 'frontend_exception' | 'frontend_observable'; |
||||
spanCount?: number; |
||||
} |
||||
|
||||
export interface NodesQuery { |
||||
type?: 'random' | 'response' | 'random edges'; |
||||
count?: number; |
||||
} |
||||
|
||||
export interface StreamingQuery { |
||||
type: 'signal' | 'logs' | 'fetch'; |
||||
speed: number; |
||||
spread: number; |
||||
noise: number; // wiggle around the signal for min/max
|
||||
bands?: number; // number of bands around the middle band
|
||||
url?: string; // the Fetch URL
|
||||
} |
||||
|
||||
export interface SimulationQuery { |
||||
key: { |
||||
type: string; |
||||
tick: number; |
||||
uid?: string; |
||||
}; |
||||
config?: Record<string, any>; |
||||
stream?: boolean; |
||||
last?: boolean; |
||||
} |
||||
|
||||
export interface PulseWaveQuery { |
||||
timeStep?: number; |
||||
onCount?: number; |
||||
offCount?: number; |
||||
onValue?: number; |
||||
offValue?: number; |
||||
} |
||||
export interface CSVWave { |
||||
timeStep?: number; |
||||
name?: string; |
||||
valuesCSV?: string; |
||||
labels?: string; |
||||
} |
||||
|
||||
export interface USAQuery { |
||||
mode?: string; |
||||
period?: string; |
||||
fields?: string[]; // foo, bar, baz
|
||||
states?: string[]; |
||||
} |
Loading…
Reference in new issue