Skip to content

Commit

Permalink
feat: Sync public protos with latests public api state. This adds sup…
Browse files Browse the repository at this point in the history
…port for collapsible groups, filters, labels, drilldowns, logs panels and tables

PiperOrigin-RevId: 440139643
  • Loading branch information
Google APIs authored and Copybara-Service committed Apr 7, 2022
1 parent e936352 commit 2bff0f3
Show file tree
Hide file tree
Showing 18 changed files with 303 additions and 17 deletions.
9 changes: 5 additions & 4 deletions google/monitoring/dashboard/v1/BUILD.bazel
Expand Up @@ -22,27 +22,30 @@ proto_library(
name = "dashboard_proto",
srcs = [
"alertchart.proto",
"collapsible_group.proto",
"common.proto",
"dashboard.proto",
"dashboard_filter.proto",
"dashboards_service.proto",
"drilldowns.proto",
"layouts.proto",
"logs_panel.proto",
"metrics.proto",
"scorecard.proto",
"service.proto",
"table.proto",
"table_display_options.proto",
"text.proto",
"widget.proto",
"xychart.proto",
],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/api:distribution_proto",
"//google/api:field_behavior_proto",
"//google/api:resource_proto",
"@com_google_protobuf//:duration_proto",
"@com_google_protobuf//:empty_proto",
"@com_google_protobuf//:field_mask_proto",
],
)

Expand Down Expand Up @@ -129,7 +132,6 @@ go_proto_library(
protos = [":dashboard_proto"],
deps = [
"//google/api:annotations_go_proto",
"//google/api:distribution_go_proto",
],
)

Expand Down Expand Up @@ -371,7 +373,6 @@ cc_proto_library(
cc_grpc_library(
name = "dashboard_cc_grpc",
srcs = [":dashboard_proto"],
generate_mocks = True,
grpc_only = True,
deps = [":dashboard_cc_proto"],
)
2 changes: 1 addition & 1 deletion google/monitoring/dashboard/v1/alertchart.proto
@@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
32 changes: 32 additions & 0 deletions google/monitoring/dashboard/v1/collapsible_group.proto
@@ -0,0 +1,32 @@
// Copyright 2022 Google LLC
//
// 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.

syntax = "proto3";

package google.monitoring.dashboard.v1;

option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
option java_multiple_files = true;
option java_outer_classname = "CollapsibleGroupProto";
option java_package = "com.google.monitoring.dashboard.v1";
option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";

// A widget that groups the other widgets. All widgets that are within
// the area spanned by the grouping widget are considered member widgets.
message CollapsibleGroup {
// The collapsed state of the widget on first page load.
bool collapsed = 1;
}
2 changes: 1 addition & 1 deletion google/monitoring/dashboard/v1/common.proto
@@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
9 changes: 8 additions & 1 deletion google/monitoring/dashboard/v1/dashboard.proto
@@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand All @@ -18,6 +18,7 @@ package google.monitoring.dashboard.v1;

import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/monitoring/dashboard/v1/dashboard_filter.proto";
import "google/monitoring/dashboard/v1/layouts.proto";

option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
Expand Down Expand Up @@ -69,4 +70,10 @@ message Dashboard {
// arranged vertically.
ColumnLayout column_layout = 9;
}

// Filters to reduce the amount of data charted based on the filter criteria.
repeated DashboardFilter dashboard_filters = 11;

// Labels applied to the dashboard
map<string, string> labels = 12;
}
68 changes: 68 additions & 0 deletions google/monitoring/dashboard/v1/dashboard_filter.proto
@@ -0,0 +1,68 @@
// Copyright 2022 Google LLC
//
// 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.

syntax = "proto3";

package google.monitoring.dashboard.v1;

import "google/api/field_behavior.proto";

option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
option java_multiple_files = true;
option java_outer_classname = "DashboardFilterProto";
option java_package = "com.google.monitoring.dashboard.v1";
option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";

// A filter to reduce the amount of data charted in relevant widgets.
message DashboardFilter {
// The type for the dashboard filter
enum FilterType {
// Filter type is unspecified. This is not valid in a well-formed request.
FILTER_TYPE_UNSPECIFIED = 0;

// Filter on a resource label value
RESOURCE_LABEL = 1;

// Filter on a metrics label value
METRIC_LABEL = 2;

// Filter on a user metadata label value
USER_METADATA_LABEL = 3;

// Filter on a system metadata label value
SYSTEM_METADATA_LABEL = 4;

// Filter on a group id
GROUP = 5;
}

// Required. The key for the label
string label_key = 1 [(google.api.field_behavior) = REQUIRED];

// The placeholder text that can be referenced in a filter string or MQL
// query. If omitted, the dashboard filter will be applied to all relevant
// widgets in the dashboard.
string template_variable = 3;

// The default value used in the filter comparison
oneof default_value {
// A variable-length string value.
string string_value = 4;
}

// The specified filter type
FilterType filter_type = 5;
}
4 changes: 2 additions & 2 deletions google/monitoring/dashboard/v1/dashboards_service.proto
@@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand All @@ -17,11 +17,11 @@ syntax = "proto3";
package google.monitoring.dashboard.v1;

