The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/public/app/plugins/datasource/azuremonitor/dataquery.cue

214 lines
9.1 KiB

// 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 (
common "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: "merged"
lineage: {
seqs: [
{
schemas: [
{
#AzureMonitorQuery: common.DataQuery & {
// Azure subscription containing the resource(s) to be queried.
subscription?: string
// Subscriptions to be queried via Azure Resource Graph.
subscriptions?: [...string]
// Azure Monitor Metrics sub-query properties.
azureMonitor?: #AzureMetricQuery
// Azure Monitor Logs sub-query properties.
azureLogAnalytics?: #AzureLogsQuery
// Azure Resource Graph sub-query properties.
azureResourceGraph?: #AzureResourceGraphQuery
// @deprecated Legacy template variable support.
grafanaTemplateVariableFn?: #GrafanaTemplateVariableQuery
// Template variables params. These exist for backwards compatiblity with legacy template variables.
resourceGroup?: string
namespace?: string
resource?: string
region?: string
// Azure Monitor query type.
// queryType: #AzureQueryType
} @cuetsy(kind="interface") @grafana(TSVeneer="type")
// Defines the supported queryTypes. GrafanaTemplateVariableFn is deprecated
#AzureQueryType: "Azure Monitor" | "Azure Log Analytics" | "Azure Resource Graph" | "Azure Subscriptions" | "Azure Resource Groups" | "Azure Namespaces" | "Azure Resource Names" | "Azure Metric Names" | "Azure Workspaces" | "Azure Regions" | "Grafana Template Variable Function" @cuetsy(kind="enum", memberNames="AzureMonitor|LogAnalytics|AzureResourceGraph|SubscriptionsQuery|ResourceGroupsQuery|NamespacesQuery|ResourceNamesQuery|MetricNamesQuery|WorkspacesQuery|LocationsQuery|GrafanaTemplateVariableFn")
#AzureMetricQuery: {
// Array of resource URIs to be queried.
resources?: [...#AzureMonitorResource]
// metricNamespace is used as the resource type (or resource namespace).
// It's usually equal to the target metric namespace. e.g. microsoft.storage/storageaccounts
// Kept the name of the variable as metricNamespace to avoid backward incompatibility issues.
metricNamespace?: string
// Used as the value for the metricNamespace property when it's different from the resource namespace.
customNamespace?: string
// The metric to query data for within the specified metricNamespace. e.g. UsedCapacity
metricName?: string
// The Azure region containing the resource(s).
region?: string
// The granularity of data points to be queried. Defaults to auto.
timeGrain?: string
// The aggregation to be used within the query. Defaults to the primaryAggregationType defined by the metric.
aggregation?: string
// Filters to reduce the set of data returned. Dimensions that can be filtered on are defined by the metric.
dimensionFilters?: [...#AzureMetricDimension]
// Maximum number of records to return. Defaults to 10.
top?: string
// Time grains that are supported by the metric.
allowedTimeGrainsMs?: [...int64]
// Aliases can be set to modify the legend labels. e.g. {{ resourceGroup }}. See docs for more detail.
alias?: string
// @deprecated
timeGrainUnit?: string
// @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration
dimension?: string
// @deprecated This property was migrated to dimensionFilters and should only be accessed in the migration
dimensionFilter?: string
// @deprecated Use metricNamespace instead
metricDefinition?: string
// @deprecated Use resourceGroup, resourceName and metricNamespace instead
resourceUri?: string
// @deprecated Use resources instead
resourceGroup?: string
// @deprecated Use resources instead
resourceName?: string
} @cuetsy(kind="interface")
// Azure Monitor Logs sub-query properties
#AzureLogsQuery: {
// KQL query to be executed.
query?: string
// Specifies the format results should be returned as.
resultFormat?: #ResultFormat
// Array of resource URIs to be queried.
resources?: [...string]
// Workspace ID. This was removed in Grafana 8, but remains for backwards compat
workspace?: string
// @deprecated Use resources instead
resource?: string
} @cuetsy(kind="interface")
#ResultFormat: "table" | "time_series" @cuetsy(kind="enum", memberNames="Table|TimeSeries")
#AzureResourceGraphQuery: {
// Azure Resource Graph KQL query to be executed.
query?: string
// Specifies the format results should be returned as. Defaults to table.
resultFormat?: string
} @cuetsy(kind="interface")
#AzureMonitorResource: {
subscription?: string
resourceGroup?: string
resourceName?: string
metricNamespace?: string
region?: string
} @cuetsy(kind="interface")
#AzureMetricDimension: {
// Name of Dimension to be filtered on.
dimension?: string
// String denoting the filter operation. Supports 'eq' - equals,'ne' - not equals, 'sw' - starts with. Note that some dimensions may not support all operators.
operator?: string
// Values to match with the filter.
filters?: [...string]
// @deprecated filter is deprecated in favour of filters to support multiselect.
filter?: string
} @cuetsy(kind="interface")
#GrafanaTemplateVariableQueryType: "AppInsightsMetricNameQuery" | "AppInsightsGroupByQuery" | "SubscriptionsQuery" | "ResourceGroupsQuery" | "ResourceNamesQuery" | "MetricNamespaceQuery" | "MetricNamesQuery" | "WorkspacesQuery" | "UnknownQuery" @cuetsy(kind="type")
#BaseGrafanaTemplateVariableQuery: {
rawQuery?: string
...
} @cuetsy(kind="interface")
#UnknownQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "UnknownQuery"
} @cuetsy(kind="interface")
#AppInsightsMetricNameQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "AppInsightsMetricNameQuery"
} @cuetsy(kind="interface")
#AppInsightsGroupByQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "AppInsightsGroupByQuery"
metricName: string
} @cuetsy(kind="interface")
#SubscriptionsQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "SubscriptionsQuery"
} @cuetsy(kind="interface")
#ResourceGroupsQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "ResourceGroupsQuery"
subscription: string
} @cuetsy(kind="interface")
#ResourceNamesQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "ResourceNamesQuery"
subscription: string
resourceGroup: string
metricNamespace: string
} @cuetsy(kind="interface")
#MetricNamespaceQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "MetricNamespaceQuery"
subscription: string
resourceGroup: string
metricNamespace?: string
resourceName?: string
} @cuetsy(kind="interface")
// @deprecated Use MetricNamespaceQuery instead
#MetricDefinitionsQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "MetricDefinitionsQuery"
subscription: string
resourceGroup: string
metricNamespace?: string
resourceName?: string
} @cuetsy(kind="interface")
#MetricNamesQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "MetricNamesQuery"
subscription: string
resourceGroup: string
resourceName: string
metricNamespace: string
} @cuetsy(kind="interface")
#WorkspacesQuery: #BaseGrafanaTemplateVariableQuery & {
kind: "WorkspacesQuery"
subscription: string
} @cuetsy(kind="interface")
#GrafanaTemplateVariableQuery: #AppInsightsMetricNameQuery | #AppInsightsGroupByQuery | #SubscriptionsQuery | #ResourceGroupsQuery | #ResourceNamesQuery | #MetricNamespaceQuery | #MetricDefinitionsQuery | #MetricNamesQuery | #WorkspacesQuery | #UnknownQuery @cuetsy(kind="type")
},
]
},
]
}
}