diff --git a/apis/monitoring/v1beta1/monitoringdashboard_types.go b/apis/monitoring/v1beta1/monitoringdashboard_types.go index d08a70712c..d6eac80630 100644 --- a/apis/monitoring/v1beta1/monitoringdashboard_types.go +++ b/apis/monitoring/v1beta1/monitoringdashboard_types.go @@ -73,10 +73,8 @@ type XyChart struct { // The properties applied to the y-axis. YAxis *XyChart_Axis `json:"yAxis,omitempty"` - /*NOTYET // The properties applied to the y2-axis. Y2Axis *XyChart_Axis `json:"y2Axis,omitempty"` - */ // Display options for the chart. ChartOptions *ChartOptions `json:"chartOptions,omitempty"` @@ -105,10 +103,8 @@ type XyChart_DataSet struct { // make sense to fetch and align data at one minute intervals. MinAlignmentPeriod *string `json:"minAlignmentPeriod,omitempty"` - /*NOTYET // Optional. The target axis to use for plotting the metric. TargetAxis *string `json:"targetAxis,omitempty"` - */ } // +kcc:proto=google.monitoring.dashboard.v1.XyChart.Axis diff --git a/apis/monitoring/v1beta1/zz_generated.deepcopy.go b/apis/monitoring/v1beta1/zz_generated.deepcopy.go index 82139e7806..c5977df3a9 100644 --- a/apis/monitoring/v1beta1/zz_generated.deepcopy.go +++ b/apis/monitoring/v1beta1/zz_generated.deepcopy.go @@ -1394,6 +1394,11 @@ func (in *XyChart) DeepCopyInto(out *XyChart) { *out = new(XyChart_Axis) (*in).DeepCopyInto(*out) } + if in.Y2Axis != nil { + in, out := &in.Y2Axis, &out.Y2Axis + *out = new(XyChart_Axis) + (*in).DeepCopyInto(*out) + } if in.ChartOptions != nil { in, out := &in.ChartOptions, &out.ChartOptions *out = new(ChartOptions) @@ -1461,6 +1466,11 @@ func (in *XyChart_DataSet) DeepCopyInto(out *XyChart_DataSet) { *out = new(string) **out = **in } + if in.TargetAxis != nil { + in, out := &in.TargetAxis, &out.TargetAxis + *out = new(string) + **out = **in + } return } diff --git a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_monitoringdashboards.monitoring.cnrm.cloud.google.com.yaml b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_monitoringdashboards.monitoring.cnrm.cloud.google.com.yaml index dd684086a2..e7163375e2 100644 --- a/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_monitoringdashboards.monitoring.cnrm.cloud.google.com.yaml +++ b/config/crds/resources/apiextensions.k8s.io_v1_customresourcedefinition_monitoringdashboards.monitoring.cnrm.cloud.google.com.yaml @@ -2329,6 +2329,10 @@ spec: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to + use for plotting the metric. + type: string timeSeriesQuery: description: Required. Fields for querying time series data from the Stackdriver @@ -2965,6 +2969,17 @@ spec: linear scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a + linear scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -5155,6 +5170,10 @@ spec: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to use + for plotting the metric. + type: string timeSeriesQuery: description: Required. Fields for querying time series data from the Stackdriver metrics API. @@ -5754,6 +5773,17 @@ spec: scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a linear + scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -7998,6 +8028,10 @@ spec: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to + use for plotting the metric. + type: string timeSeriesQuery: description: Required. Fields for querying time series data from the Stackdriver metrics @@ -8619,6 +8653,17 @@ spec: scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a linear + scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: @@ -10962,6 +11007,10 @@ spec: description: How this data should be plotted on the chart. type: string + targetAxis: + description: Optional. The target axis to + use for plotting the metric. + type: string timeSeriesQuery: description: Required. Fields for querying time series data from the Stackdriver @@ -11598,6 +11647,17 @@ spec: linear scale is used. type: string type: object + y2Axis: + description: The properties applied to the y2-axis. + properties: + label: + description: The label of the axis. + type: string + scale: + description: The axis scale. By default, a + linear scale is used. + type: string + type: object yAxis: description: The properties applied to the y-axis. properties: diff --git a/docs/releasenotes/release-1.120.md b/docs/releasenotes/release-1.120.md index fc17ac5062..d0acc4f6c3 100644 --- a/docs/releasenotes/release-1.120.md +++ b/docs/releasenotes/release-1.120.md @@ -36,6 +36,7 @@ output fields from GCP APIs are in `status.observedState.*` * Added `sectionHeader` widgets. * Added `singleViewGroup` widgets. + * Added `dataSets.targetAxis` and `y2Axis` fields to `xyChart` widgets. * Added `id` field to all widgets. * Added `prometheusQuery` and `outputFullDuration` to timeSeriesQuery. * Added `style` fields to text widgets. diff --git a/pkg/clients/generated/apis/monitoring/v1beta1/monitoringdashboard_types.go b/pkg/clients/generated/apis/monitoring/v1beta1/monitoringdashboard_types.go index df6198a2cb..0d94af48bb 100644 --- a/pkg/clients/generated/apis/monitoring/v1beta1/monitoringdashboard_types.go +++ b/pkg/clients/generated/apis/monitoring/v1beta1/monitoringdashboard_types.go @@ -166,6 +166,10 @@ type DashboardDataSets struct { // +optional PlotType *string `json:"plotType,omitempty"` + /* Optional. The target axis to use for plotting the metric. */ + // +optional + TargetAxis *string `json:"targetAxis,omitempty"` + /* Required. Fields for querying time series data from the Stackdriver metrics API. */ TimeSeriesQuery DashboardTimeSeriesQuery `json:"timeSeriesQuery"` } @@ -807,11 +811,25 @@ type DashboardXyChart struct { // +optional XAxis *DashboardXAxis `json:"xAxis,omitempty"` + /* The properties applied to the y2-axis. */ + // +optional + Y2Axis *DashboardY2Axis `json:"y2Axis,omitempty"` + /* The properties applied to the y-axis. */ // +optional YAxis *DashboardYAxis `json:"yAxis,omitempty"` } +type DashboardY2Axis struct { + /* The label of the axis. */ + // +optional + Label *string `json:"label,omitempty"` + + /* The axis scale. By default, a linear scale is used. */ + // +optional + Scale *string `json:"scale,omitempty"` +} + type DashboardYAxis struct { /* The label of the axis. */ // +optional diff --git a/pkg/clients/generated/apis/monitoring/v1beta1/zz_generated.deepcopy.go b/pkg/clients/generated/apis/monitoring/v1beta1/zz_generated.deepcopy.go index 540aea3ee8..7420560bdc 100644 --- a/pkg/clients/generated/apis/monitoring/v1beta1/zz_generated.deepcopy.go +++ b/pkg/clients/generated/apis/monitoring/v1beta1/zz_generated.deepcopy.go @@ -733,6 +733,11 @@ func (in *DashboardDataSets) DeepCopyInto(out *DashboardDataSets) { *out = new(string) **out = **in } + if in.TargetAxis != nil { + in, out := &in.TargetAxis, &out.TargetAxis + *out = new(string) + **out = **in + } in.TimeSeriesQuery.DeepCopyInto(&out.TimeSeriesQuery) return } @@ -1874,6 +1879,11 @@ func (in *DashboardXyChart) DeepCopyInto(out *DashboardXyChart) { *out = new(DashboardXAxis) (*in).DeepCopyInto(*out) } + if in.Y2Axis != nil { + in, out := &in.Y2Axis, &out.Y2Axis + *out = new(DashboardY2Axis) + (*in).DeepCopyInto(*out) + } if in.YAxis != nil { in, out := &in.YAxis, &out.YAxis *out = new(DashboardYAxis) @@ -1892,6 +1902,32 @@ func (in *DashboardXyChart) DeepCopy() *DashboardXyChart { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DashboardY2Axis) DeepCopyInto(out *DashboardY2Axis) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Scale != nil { + in, out := &in.Scale, &out.Scale + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DashboardY2Axis. +func (in *DashboardY2Axis) DeepCopy() *DashboardY2Axis { + if in == nil { + return nil + } + out := new(DashboardY2Axis) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DashboardYAxis) DeepCopyInto(out *DashboardYAxis) { *out = *in diff --git a/pkg/controller/direct/monitoring/dashboard_generated.mappings.go b/pkg/controller/direct/monitoring/dashboard_generated.mappings.go index c5553ff97f..26cd484e20 100644 --- a/pkg/controller/direct/monitoring/dashboard_generated.mappings.go +++ b/pkg/controller/direct/monitoring/dashboard_generated.mappings.go @@ -840,7 +840,7 @@ func XyChart_FromProto(mapCtx *MapContext, in *pb.XyChart) *krm.XyChart { out.Thresholds = Slice_FromProto(mapCtx, in.Thresholds, Threshold_FromProto) out.XAxis = XyChart_Axis_FromProto(mapCtx, in.GetXAxis()) out.YAxis = XyChart_Axis_FromProto(mapCtx, in.GetYAxis()) - // MISSING: Y2Axis + out.Y2Axis = XyChart_Axis_FromProto(mapCtx, in.GetY2Axis()) out.ChartOptions = ChartOptions_FromProto(mapCtx, in.GetChartOptions()) return out } @@ -854,7 +854,7 @@ func XyChart_ToProto(mapCtx *MapContext, in *krm.XyChart) *pb.XyChart { out.Thresholds = Slice_ToProto(mapCtx, in.Thresholds, Threshold_ToProto) out.XAxis = XyChart_Axis_ToProto(mapCtx, in.XAxis) out.YAxis = XyChart_Axis_ToProto(mapCtx, in.YAxis) - // MISSING: Y2Axis + out.Y2Axis = XyChart_Axis_ToProto(mapCtx, in.Y2Axis) out.ChartOptions = ChartOptions_ToProto(mapCtx, in.ChartOptions) return out } @@ -885,7 +885,7 @@ func XyChart_DataSet_FromProto(mapCtx *MapContext, in *pb.XyChart_DataSet) *krm. out.PlotType = Enum_FromProto(mapCtx, in.PlotType) out.LegendTemplate = LazyPtr(in.GetLegendTemplate()) out.MinAlignmentPeriod = DataSet_MinAlignmentPeriod_FromProto(mapCtx, in.GetMinAlignmentPeriod()) - // MISSING: TargetAxis + out.TargetAxis = Enum_FromProto(mapCtx, in.TargetAxis) return out } func XyChart_DataSet_ToProto(mapCtx *MapContext, in *krm.XyChart_DataSet) *pb.XyChart_DataSet { @@ -897,6 +897,6 @@ func XyChart_DataSet_ToProto(mapCtx *MapContext, in *krm.XyChart_DataSet) *pb.Xy out.PlotType = Enum_ToProto[pb.XyChart_DataSet_PlotType](mapCtx, in.PlotType) out.LegendTemplate = ValueOf(in.LegendTemplate) out.MinAlignmentPeriod = DataSet_MinAlignmentPeriod_ToProto(mapCtx, in.MinAlignmentPeriod) - // MISSING: TargetAxis + out.TargetAxis = Enum_ToProto[pb.XyChart_DataSet_TargetAxis](mapCtx, in.TargetAxis) return out } diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardbasic/_generated_export_monitoringdashboardbasic.golden b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardbasic/_generated_export_monitoringdashboardbasic.golden index 6167bc9cb8..d1d69b48a9 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardbasic/_generated_export_monitoringdashboardbasic.golden +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardbasic/_generated_export_monitoringdashboardbasic.golden @@ -11,6 +11,7 @@ spec: xyChart: dataSets: - plotType: LINE + targetAxis: Y1 timeSeriesQuery: timeSeriesFilter: aggregation: @@ -29,6 +30,7 @@ spec: xyChart: dataSets: - plotType: LINE + targetAxis: Y1 timeSeriesQuery: timeSeriesFilter: aggregation: diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_generated_export_monitoringdashboardfull.golden b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_generated_export_monitoringdashboardfull.golden index 95456d1ce5..1760e4a275 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_generated_export_monitoringdashboardfull.golden +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_generated_export_monitoringdashboardfull.golden @@ -14,6 +14,7 @@ spec: xyChart: dataSets: - plotType: LINE + targetAxis: Y2 timeSeriesQuery: timeSeriesFilter: aggregation: @@ -21,6 +22,9 @@ spec: filter: metric.type="agent.googleapis.com/nginx/connections/accepted_count" unitOverride: "1" timeshiftDuration: 600.5s + y2Axis: + label: y2Axis + scale: LOG10 yAxis: label: y1Axis scale: LINEAR @@ -40,6 +44,7 @@ spec: xyChart: dataSets: - plotType: STACKED_BAR + targetAxis: Y1 timeSeriesQuery: timeSeriesFilter: aggregation: diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_generated_object_monitoringdashboardfull.golden.yaml b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_generated_object_monitoringdashboardfull.golden.yaml index a960fe2da2..7d4b4690f4 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_generated_object_monitoringdashboardfull.golden.yaml +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_generated_object_monitoringdashboardfull.golden.yaml @@ -23,6 +23,7 @@ spec: xyChart: dataSets: - plotType: LINE + targetAxis: Y2 timeSeriesQuery: timeSeriesFilter: aggregation: @@ -30,6 +31,9 @@ spec: filter: metric.type="agent.googleapis.com/nginx/connections/accepted_count" unitOverride: "1" timeshiftDuration: 600.500s + y2Axis: + label: y2Axis + scale: LOG10 yAxis: label: y1Axis scale: LINEAR diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_http.log b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_http.log index 3d280ff1e4..25ba95b6ab 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_http.log +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/_http.log @@ -208,6 +208,7 @@ x-goog-request-params: parent=projects%2F${projectId} "dataSets": [ { "plotType": 1, + "targetAxis": 2, "timeSeriesQuery": { "timeSeriesFilter": { "aggregation": { @@ -220,6 +221,10 @@ x-goog-request-params: parent=projects%2F${projectId} } ], "timeshiftDuration": "600.500s", + "y2Axis": { + "label": "y2Axis", + "scale": 2 + }, "yAxis": { "label": "y1Axis", "scale": 1 @@ -447,7 +452,7 @@ X-Xss-Protection: 0 "dataSets": [ { "plotType": "LINE", - "targetAxis": "Y1", + "targetAxis": "Y2", "timeSeriesQuery": { "timeSeriesFilter": { "aggregation": { @@ -460,6 +465,10 @@ X-Xss-Protection: 0 } ], "timeshiftDuration": "600.500s", + "y2Axis": { + "label": "y2Axis", + "scale": "LOG10" + }, "yAxis": { "label": "y1Axis", "scale": "LINEAR" @@ -696,7 +705,7 @@ X-Xss-Protection: 0 "dataSets": [ { "plotType": "LINE", - "targetAxis": "Y1", + "targetAxis": "Y2", "timeSeriesQuery": { "timeSeriesFilter": { "aggregation": { @@ -709,6 +718,10 @@ X-Xss-Protection: 0 } ], "timeshiftDuration": "600.500s", + "y2Axis": { + "label": "y2Axis", + "scale": "LOG10" + }, "yAxis": { "label": "y1Axis", "scale": "LINEAR" @@ -934,6 +947,7 @@ x-goog-request-params: dashboard.name=projects%2F${projectId}%2Fdashboards%2Fmon "dataSets": [ { "plotType": 1, + "targetAxis": 2, "timeSeriesQuery": { "timeSeriesFilter": { "aggregation": { @@ -946,6 +960,10 @@ x-goog-request-params: dashboard.name=projects%2F${projectId}%2Fdashboards%2Fmon } ], "timeshiftDuration": "600.500s", + "y2Axis": { + "label": "y2Axis", + "scale": 2 + }, "yAxis": { "label": "y1Axis", "scale": 1 @@ -1173,7 +1191,7 @@ X-Xss-Protection: 0 "dataSets": [ { "plotType": "LINE", - "targetAxis": "Y1", + "targetAxis": "Y2", "timeSeriesQuery": { "timeSeriesFilter": { "aggregation": { @@ -1186,6 +1204,10 @@ X-Xss-Protection: 0 } ], "timeshiftDuration": "600.500s", + "y2Axis": { + "label": "y2Axis", + "scale": "LOG10" + }, "yAxis": { "label": "y1Axis", "scale": "LINEAR" @@ -1422,7 +1444,7 @@ X-Xss-Protection: 0 "dataSets": [ { "plotType": "LINE", - "targetAxis": "Y1", + "targetAxis": "Y2", "timeSeriesQuery": { "timeSeriesFilter": { "aggregation": { @@ -1435,6 +1457,10 @@ X-Xss-Protection: 0 } ], "timeshiftDuration": "600.500s", + "y2Axis": { + "label": "y2Axis", + "scale": "LOG10" + }, "yAxis": { "label": "y1Axis", "scale": "LINEAR" diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/create.yaml b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/create.yaml index a1e560cc1f..95ccd54197 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/create.yaml +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardfull/create.yaml @@ -35,7 +35,8 @@ spec: - title: "Widget 1" xyChart: dataSets: - - timeSeriesQuery: + - targetAxis: Y2 + timeSeriesQuery: timeSeriesFilter: filter: metric.type="agent.googleapis.com/nginx/connections/accepted_count" aggregation: @@ -46,6 +47,9 @@ spec: yAxis: label: y1Axis scale: LINEAR + y2Axis: + label: y2Axis + scale: LOG10 - text: content: "Widget 2" format: "MARKDOWN" diff --git a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardrefs/_generated_export_monitoringdashboardrefs.golden b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardrefs/_generated_export_monitoringdashboardrefs.golden index 52659b8118..5c0cfc6215 100644 --- a/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardrefs/_generated_export_monitoringdashboardrefs.golden +++ b/pkg/test/resourcefixture/testdata/basic/monitoring/v1beta1/monitoringdashboard/monitoringdashboardrefs/_generated_export_monitoringdashboardrefs.golden @@ -11,6 +11,7 @@ spec: xyChart: dataSets: - plotType: LINE + targetAxis: Y1 timeSeriesQuery: timeSeriesFilter: aggregation: @@ -29,6 +30,7 @@ spec: xyChart: dataSets: - plotType: STACKED_BAR + targetAxis: Y1 timeSeriesQuery: timeSeriesFilter: aggregation: diff --git a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/monitoring/monitoringdashboard.md b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/monitoring/monitoringdashboard.md index 227a57a235..4ef7636aa5 100644 --- a/scripts/generate-google3-docs/resource-reference/generated/resource-docs/monitoring/monitoringdashboard.md +++ b/scripts/generate-google3-docs/resource-reference/generated/resource-docs/monitoring/monitoringdashboard.md @@ -317,6 +317,7 @@ columnLayout: - legendTemplate: string minAlignmentPeriod: string plotType: string + targetAxis: string timeSeriesQuery: outputFullDuration: boolean prometheusQuery: string @@ -377,6 +378,9 @@ columnLayout: xAxis: label: string scale: string + y2Axis: + label: string + scale: string yAxis: label: string scale: string @@ -625,6 +629,7 @@ gridLayout: - legendTemplate: string minAlignmentPeriod: string plotType: string + targetAxis: string timeSeriesQuery: outputFullDuration: boolean prometheusQuery: string @@ -685,6 +690,9 @@ gridLayout: xAxis: label: string scale: string + y2Axis: + label: string + scale: string yAxis: label: string scale: string @@ -929,6 +937,7 @@ mosaicLayout: - legendTemplate: string minAlignmentPeriod: string plotType: string + targetAxis: string timeSeriesQuery: outputFullDuration: boolean prometheusQuery: string @@ -989,6 +998,9 @@ mosaicLayout: xAxis: label: string scale: string + y2Axis: + label: string + scale: string yAxis: label: string scale: string @@ -1241,6 +1253,7 @@ rowLayout: - legendTemplate: string minAlignmentPeriod: string plotType: string + targetAxis: string timeSeriesQuery: outputFullDuration: boolean prometheusQuery: string @@ -1301,6 +1314,9 @@ rowLayout: xAxis: label: string scale: string + y2Axis: + label: string + scale: string yAxis: label: string scale: string @@ -4449,6 +4465,16 @@ rowLayout:

{% verbatim %}How this data should be plotted on the chart.{% endverbatim %}

+ + +

columnLayout.columns[].widgets[].xyChart.dataSets[].targetAxis

+

Optional

+ + +

string

+

{% verbatim %}Optional. The target axis to use for plotting the metric.{% endverbatim %}

+ +

columnLayout.columns[].widgets[].xyChart.dataSets[].timeSeriesQuery

@@ -5260,6 +5286,36 @@ rowLayout:

{% verbatim %}The axis scale. By default, a linear scale is used.{% endverbatim %}

+ + +

columnLayout.columns[].widgets[].xyChart.y2Axis

+

Optional

+ + +

object

+

{% verbatim %}The properties applied to the y2-axis.{% endverbatim %}

+ + + + +

columnLayout.columns[].widgets[].xyChart.y2Axis.label

+

Optional

+ + +

string

+

{% verbatim %}The label of the axis.{% endverbatim %}

+ + + + +

columnLayout.columns[].widgets[].xyChart.y2Axis.scale

+

Optional

+ + +

string

+

{% verbatim %}The axis scale. By default, a linear scale is used.{% endverbatim %}

+ +

columnLayout.columns[].widgets[].xyChart.yAxis

@@ -8476,6 +8532,16 @@ rowLayout:

{% verbatim %}How this data should be plotted on the chart.{% endverbatim %}

+ + +

gridLayout.widgets[].xyChart.dataSets[].targetAxis

+

Optional

+ + +

string

+

{% verbatim %}Optional. The target axis to use for plotting the metric.{% endverbatim %}

+ +

gridLayout.widgets[].xyChart.dataSets[].timeSeriesQuery

@@ -9287,6 +9353,36 @@ rowLayout:

{% verbatim %}The axis scale. By default, a linear scale is used.{% endverbatim %}

+ + +

gridLayout.widgets[].xyChart.y2Axis

+

Optional

+ + +

object

+

{% verbatim %}The properties applied to the y2-axis.{% endverbatim %}

+ + + + +

gridLayout.widgets[].xyChart.y2Axis.label

+

Optional

+ + +

string

+

{% verbatim %}The label of the axis.{% endverbatim %}

+ + + + +

gridLayout.widgets[].xyChart.y2Axis.scale

+

Optional

+ + +

string

+

{% verbatim %}The axis scale. By default, a linear scale is used.{% endverbatim %}

+ +

gridLayout.widgets[].xyChart.yAxis

@@ -12453,6 +12549,16 @@ rowLayout:

{% verbatim %}How this data should be plotted on the chart.{% endverbatim %}

+ + +

mosaicLayout.tiles[].widget.xyChart.dataSets[].targetAxis

+

Optional

+ + +

string

+

{% verbatim %}Optional. The target axis to use for plotting the metric.{% endverbatim %}

+ +

mosaicLayout.tiles[].widget.xyChart.dataSets[].timeSeriesQuery

@@ -13264,6 +13370,36 @@ rowLayout:

{% verbatim %}The axis scale. By default, a linear scale is used.{% endverbatim %}

+ + +

mosaicLayout.tiles[].widget.xyChart.y2Axis

+

Optional

+ + +

object

+

{% verbatim %}The properties applied to the y2-axis.{% endverbatim %}

+ + + + +

mosaicLayout.tiles[].widget.xyChart.y2Axis.label

+

Optional

+ + +

string

+

{% verbatim %}The label of the axis.{% endverbatim %}

+ + + + +

mosaicLayout.tiles[].widget.xyChart.y2Axis.scale

+

Optional

+ + +

string

+

{% verbatim %}The axis scale. By default, a linear scale is used.{% endverbatim %}

+ +

mosaicLayout.tiles[].widget.xyChart.yAxis

@@ -16520,6 +16656,16 @@ rowLayout:

{% verbatim %}How this data should be plotted on the chart.{% endverbatim %}

+ + +

rowLayout.rows[].widgets[].xyChart.dataSets[].targetAxis

+

Optional

+ + +

string

+

{% verbatim %}Optional. The target axis to use for plotting the metric.{% endverbatim %}

+ +

rowLayout.rows[].widgets[].xyChart.dataSets[].timeSeriesQuery

@@ -17331,6 +17477,36 @@ rowLayout:

{% verbatim %}The axis scale. By default, a linear scale is used.{% endverbatim %}

+ + +

rowLayout.rows[].widgets[].xyChart.y2Axis

+

Optional

+ + +

object

+

{% verbatim %}The properties applied to the y2-axis.{% endverbatim %}

+ + + + +

rowLayout.rows[].widgets[].xyChart.y2Axis.label

+

Optional

+ + +

string

+

{% verbatim %}The label of the axis.{% endverbatim %}

+ + + + +

rowLayout.rows[].widgets[].xyChart.y2Axis.scale

+

Optional

+ + +

string

+

{% verbatim %}The axis scale. By default, a linear scale is used.{% endverbatim %}

+ +

rowLayout.rows[].widgets[].xyChart.yAxis