import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/monitoring/dashboard/v1/dashboard.proto";
import "google/protobuf/empty.proto";
import "google/api/client.proto";

option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
Expand Down
2 changes: 1 addition & 1 deletion google/monitoring/dashboard/v1/drilldowns.proto
@@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion google/monitoring/dashboard/v1/layouts.proto
@@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
38 changes: 38 additions & 0 deletions google/monitoring/dashboard/v1/logs_panel.proto
@@ -0,0 +1,38 @@
// Copyright 2022 Google LLC
//
// 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.

syntax = "proto3";

package google.monitoring.dashboard.v1;

option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
option java_multiple_files = true;
option java_outer_classname = "LogsPanelProto";
option java_package = "com.google.monitoring.dashboard.v1";
option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";

// A widget that displays a stream of log.
message LogsPanel {
// A filter that chooses which log entries to return. See [Advanced Logs
// Queries](https://cloud.google.com/logging/docs/view/advanced-queries).
// Only log entries that match the filter are returned. An empty filter
// matches all log entries.
string filter = 1;

// The names of logging resources to collect logs for. Currently only projects
// are supported. If empty, the widget will default to the host project.
repeated string resource_names = 2;
}
18 changes: 17 additions & 1 deletion google/monitoring/dashboard/v1/metrics.proto
@@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -148,6 +148,18 @@ message Threshold {
BELOW = 2;
}

// An axis identifier.
enum TargetAxis {
// The target axis was not specified. Defaults to Y1.
TARGET_AXIS_UNSPECIFIED = 0;

// The y_axis (the right axis of chart).
Y1 = 1;

// The y2_axis (the left axis of chart).
Y2 = 2;
}

// A label for the threshold.
string label = 1;

Expand All @@ -161,6 +173,10 @@ message Threshold {
// The direction for the current threshold. Direction is not allowed in a
// XyChart.
Direction direction = 4;

// The target axis to use for plotting the threshold. Target axis is not
// allowed in a Scorecard.
TargetAxis target_axis = 5;
}

// Defines the possible types of spark chart supported by the `Scorecard`.
Expand Down
2 changes: 1 addition & 1 deletion google/monitoring/dashboard/v1/scorecard.proto
@@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion google/monitoring/dashboard/v1/service.proto
@@ -1,4 +1,4 @@
// Copyright 2021 Google LLC
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
Expand Down
59 changes: 59 additions & 0 deletions google/monitoring/dashboard/v1/table.proto
@@ -0,0 +1,59 @@
// Copyright 2022 Google LLC
//
// 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.

syntax = "proto3";

package google.monitoring.dashboard.v1;

import "google/api/field_behavior.proto";
import "google/monitoring/dashboard/v1/metrics.proto";
import "google/monitoring/dashboard/v1/table_display_options.proto";
import "google/protobuf/duration.proto";

option csharp_namespace = "Google.Cloud.Monitoring.Dashboard.V1";
option go_package = "google.golang.org/genproto/googleapis/monitoring/dashboard/v1;dashboard";
option java_multiple_files = true;
option java_outer_classname = "TableProto";
option java_package = "com.google.monitoring.dashboard.v1";
option php_namespace = "Google\\Cloud\\Monitoring\\Dashboard\\V1";
option ruby_package = "Google::Cloud::Monitoring::Dashboard::V1";

// A table that displays time series data.
message TimeSeriesTable {
// Groups a time series query definition with table options.
message TableDataSet {
// Required. Fields for querying time series data from the
// Stackdriver metrics API.
TimeSeriesQuery time_series_query = 1 [(google.api.field_behavior) = REQUIRED];

// Optional. A template string for naming `TimeSeries` in the resulting data set.
// This should be a string with interpolations of the form `${label_name}`,
// which will resolve to the label's value i.e.
// "${resource.labels.project_id}."
string table_template = 2 [(google.api.field_behavior) = OPTIONAL];

// Optional. The lower bound on data point frequency for this data set, implemented by
// specifying the minimum alignment period to use in a time series query
// For example, if the data is published once every 10 minutes, the
// `min_alignment_period` should be at least 10 minutes. It would not
// make sense to fetch and align data at one minute intervals.
google.protobuf.Duration min_alignment_period = 3 [(google.api.field_behavior) = OPTIONAL];

// Optional. Table display options for configuring how the table is rendered.
TableDisplayOptions table_display_options = 4 [(google.api.field_behavior) = OPTIONAL];
}

// Required. The data displayed in this table.
repeated TableDataSet data_sets = 1 [(google.api.field_behavior) = REQUIRED];
}

0 comments on commit 2bff0f3

Please sign in to comment.