{ "type": "object", "required": [ "queries" ], "properties": { "$schema": { "description": "helper", "type": "string" }, "debug": { "type": "boolean" }, "from": { "description": "From Start time in epoch timestamps in milliseconds or relative using Grafana time units.", "type": "string" }, "queries": { "type": "array", "items": { "description": "TestDataQuery defines model for TestDataQuery.", "type": "object", "properties": { "alias": { "type": "string" }, "channel": { "description": "Used for live query", "type": "string" }, "csvContent": { "type": "string" }, "csvFileName": { "type": "string" }, "csvWave": { "type": "array", "items": { "description": "CSVWave defines model for CSVWave.", "type": "object", "properties": { "labels": { "type": "string" }, "name": { "type": "string" }, "timeStep": { "type": "integer" }, "valuesCSV": { "type": "string" } }, "additionalProperties": false } }, "datasource": { "description": "The datasource", "type": "object", "required": [ "type" ], "properties": { "apiVersion": { "description": "The apiserver version", "type": "string" }, "type": { "description": "The datasource plugin type", "type": "string", "pattern": "^grafana-testdata-datasource$|^testdata$" }, "uid": { "description": "Datasource UID (NOTE: name in k8s)", "type": "string" } }, "additionalProperties": false }, "dropPercent": { "description": "Drop percentage (the chance we will lose a point 0-100)", "type": "number" }, "errorSource": { "description": "Possible enum values:\n - `\"plugin\"` \n - `\"downstream\"` ", "type": "string", "enum": [ "plugin", "downstream" ], "x-enum-description": {} }, "errorType": { "description": "Possible enum values:\n - `\"frontend_exception\"` \n - `\"frontend_observable\"` \n - `\"server_panic\"` ", "type": "string", "enum": [ "frontend_exception", "frontend_observable", "server_panic" ], "x-enum-description": {} }, "flamegraphDiff": { "type": "boolean" }, "hide": { "description": "true if query is disabled (ie should not be returned to the dashboard)\nNOTE: this does not always imply that the query should not be executed since\nthe results from a hidden query may be used as the input to other queries (SSE etc)", "type": "boolean" }, "intervalMs": { "description": "Interval is the suggested duration between time points in a time series query.\nNOTE: the values for intervalMs is not saved in the query model. It is typically calculated\nfrom the interval required to fill a pixels in the visualization", "type": "number" }, "labels": { "type": "string" }, "levelColumn": { "type": "boolean" }, "lines": { "type": "integer" }, "max": { "type": "number" }, "maxDataPoints": { "description": "MaxDataPoints is the maximum number of data points that should be returned from a time series query.\nNOTE: the values for maxDataPoints is not saved in the query model. It is typically calculated\nfrom the number of pixels visible in a visualization", "type": "integer" }, "min": { "type": "number" }, "nodes": { "type": "object", "properties": { "count": { "type": "integer" }, "seed": { "type": "integer" }, "type": { "description": "Possible enum values:\n - `\"random\"` \n - `\"random edges\"` \n - `\"response_medium\"` \n - `\"response_small\"` \n - `\"feature_showcase\"` ", "type": "string", "enum": [ "random", "random edges", "response_medium", "response_small", "feature_showcase" ], "x-enum-description": {} } }, "additionalProperties": false }, "noise": { "type": "number" }, "points": { "type": "array", "items": { "type": "array" } }, "pulseWave": { "type": "object", "properties": { "offCount": { "type": "integer" }, "offValue": { "type": "number" }, "onCount": { "type": "integer" }, "onValue": { "type": "number" }, "timeStep": { "type": "integer" } }, "additionalProperties": false }, "queryType": { "description": "QueryType is an optional identifier for the type of query.\nIt can be used to distinguish different types of queries.", "type": "string" }, "rawFrameContent": { "type": "string" }, "refId": { "description": "RefID is the unique identifier of the query, set by the frontend call.", "type": "string" }, "resultAssertions": { "description": "Optionally define expected query result behavior", "type": "object", "required": [ "typeVersion" ], "properties": { "maxFrames": { "description": "Maximum frame count", "type": "integer" }, "type": { "description": "Type asserts that the frame matches a known type structure.\n\n\nPossible enum values:\n - `\"\"` \n - `\"timeseries-wide\"` \n - `\"timeseries-long\"` \n - `\"timeseries-many\"` \n - `\"timeseries-multi\"` \n - `\"directory-listing\"` \n - `\"table\"` \n - `\"numeric-wide\"` \n - `\"numeric-multi\"` \n - `\"numeric-long\"` \n - `\"log-lines\"` ", "type": "string", "enum": [ "", "timeseries-wide", "timeseries-long", "timeseries-many", "timeseries-multi", "directory-listing", "table", "numeric-wide", "numeric-multi", "numeric-long", "log-lines" ], "x-enum-description": {} }, "typeVersion": { "description": "TypeVersion is the version of the Type property. Versions greater than 0.0 correspond to the dataplane\ncontract documentation https://grafana.github.io/dataplane/contract/.", "type": "array", "maxItems": 2, "minItems": 2, "items": { "type": "integer" } } }, "additionalProperties": false }, "scenarioId": { "description": "Possible enum values:\n - `\"annotations\"` \n - `\"arrow\"` \n - `\"csv_content\"` \n - `\"csv_file\"` \n - `\"csv_metric_values\"` \n - `\"datapoints_outside_range\"` \n - `\"error_with_source\"` \n - `\"exponential_heatmap_bucket_data\"` \n - `\"flame_graph\"` \n - `\"grafana_api\"` \n - `\"linear_heatmap_bucket_data\"` \n - `\"live\"` \n - `\"logs\"` \n - `\"manual_entry\"` \n - `\"no_data_points\"` \n - `\"node_graph\"` \n - `\"predictable_csv_wave\"` \n - `\"predictable_pulse\"` \n - `\"random_walk\"` \n - `\"random_walk_table\"` \n - `\"random_walk_with_error\"` \n - `\"raw_frame\"` \n - `\"server_error_500\"` \n - `\"simulation\"` \n - `\"slow_query\"` \n - `\"streaming_client\"` \n - `\"table_static\"` \n - `\"trace\"` \n - `\"usa\"` \n - `\"variables-query\"` ", "type": "string", "enum": [ "annotations", "arrow", "csv_content", "csv_file", "csv_metric_values", "datapoints_outside_range", "error_with_source", "exponential_heatmap_bucket_data", "flame_graph", "grafana_api", "linear_heatmap_bucket_data", "live", "logs", "manual_entry", "no_data_points", "node_graph", "predictable_csv_wave", "predictable_pulse", "random_walk", "random_walk_table", "random_walk_with_error", "raw_frame", "server_error_500", "simulation", "slow_query", "streaming_client", "table_static", "trace", "usa", "variables-query" ], "x-enum-description": {} }, "seriesCount": { "type": "integer" }, "sim": { "type": "object", "required": [ "key" ], "properties": { "config": { "type": "object" }, "key": { "type": "object", "required": [ "tick", "type" ], "properties": { "tick": { "type": "number" }, "type": { "type": "string" }, "uid": { "type": "string" } }, "additionalProperties": false }, "last": { "type": "boolean" }, "stream": { "type": "boolean" } }, "additionalProperties": false }, "spanCount": { "type": "integer" }, "spread": { "type": "number" }, "startValue": { "type": "number" }, "stream": { "type": "object", "required": [ "noise", "speed", "spread", "type" ], "properties": { "bands": { "type": "integer" }, "noise": { "type": "number" }, "speed": { "type": "number" }, "spread": { "type": "number" }, "type": { "description": "Possible enum values:\n - `\"fetch\"` \n - `\"logs\"` \n - `\"signal\"` \n - `\"traces\"` ", "type": "string", "enum": [ "fetch", "logs", "signal", "traces" ], "x-enum-description": {} }, "url": { "type": "string" } }, "additionalProperties": false }, "stringInput": { "description": "common parameter used by many query types", "type": "string" }, "timeRange": { "description": "TimeRange represents the query range\nNOTE: unlike generic /ds/query, we can now send explicit time values in each query\nNOTE: the values for timeRange are not saved in a dashboard, they are constructed on the fly", "type": "object", "required": [ "from", "to" ], "properties": { "from": { "description": "From is the start time of the query.", "type": "string", "default": "now-6h" }, "to": { "description": "To is the end time of the query.", "type": "string", "default": "now" } }, "additionalProperties": false }, "usa": { "type": "object", "properties": { "fields": { "type": "array", "items": { "type": "string" } }, "mode": { "type": "string" }, "period": { "type": "string" }, "states": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "withNil": { "type": "boolean" } }, "additionalProperties": false, "$schema": "https://json-schema.org/draft-04/schema#" } }, "to": { "description": "To end time in epoch timestamps in milliseconds or relative using Grafana time units.", "type": "string" } }, "additionalProperties": false, "$schema": "https://json-schema.org/draft-04/schema#" }