mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-16 13:00:34 +02:00
feat: publish existing API surface to preview
PiperOrigin-RevId: 706891138
This commit is contained in:
parent
edf305fd74
commit
fa515f8be9
24 changed files with 6783 additions and 0 deletions
42
google/monitoring/BUILD.bazel
Normal file
42
google/monitoring/BUILD.bazel
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# This build file includes a target for the Ruby wrapper library for
|
||||
# google-cloud-monitoring.
|
||||
|
||||
# This is an API workspace, having public visibility by default makes perfect sense.
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
# Export yaml configs.
|
||||
exports_files(glob(["*.yaml"]))
|
||||
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"ruby_cloud_gapic_library",
|
||||
"ruby_gapic_assembly_pkg",
|
||||
)
|
||||
|
||||
# Generates a Ruby wrapper client for monitoring.
|
||||
# Ruby wrapper clients are versionless, but are generated from source protos
|
||||
# for a particular service version, v3 in this case.
|
||||
ruby_cloud_gapic_library(
|
||||
name = "monitoring_ruby_wrapper",
|
||||
srcs = ["//google/monitoring/v3:monitoring_proto_with_info"],
|
||||
extra_protoc_parameters = [
|
||||
"ruby-cloud-gem-name=google-cloud-monitoring",
|
||||
"ruby-cloud-env-prefix=MONITORING",
|
||||
"ruby-cloud-wrapper-of=v3:0.15",
|
||||
"ruby-cloud-product-url=https://cloud.google.com/monitoring",
|
||||
"ruby-cloud-api-id=monitoring.googleapis.com",
|
||||
"ruby-cloud-api-shortname=monitoring",
|
||||
"ruby-cloud-migration-version=1.0",
|
||||
],
|
||||
ruby_cloud_description = "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation.",
|
||||
ruby_cloud_title = "Cloud Monitoring",
|
||||
transport = "grpc",
|
||||
)
|
||||
|
||||
# Open Source package.
|
||||
ruby_gapic_assembly_pkg(
|
||||
name = "google-cloud-monitoring-ruby",
|
||||
deps = [
|
||||
":monitoring_ruby_wrapper",
|
||||
],
|
||||
)
|
||||
444
google/monitoring/v3/BUILD.bazel
Normal file
444
google/monitoring/v3/BUILD.bazel
Normal file
|
|
@ -0,0 +1,444 @@
|
|||
# This file was automatically generated by BuildFileGenerator
|
||||
# https://github.com/googleapis/rules_gapic/tree/master/bazel
|
||||
|
||||
# Most of the manual changes to this file will be overwritten.
|
||||
# It's **only** allowed to change the following rule attribute values:
|
||||
# - names of *_gapic_assembly_* rules
|
||||
# - certain parameters of *_gapic_library rules, including but not limited to:
|
||||
# * extra_protoc_parameters
|
||||
# * extra_protoc_file_parameters
|
||||
# The complete list of preserved parameters can be found in the source code.
|
||||
|
||||
# buildifier: disable=load-on-top
|
||||
|
||||
# This is an API workspace, having public visibility by default makes perfect sense.
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
##############################################################################
|
||||
# Common
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
|
||||
load("@rules_proto//proto:defs.bzl", "proto_library")
|
||||
|
||||
proto_library(
|
||||
name = "monitoring_proto",
|
||||
srcs = [
|
||||
"alert.proto",
|
||||
"alert_service.proto",
|
||||
"common.proto",
|
||||
"dropped_labels.proto",
|
||||
"group.proto",
|
||||
"group_service.proto",
|
||||
"metric.proto",
|
||||
"metric_service.proto",
|
||||
"mutation_record.proto",
|
||||
"notification.proto",
|
||||
"notification_service.proto",
|
||||
"query_service.proto",
|
||||
"service.proto",
|
||||
"service_service.proto",
|
||||
"snooze.proto",
|
||||
"snooze_service.proto",
|
||||
"span_context.proto",
|
||||
"uptime.proto",
|
||||
"uptime_service.proto",
|
||||
],
|
||||
deps = [
|
||||
"//google/api:annotations_proto",
|
||||
"//google/api:client_proto",
|
||||
"//google/api:distribution_proto",
|
||||
"//google/api:field_behavior_proto",
|
||||
"//google/api:field_info_proto",
|
||||
"//google/api:label_proto",
|
||||
"//google/api:launch_stage_proto",
|
||||
"//google/api:metric_proto",
|
||||
"//google/api:monitored_resource_proto",
|
||||
"//google/api:resource_proto",
|
||||
"//google/longrunning:operations_proto",
|
||||
"//google/rpc:status_proto",
|
||||
"//google/type:calendar_period_proto",
|
||||
"//google/type:timeofday_proto",
|
||||
"@com_google_protobuf//:duration_proto",
|
||||
"@com_google_protobuf//:empty_proto",
|
||||
"@com_google_protobuf//:field_mask_proto",
|
||||
"@com_google_protobuf//:timestamp_proto",
|
||||
"@com_google_protobuf//:wrappers_proto",
|
||||
],
|
||||
)
|
||||
|
||||
proto_library_with_info(
|
||||
name = "monitoring_proto_with_info",
|
||||
deps = [
|
||||
":monitoring_proto",
|
||||
"//google/cloud:common_resources_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Java
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"java_gapic_assembly_gradle_pkg",
|
||||
"java_gapic_library",
|
||||
"java_gapic_test",
|
||||
"java_grpc_library",
|
||||
"java_proto_library",
|
||||
)
|
||||
|
||||
java_proto_library(
|
||||
name = "monitoring_java_proto",
|
||||
deps = [":monitoring_proto"],
|
||||
)
|
||||
|
||||
java_grpc_library(
|
||||
name = "monitoring_java_grpc",
|
||||
srcs = [":monitoring_proto"],
|
||||
deps = [":monitoring_java_proto"],
|
||||
)
|
||||
|
||||
java_gapic_library(
|
||||
name = "monitoring_java_gapic",
|
||||
srcs = [":monitoring_proto_with_info"],
|
||||
gapic_yaml = "monitoring_gapic.yaml",
|
||||
grpc_service_config = "monitoring_grpc_service_config.json",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "monitoring.yaml",
|
||||
test_deps = [
|
||||
":monitoring_java_grpc",
|
||||
],
|
||||
transport = "grpc",
|
||||
deps = [
|
||||
":monitoring_java_proto",
|
||||
"//google/api:api_java_proto",
|
||||
],
|
||||
)
|
||||
|
||||
java_gapic_test(
|
||||
name = "monitoring_java_gapic_test_suite",
|
||||
test_classes = [
|
||||
"com.google.cloud.monitoring.v3.AlertPolicyServiceClientTest",
|
||||
"com.google.cloud.monitoring.v3.GroupServiceClientTest",
|
||||
"com.google.cloud.monitoring.v3.MetricServiceClientTest",
|
||||
"com.google.cloud.monitoring.v3.NotificationChannelServiceClientTest",
|
||||
"com.google.cloud.monitoring.v3.QueryServiceClientTest",
|
||||
"com.google.cloud.monitoring.v3.ServiceMonitoringServiceClientTest",
|
||||
"com.google.cloud.monitoring.v3.SnoozeServiceClientTest",
|
||||
"com.google.cloud.monitoring.v3.UptimeCheckServiceClientTest",
|
||||
],
|
||||
runtime_deps = [":monitoring_java_gapic_test"],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
java_gapic_assembly_gradle_pkg(
|
||||
name = "google-cloud-monitoring-v3-java",
|
||||
include_samples = True,
|
||||
transport = "grpc",
|
||||
deps = [
|
||||
":monitoring_java_gapic",
|
||||
":monitoring_java_grpc",
|
||||
":monitoring_java_proto",
|
||||
":monitoring_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Go
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"go_gapic_assembly_pkg",
|
||||
"go_gapic_library",
|
||||
"go_proto_library",
|
||||
)
|
||||
|
||||
go_proto_library(
|
||||
name = "monitoring_go_proto",
|
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
|
||||
importpath = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb",
|
||||
protos = [":monitoring_proto"],
|
||||
deps = [
|
||||
"//google/api:annotations_go_proto",
|
||||
"//google/api:api_go_proto",
|
||||
"//google/api:distribution_go_proto",
|
||||
"//google/api:label_go_proto",
|
||||
"//google/api:metric_go_proto",
|
||||
"//google/api:monitoredres_go_proto",
|
||||
"//google/longrunning:longrunning_go_proto",
|
||||
"//google/rpc:status_go_proto",
|
||||
"//google/type:calendar_period_go_proto",
|
||||
"//google/type:timeofday_go_proto",
|
||||
],
|
||||
)
|
||||
|
||||
go_gapic_library(
|
||||
name = "monitoring_go_gapic",
|
||||
srcs = [":monitoring_proto_with_info"],
|
||||
grpc_service_config = "monitoring_grpc_service_config.json",
|
||||
importpath = "cloud.google.com/go/monitoring/apiv3/v2;monitoring",
|
||||
metadata = True,
|
||||
release_level = "beta",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "monitoring.yaml",
|
||||
transport = "grpc",
|
||||
deps = [
|
||||
":monitoring_go_proto",
|
||||
"//google/api:metric_go_proto",
|
||||
"//google/api:monitoredres_go_proto",
|
||||
"//google/longrunning:longrunning_go_proto",
|
||||
"@com_google_cloud_go_longrunning//:go_default_library",
|
||||
"@com_google_cloud_go_longrunning//autogen:go_default_library",
|
||||
"@io_bazel_rules_go//proto/wkt:duration_go_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
go_gapic_assembly_pkg(
|
||||
name = "gapi-cloud-monitoring-v3-go",
|
||||
deps = [
|
||||
":monitoring_go_gapic",
|
||||
":monitoring_go_gapic_srcjar-metadata.srcjar",
|
||||
":monitoring_go_gapic_srcjar-snippets.srcjar",
|
||||
":monitoring_go_gapic_srcjar-test.srcjar",
|
||||
":monitoring_go_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Python
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"py_gapic_assembly_pkg",
|
||||
"py_gapic_library",
|
||||
"py_test",
|
||||
)
|
||||
|
||||
py_gapic_library(
|
||||
name = "monitoring_py_gapic",
|
||||
srcs = [":monitoring_proto"],
|
||||
grpc_service_config = "monitoring_grpc_service_config.json",
|
||||
opt_args = ["python-gapic-namespace=google.cloud"],
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "monitoring.yaml",
|
||||
transport = "grpc",
|
||||
deps = [
|
||||
],
|
||||
)
|
||||
|
||||
py_test(
|
||||
name = "monitoring_py_gapic_test",
|
||||
srcs = [
|
||||
"monitoring_py_gapic_pytest.py",
|
||||
"monitoring_py_gapic_test.py",
|
||||
],
|
||||
legacy_create_init = False,
|
||||
deps = [":monitoring_py_gapic"],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
py_gapic_assembly_pkg(
|
||||
name = "monitoring-v3-py",
|
||||
deps = [
|
||||
":monitoring_py_gapic",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# PHP
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"php_gapic_assembly_pkg",
|
||||
"php_gapic_library",
|
||||
"php_proto_library",
|
||||
)
|
||||
|
||||
php_proto_library(
|
||||
name = "monitoring_php_proto",
|
||||
deps = [":monitoring_proto"],
|
||||
)
|
||||
|
||||
php_gapic_library(
|
||||
name = "monitoring_php_gapic",
|
||||
srcs = [":monitoring_proto_with_info"],
|
||||
grpc_service_config = "monitoring_grpc_service_config.json",
|
||||
migration_mode = "MIGRATING",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "monitoring.yaml",
|
||||
transport = "grpc+rest",
|
||||
deps = [
|
||||
":monitoring_php_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
php_gapic_assembly_pkg(
|
||||
name = "google-cloud-monitoring-v3-php",
|
||||
deps = [
|
||||
":monitoring_php_gapic",
|
||||
":monitoring_php_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Node.js
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"nodejs_gapic_assembly_pkg",
|
||||
"nodejs_gapic_library",
|
||||
)
|
||||
|
||||
nodejs_gapic_library(
|
||||
name = "monitoring_nodejs_gapic",
|
||||
package_name = "@google-cloud/monitoring",
|
||||
src = ":monitoring_proto_with_info",
|
||||
extra_protoc_parameters = ["metadata"],
|
||||
grpc_service_config = "monitoring_grpc_service_config.json",
|
||||
main_service = "monitoring",
|
||||
package = "google.monitoring.v3",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "monitoring.yaml",
|
||||
transport = "grpc",
|
||||
deps = [],
|
||||
)
|
||||
|
||||
nodejs_gapic_assembly_pkg(
|
||||
name = "monitoring-v3-nodejs",
|
||||
deps = [
|
||||
":monitoring_nodejs_gapic",
|
||||
":monitoring_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Ruby
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"ruby_cloud_gapic_library",
|
||||
"ruby_gapic_assembly_pkg",
|
||||
"ruby_grpc_library",
|
||||
"ruby_proto_library",
|
||||
)
|
||||
|
||||
ruby_proto_library(
|
||||
name = "monitoring_ruby_proto",
|
||||
deps = [":monitoring_proto"],
|
||||
)
|
||||
|
||||
ruby_grpc_library(
|
||||
name = "monitoring_ruby_grpc",
|
||||
srcs = [":monitoring_proto"],
|
||||
deps = [":monitoring_ruby_proto"],
|
||||
)
|
||||
|
||||
ruby_cloud_gapic_library(
|
||||
name = "monitoring_ruby_gapic",
|
||||
srcs = [":monitoring_proto_with_info"],
|
||||
extra_protoc_parameters = [
|
||||
"ruby-cloud-api-id=monitoring.googleapis.com",
|
||||
"ruby-cloud-api-shortname=monitoring",
|
||||
"ruby-cloud-env-prefix=MONITORING",
|
||||
"ruby-cloud-gem-name=google-cloud-monitoring-v3",
|
||||
"ruby-cloud-product-url=https://cloud.google.com/monitoring",
|
||||
],
|
||||
grpc_service_config = "monitoring_grpc_service_config.json",
|
||||
rest_numeric_enums = True,
|
||||
ruby_cloud_description = "Cloud Monitoring collects metrics, events, and metadata from Google Cloud, Amazon Web Services (AWS), hosted uptime probes, and application instrumentation.",
|
||||
ruby_cloud_title = "Cloud Monitoring V3",
|
||||
service_yaml = "monitoring.yaml",
|
||||
transport = "grpc",
|
||||
deps = [
|
||||
":monitoring_ruby_grpc",
|
||||
":monitoring_ruby_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
ruby_gapic_assembly_pkg(
|
||||
name = "google-cloud-monitoring-v3-ruby",
|
||||
deps = [
|
||||
":monitoring_ruby_gapic",
|
||||
":monitoring_ruby_grpc",
|
||||
":monitoring_ruby_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# C#
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"csharp_gapic_assembly_pkg",
|
||||
"csharp_gapic_library",
|
||||
"csharp_grpc_library",
|
||||
"csharp_proto_library",
|
||||
)
|
||||
|
||||
csharp_proto_library(
|
||||
name = "monitoring_csharp_proto",
|
||||
extra_opts = [],
|
||||
deps = [":monitoring_proto"],
|
||||
)
|
||||
|
||||
csharp_grpc_library(
|
||||
name = "monitoring_csharp_grpc",
|
||||
srcs = [":monitoring_proto"],
|
||||
deps = [":monitoring_csharp_proto"],
|
||||
)
|
||||
|
||||
csharp_gapic_library(
|
||||
name = "monitoring_csharp_gapic",
|
||||
srcs = [":monitoring_proto_with_info"],
|
||||
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
|
||||
grpc_service_config = "monitoring_grpc_service_config.json",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "monitoring.yaml",
|
||||
transport = "grpc",
|
||||
deps = [
|
||||
":monitoring_csharp_grpc",
|
||||
":monitoring_csharp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
csharp_gapic_assembly_pkg(
|
||||
name = "google-cloud-monitoring-v3-csharp",
|
||||
deps = [
|
||||
":monitoring_csharp_gapic",
|
||||
":monitoring_csharp_grpc",
|
||||
":monitoring_csharp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# C++
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"cc_grpc_library",
|
||||
"cc_proto_library",
|
||||
)
|
||||
|
||||
cc_proto_library(
|
||||
name = "monitoring_cc_proto",
|
||||
deps = [":monitoring_proto"],
|
||||
)
|
||||
|
||||
cc_grpc_library(
|
||||
name = "monitoring_cc_grpc",
|
||||
srcs = [":monitoring_proto"],
|
||||
grpc_only = True,
|
||||
deps = [":monitoring_cc_proto"],
|
||||
)
|
||||
820
google/monitoring/v3/alert.proto
Normal file
820
google/monitoring/v3/alert.proto
Normal file
|
|
@ -0,0 +1,820 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/common.proto";
|
||||
import "google/monitoring/v3/mutation_record.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/wrappers.proto";
|
||||
import "google/rpc/status.proto";
|
||||
import "google/type/timeofday.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "AlertProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// A description of the conditions under which some aspect of your system is
|
||||
// considered to be "unhealthy" and the ways to notify people or services about
|
||||
// this state. For an overview of alerting policies, see
|
||||
// [Introduction to Alerting](https://cloud.google.com/monitoring/alerts/).
|
||||
//
|
||||
message AlertPolicy {
|
||||
option (google.api.resource) = {
|
||||
type: "monitoring.googleapis.com/AlertPolicy"
|
||||
pattern: "projects/{project}/alertPolicies/{alert_policy}"
|
||||
pattern: "organizations/{organization}/alertPolicies/{alert_policy}"
|
||||
pattern: "folders/{folder}/alertPolicies/{alert_policy}"
|
||||
pattern: "*"
|
||||
};
|
||||
|
||||
// Documentation that is included in the notifications and incidents
|
||||
// pertaining to this policy.
|
||||
message Documentation {
|
||||
// Links to content such as playbooks, repositories, and other resources.
|
||||
message Link {
|
||||
// A short display name for the link. The display name must not be empty
|
||||
// or exceed 63 characters. Example: "playbook".
|
||||
string display_name = 1;
|
||||
|
||||
// The url of a webpage.
|
||||
// A url can be templatized by using variables
|
||||
// in the path or the query parameters. The total length of a URL should
|
||||
// not exceed 2083 characters before and after variable expansion.
|
||||
// Example: "https://my_domain.com/playbook?name=${resource.name}"
|
||||
string url = 2;
|
||||
}
|
||||
|
||||
// The body of the documentation, interpreted according to `mime_type`.
|
||||
// The content may not exceed 8,192 Unicode characters and may not exceed
|
||||
// more than 10,240 bytes when encoded in UTF-8 format, whichever is
|
||||
// smaller. This text can be [templatized by using
|
||||
// variables](https://cloud.google.com/monitoring/alerts/doc-variables#doc-vars).
|
||||
string content = 1;
|
||||
|
||||
// The format of the `content` field. Presently, only the value
|
||||
// `"text/markdown"` is supported. See
|
||||
// [Markdown](https://en.wikipedia.org/wiki/Markdown) for more information.
|
||||
string mime_type = 2;
|
||||
|
||||
// Optional. The subject line of the notification. The subject line may not
|
||||
// exceed 10,240 bytes. In notifications generated by this policy, the
|
||||
// contents of the subject line after variable expansion will be truncated
|
||||
// to 255 bytes or shorter at the latest UTF-8 character boundary. The
|
||||
// 255-byte limit is recommended by [this
|
||||
// thread](https://stackoverflow.com/questions/1592291/what-is-the-email-subject-length-limit).
|
||||
// It is both the limit imposed by some third-party ticketing products and
|
||||
// it is common to define textual fields in databases as VARCHAR(255).
|
||||
//
|
||||
// The contents of the subject line can be [templatized by using
|
||||
// variables](https://cloud.google.com/monitoring/alerts/doc-variables#doc-vars).
|
||||
// If this field is missing or empty, a default subject line will be
|
||||
// generated.
|
||||
string subject = 3 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Links to content such as playbooks, repositories, and other
|
||||
// resources. This field can contain up to 3 entries.
|
||||
repeated Link links = 4 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// A condition is a true/false test that determines when an alerting policy
|
||||
// should open an incident. If a condition evaluates to true, it signifies
|
||||
// that something is wrong.
|
||||
message Condition {
|
||||
option (google.api.resource) = {
|
||||
type: "monitoring.googleapis.com/AlertPolicyCondition"
|
||||
pattern: "projects/{project}/alertPolicies/{alert_policy}/conditions/{condition}"
|
||||
pattern: "organizations/{organization}/alertPolicies/{alert_policy}/conditions/{condition}"
|
||||
pattern: "folders/{folder}/alertPolicies/{alert_policy}/conditions/{condition}"
|
||||
pattern: "*"
|
||||
};
|
||||
|
||||
// Specifies how many time series must fail a predicate to trigger a
|
||||
// condition. If not specified, then a `{count: 1}` trigger is used.
|
||||
message Trigger {
|
||||
// A type of trigger.
|
||||
oneof type {
|
||||
// The absolute number of time series that must fail
|
||||
// the predicate for the condition to be triggered.
|
||||
int32 count = 1;
|
||||
|
||||
// The percentage of time series that must fail the
|
||||
// predicate for the condition to be triggered.
|
||||
double percent = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// A condition control that determines how metric-threshold conditions
|
||||
// are evaluated when data stops arriving.
|
||||
// This control doesn't affect metric-absence policies.
|
||||
enum EvaluationMissingData {
|
||||
// An unspecified evaluation missing data option. Equivalent to
|
||||
// EVALUATION_MISSING_DATA_NO_OP.
|
||||
EVALUATION_MISSING_DATA_UNSPECIFIED = 0;
|
||||
|
||||
// If there is no data to evaluate the condition, then evaluate the
|
||||
// condition as false.
|
||||
EVALUATION_MISSING_DATA_INACTIVE = 1;
|
||||
|
||||
// If there is no data to evaluate the condition, then evaluate the
|
||||
// condition as true.
|
||||
EVALUATION_MISSING_DATA_ACTIVE = 2;
|
||||
|
||||
// Do not evaluate the condition to any value if there is no data.
|
||||
EVALUATION_MISSING_DATA_NO_OP = 3;
|
||||
}
|
||||
|
||||
// A condition type that compares a collection of time series
|
||||
// against a threshold.
|
||||
message MetricThreshold {
|
||||
// Options used when forecasting the time series and testing
|
||||
// the predicted value against the threshold.
|
||||
message ForecastOptions {
|
||||
// Required. The length of time into the future to forecast whether a
|
||||
// time series will violate the threshold. If the predicted value is
|
||||
// found to violate the threshold, and the violation is observed in all
|
||||
// forecasts made for the configured `duration`, then the time series is
|
||||
// considered to be failing.
|
||||
// The forecast horizon can range from 1 hour to 60 hours.
|
||||
google.protobuf.Duration forecast_horizon = 1
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Required. A
|
||||
// [filter](https://cloud.google.com/monitoring/api/v3/filters) that
|
||||
// identifies which time series should be compared with the threshold.
|
||||
//
|
||||
// The filter is similar to the one that is specified in the
|
||||
// [`ListTimeSeries`
|
||||
// request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)
|
||||
// (that call is useful to verify the time series that will be retrieved /
|
||||
// processed). The filter must specify the metric type and the resource
|
||||
// type. Optionally, it can specify resource labels and metric labels.
|
||||
// This field must not exceed 2048 Unicode characters in length.
|
||||
string filter = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Specifies the alignment of data points in individual time series as
|
||||
// well as how to combine the retrieved time series together (such as
|
||||
// when aggregating multiple streams on each resource to a single
|
||||
// stream for each resource or when aggregating streams across all
|
||||
// members of a group of resources). Multiple aggregations
|
||||
// are applied in the order specified.
|
||||
//
|
||||
// This field is similar to the one in the [`ListTimeSeries`
|
||||
// request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
|
||||
// It is advisable to use the `ListTimeSeries` method when debugging this
|
||||
// field.
|
||||
repeated Aggregation aggregations = 8;
|
||||
|
||||
// A [filter](https://cloud.google.com/monitoring/api/v3/filters) that
|
||||
// identifies a time series that should be used as the denominator of a
|
||||
// ratio that will be compared with the threshold. If a
|
||||
// `denominator_filter` is specified, the time series specified by the
|
||||
// `filter` field will be used as the numerator.
|
||||
//
|
||||
// The filter must specify the metric type and optionally may contain
|
||||
// restrictions on resource type, resource labels, and metric labels.
|
||||
// This field may not exceed 2048 Unicode characters in length.
|
||||
string denominator_filter = 9;
|
||||
|
||||
// Specifies the alignment of data points in individual time series
|
||||
// selected by `denominatorFilter` as
|
||||
// well as how to combine the retrieved time series together (such as
|
||||
// when aggregating multiple streams on each resource to a single
|
||||
// stream for each resource or when aggregating streams across all
|
||||
// members of a group of resources).
|
||||
//
|
||||
// When computing ratios, the `aggregations` and
|
||||
// `denominator_aggregations` fields must use the same alignment period
|
||||
// and produce time series that have the same periodicity and labels.
|
||||
repeated Aggregation denominator_aggregations = 10;
|
||||
|
||||
// When this field is present, the `MetricThreshold` condition forecasts
|
||||
// whether the time series is predicted to violate the threshold within
|
||||
// the `forecast_horizon`. When this field is not set, the
|
||||
// `MetricThreshold` tests the current value of the timeseries against the
|
||||
// threshold.
|
||||
ForecastOptions forecast_options = 12;
|
||||
|
||||
// The comparison to apply between the time series (indicated by `filter`
|
||||
// and `aggregation`) and the threshold (indicated by `threshold_value`).
|
||||
// The comparison is applied on each time series, with the time series
|
||||
// on the left-hand side and the threshold on the right-hand side.
|
||||
//
|
||||
// Only `COMPARISON_LT` and `COMPARISON_GT` are supported currently.
|
||||
ComparisonType comparison = 4;
|
||||
|
||||
// A value against which to compare the time series.
|
||||
double threshold_value = 5;
|
||||
|
||||
// The amount of time that a time series must violate the
|
||||
// threshold to be considered failing. Currently, only values
|
||||
// that are a multiple of a minute--e.g., 0, 60, 120, or 300
|
||||
// seconds--are supported. If an invalid value is given, an
|
||||
// error will be returned. When choosing a duration, it is useful to
|
||||
// keep in mind the frequency of the underlying time series data
|
||||
// (which may also be affected by any alignments specified in the
|
||||
// `aggregations` field); a good duration is long enough so that a single
|
||||
// outlier does not generate spurious alerts, but short enough that
|
||||
// unhealthy states are detected and alerted on quickly.
|
||||
google.protobuf.Duration duration = 6;
|
||||
|
||||
// The number/percent of time series for which the comparison must hold
|
||||
// in order for the condition to trigger. If unspecified, then the
|
||||
// condition will trigger if the comparison is true for any of the
|
||||
// time series that have been identified by `filter` and `aggregations`,
|
||||
// or by the ratio, if `denominator_filter` and `denominator_aggregations`
|
||||
// are specified.
|
||||
Trigger trigger = 7;
|
||||
|
||||
// A condition control that determines how metric-threshold conditions
|
||||
// are evaluated when data stops arriving. To use this control, the value
|
||||
// of the `duration` field must be greater than or equal to 60 seconds.
|
||||
EvaluationMissingData evaluation_missing_data = 11;
|
||||
}
|
||||
|
||||
// A condition type that checks that monitored resources
|
||||
// are reporting data. The configuration defines a metric and
|
||||
// a set of monitored resources. The predicate is considered in violation
|
||||
// when a time series for the specified metric of a monitored
|
||||
// resource does not include any data in the specified `duration`.
|
||||
message MetricAbsence {
|
||||
// Required. A
|
||||
// [filter](https://cloud.google.com/monitoring/api/v3/filters) that
|
||||
// identifies which time series should be compared with the threshold.
|
||||
//
|
||||
// The filter is similar to the one that is specified in the
|
||||
// [`ListTimeSeries`
|
||||
// request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list)
|
||||
// (that call is useful to verify the time series that will be retrieved /
|
||||
// processed). The filter must specify the metric type and the resource
|
||||
// type. Optionally, it can specify resource labels and metric labels.
|
||||
// This field must not exceed 2048 Unicode characters in length.
|
||||
string filter = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Specifies the alignment of data points in individual time series as
|
||||
// well as how to combine the retrieved time series together (such as
|
||||
// when aggregating multiple streams on each resource to a single
|
||||
// stream for each resource or when aggregating streams across all
|
||||
// members of a group of resources). Multiple aggregations
|
||||
// are applied in the order specified.
|
||||
//
|
||||
// This field is similar to the one in the [`ListTimeSeries`
|
||||
// request](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list).
|
||||
// It is advisable to use the `ListTimeSeries` method when debugging this
|
||||
// field.
|
||||
repeated Aggregation aggregations = 5;
|
||||
|
||||
// The amount of time that a time series must fail to report new
|
||||
// data to be considered failing. The minimum value of this field
|
||||
// is 120 seconds. Larger values that are a multiple of a
|
||||
// minute--for example, 240 or 300 seconds--are supported.
|
||||
// If an invalid value is given, an
|
||||
// error will be returned. The `Duration.nanos` field is
|
||||
// ignored.
|
||||
google.protobuf.Duration duration = 2;
|
||||
|
||||
// The number/percent of time series for which the comparison must hold
|
||||
// in order for the condition to trigger. If unspecified, then the
|
||||
// condition will trigger if the comparison is true for any of the
|
||||
// time series that have been identified by `filter` and `aggregations`.
|
||||
Trigger trigger = 3;
|
||||
}
|
||||
|
||||
// A condition type that checks whether a log message in the [scoping
|
||||
// project](https://cloud.google.com/monitoring/api/v3#project_name)
|
||||
// satisfies the given filter. Logs from other projects in the metrics
|
||||
// scope are not evaluated.
|
||||
message LogMatch {
|
||||
// Required. A logs-based filter. See [Advanced Logs
|
||||
// Queries](https://cloud.google.com/logging/docs/view/advanced-queries)
|
||||
// for how this filter should be constructed.
|
||||
string filter = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. A map from a label key to an extractor expression, which is
|
||||
// used to extract the value for this label key. Each entry in this map is
|
||||
// a specification for how data should be extracted from log entries that
|
||||
// match `filter`. Each combination of extracted values is treated as a
|
||||
// separate rule for the purposes of triggering notifications. Label keys
|
||||
// and corresponding values can be used in notifications generated by this
|
||||
// condition.
|
||||
//
|
||||
// Please see [the documentation on logs-based metric
|
||||
// `valueExtractor`s](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.metrics#LogMetric.FIELDS.value_extractor)
|
||||
// for syntax and examples.
|
||||
map<string, string> label_extractors = 2;
|
||||
}
|
||||
|
||||
// A condition type that allows alerting policies to be defined using
|
||||
// [Monitoring Query Language](https://cloud.google.com/monitoring/mql).
|
||||
message MonitoringQueryLanguageCondition {
|
||||
// [Monitoring Query Language](https://cloud.google.com/monitoring/mql)
|
||||
// query that outputs a boolean stream.
|
||||
string query = 1;
|
||||
|
||||
// The amount of time that a time series must violate the
|
||||
// threshold to be considered failing. Currently, only values
|
||||
// that are a multiple of a minute--e.g., 0, 60, 120, or 300
|
||||
// seconds--are supported. If an invalid value is given, an
|
||||
// error will be returned. When choosing a duration, it is useful to
|
||||
// keep in mind the frequency of the underlying time series data
|
||||
// (which may also be affected by any alignments specified in the
|
||||
// `aggregations` field); a good duration is long enough so that a single
|
||||
// outlier does not generate spurious alerts, but short enough that
|
||||
// unhealthy states are detected and alerted on quickly.
|
||||
google.protobuf.Duration duration = 2;
|
||||
|
||||
// The number/percent of time series for which the comparison must hold
|
||||
// in order for the condition to trigger. If unspecified, then the
|
||||
// condition will trigger if the comparison is true for any of the
|
||||
// time series that have been identified by `filter` and `aggregations`,
|
||||
// or by the ratio, if `denominator_filter` and `denominator_aggregations`
|
||||
// are specified.
|
||||
Trigger trigger = 3;
|
||||
|
||||
// A condition control that determines how metric-threshold conditions
|
||||
// are evaluated when data stops arriving.
|
||||
EvaluationMissingData evaluation_missing_data = 4;
|
||||
}
|
||||
|
||||
// A condition type that allows alerting policies to be defined using
|
||||
// [Prometheus Query Language
|
||||
// (PromQL)](https://prometheus.io/docs/prometheus/latest/querying/basics/).
|
||||
//
|
||||
// The PrometheusQueryLanguageCondition message contains information
|
||||
// from a Prometheus alerting rule and its associated rule group.
|
||||
//
|
||||
// A Prometheus alerting rule is described
|
||||
// [here](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/).
|
||||
// The semantics of a Prometheus alerting rule is described
|
||||
// [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule).
|
||||
//
|
||||
// A Prometheus rule group is described
|
||||
// [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/).
|
||||
// The semantics of a Prometheus rule group is described
|
||||
// [here](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule_group).
|
||||
//
|
||||
// Because Cloud Alerting has no representation of a Prometheus rule
|
||||
// group resource, we must embed the information of the parent rule
|
||||
// group inside each of the conditions that refer to it. We must also
|
||||
// update the contents of all Prometheus alerts in case the information
|
||||
// of their rule group changes.
|
||||
//
|
||||
// The PrometheusQueryLanguageCondition protocol buffer combines the
|
||||
// information of the corresponding rule group and alerting rule.
|
||||
// The structure of the PrometheusQueryLanguageCondition protocol buffer
|
||||
// does NOT mimic the structure of the Prometheus rule group and alerting
|
||||
// rule YAML declarations. The PrometheusQueryLanguageCondition protocol
|
||||
// buffer may change in the future to support future rule group and/or
|
||||
// alerting rule features. There are no new such features at the present
|
||||
// time (2023-06-26).
|
||||
message PrometheusQueryLanguageCondition {
|
||||
// Required. The PromQL expression to evaluate. Every evaluation cycle
|
||||
// this expression is evaluated at the current time, and all resultant
|
||||
// time series become pending/firing alerts. This field must not be empty.
|
||||
string query = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. Alerts are considered firing once their PromQL expression was
|
||||
// evaluated to be "true" for this long.
|
||||
// Alerts whose PromQL expression was not evaluated to be "true" for
|
||||
// long enough are considered pending.
|
||||
// Must be a non-negative duration or missing.
|
||||
// This field is optional. Its default value is zero.
|
||||
google.protobuf.Duration duration = 2
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. How often this rule should be evaluated.
|
||||
// Must be a positive multiple of 30 seconds or missing.
|
||||
// This field is optional. Its default value is 30 seconds.
|
||||
// If this PrometheusQueryLanguageCondition was generated from a
|
||||
// Prometheus alerting rule, then this value should be taken from the
|
||||
// enclosing rule group.
|
||||
google.protobuf.Duration evaluation_interval = 3
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Labels to add to or overwrite in the PromQL query result.
|
||||
// Label names [must be
|
||||
// valid](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
|
||||
// Label values can be [templatized by using
|
||||
// variables](https://cloud.google.com/monitoring/alerts/doc-variables#doc-vars).
|
||||
// The only available variable names are the names of the labels in the
|
||||
// PromQL result, including "__name__" and "value". "labels" may be empty.
|
||||
map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The rule group name of this alert in the corresponding
|
||||
// Prometheus configuration file.
|
||||
//
|
||||
// Some external tools may require this field to be populated correctly
|
||||
// in order to refer to the original Prometheus configuration file.
|
||||
// The rule group name and the alert name are necessary to update the
|
||||
// relevant AlertPolicies in case the definition of the rule group changes
|
||||
// in the future.
|
||||
//
|
||||
// This field is optional. If this field is not empty, then it must
|
||||
// contain a valid UTF-8 string.
|
||||
// This field may not exceed 2048 Unicode characters in length.
|
||||
string rule_group = 5 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The alerting rule name of this alert in the corresponding
|
||||
// Prometheus configuration file.
|
||||
//
|
||||
// Some external tools may require this field to be populated correctly
|
||||
// in order to refer to the original Prometheus configuration file.
|
||||
// The rule group name and the alert name are necessary to update the
|
||||
// relevant AlertPolicies in case the definition of the rule group changes
|
||||
// in the future.
|
||||
//
|
||||
// This field is optional. If this field is not empty, then it must be a
|
||||
// [valid Prometheus label
|
||||
// name](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
|
||||
// This field may not exceed 2048 Unicode characters in length.
|
||||
string alert_rule = 6 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Whether to disable metric existence validation for this
|
||||
// condition.
|
||||
//
|
||||
// This allows alerting policies to be defined on metrics that do not yet
|
||||
// exist, improving advanced customer workflows such as configuring
|
||||
// alerting policies using Terraform.
|
||||
//
|
||||
// Users with the `monitoring.alertPolicyViewer` role are able to see the
|
||||
// name of the non-existent metric in the alerting policy condition.
|
||||
bool disable_metric_validation = 7
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// A condition that allows alerting policies to be defined using GoogleSQL.
|
||||
// SQL conditions examine a sliding window of logs using GoogleSQL.
|
||||
// Alert policies with SQL conditions may incur additional billing.
|
||||
message SqlCondition {
|
||||
// Used to schedule the query to run every so many minutes.
|
||||
message Minutes {
|
||||
// Required. Number of minutes between runs. The interval must be
|
||||
// greater than or equal to 5 minutes and less than or equal to 1440
|
||||
// minutes.
|
||||
int32 periodicity = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Used to schedule the query to run every so many hours.
|
||||
message Hourly {
|
||||
// Required. The number of hours between runs. Must be greater than or
|
||||
// equal to 1 hour and less than or equal to 48 hours.
|
||||
int32 periodicity = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. The number of minutes after the hour (in UTC) to run the
|
||||
// query. Must be greater than or equal to 0 minutes and less than or
|
||||
// equal to 59 minutes. If left unspecified, then an arbitrary offset
|
||||
// is used.
|
||||
optional int32 minute_offset = 2
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// Used to schedule the query to run every so many days.
|
||||
message Daily {
|
||||
// Required. The number of days between runs. Must be greater than or
|
||||
// equal to 1 day and less than or equal to 31 days.
|
||||
int32 periodicity = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. The time of day (in UTC) at which the query should run. If
|
||||
// left unspecified, the server picks an arbitrary time of day and runs
|
||||
// the query at the same time each day.
|
||||
google.type.TimeOfDay execution_time = 2
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// A test that checks if the number of rows in the result set
|
||||
// violates some threshold.
|
||||
message RowCountTest {
|
||||
// Required. The comparison to apply between the number of rows returned
|
||||
// by the query and the threshold.
|
||||
ComparisonType comparison = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The value against which to compare the row count.
|
||||
int64 threshold = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// A test that uses an alerting result in a boolean column produced by
|
||||
// the SQL query.
|
||||
message BooleanTest {
|
||||
// Required. The name of the column containing the boolean value. If the
|
||||
// value in a row is NULL, that row is ignored.
|
||||
string column = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Required. The Log Analytics SQL query to run, as a string. The query
|
||||
// must conform to the required shape. Specifically, the query must not
|
||||
// try to filter the input by time. A filter will automatically be
|
||||
// applied to filter the input so that the query receives all rows
|
||||
// received since the last time the query was run.
|
||||
//
|
||||
// For example, the following query extracts all log entries containing an
|
||||
// HTTP request:
|
||||
//
|
||||
// SELECT
|
||||
// timestamp, log_name, severity, http_request, resource, labels
|
||||
// FROM
|
||||
// my-project.global._Default._AllLogs
|
||||
// WHERE
|
||||
// http_request IS NOT NULL
|
||||
string query = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// The schedule indicates how often the query should be run.
|
||||
oneof schedule {
|
||||
// Schedule the query to execute every so many minutes.
|
||||
Minutes minutes = 2;
|
||||
|
||||
// Schedule the query to execute every so many hours.
|
||||
Hourly hourly = 3;
|
||||
|
||||
// Schedule the query to execute every so many days.
|
||||
Daily daily = 4;
|
||||
}
|
||||
|
||||
// The test to be run against the SQL result set.
|
||||
oneof evaluate {
|
||||
// Test the row count against a threshold.
|
||||
RowCountTest row_count_test = 5;
|
||||
|
||||
// Test the boolean value in the indicated column.
|
||||
BooleanTest boolean_test = 6;
|
||||
}
|
||||
}
|
||||
|
||||
// Required if the condition exists. The unique resource name for this
|
||||
// condition. Its format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID]
|
||||
//
|
||||
// `[CONDITION_ID]` is assigned by Cloud Monitoring when the
|
||||
// condition is created as part of a new or updated alerting policy.
|
||||
//
|
||||
// When calling the
|
||||
// [alertPolicies.create][google.monitoring.v3.AlertPolicyService.CreateAlertPolicy]
|
||||
// method, do not include the `name` field in the conditions of the
|
||||
// requested alerting policy. Cloud Monitoring creates the
|
||||
// condition identifiers and includes them in the new policy.
|
||||
//
|
||||
// When calling the
|
||||
// [alertPolicies.update][google.monitoring.v3.AlertPolicyService.UpdateAlertPolicy]
|
||||
// method to update a policy, including a condition `name` causes the
|
||||
// existing condition to be updated. Conditions without names are added to
|
||||
// the updated policy. Existing conditions are deleted if they are not
|
||||
// updated.
|
||||
//
|
||||
// Best practice is to preserve `[CONDITION_ID]` if you make only small
|
||||
// changes, such as those to condition thresholds, durations, or trigger
|
||||
// values. Otherwise, treat the change as a new condition and let the
|
||||
// existing condition be deleted.
|
||||
string name = 12;
|
||||
|
||||
// A short name or phrase used to identify the condition in dashboards,
|
||||
// notifications, and incidents. To avoid confusion, don't use the same
|
||||
// display name for multiple conditions in the same policy.
|
||||
string display_name = 6;
|
||||
|
||||
// Only one of the following condition types will be specified.
|
||||
oneof condition {
|
||||
// A condition that compares a time series against a threshold.
|
||||
MetricThreshold condition_threshold = 1;
|
||||
|
||||
// A condition that checks that a time series continues to
|
||||
// receive new data points.
|
||||
MetricAbsence condition_absent = 2;
|
||||
|
||||
// A condition that checks for log messages matching given constraints. If
|
||||
// set, no other conditions can be present.
|
||||
LogMatch condition_matched_log = 20;
|
||||
|
||||
// A condition that uses the Monitoring Query Language to define
|
||||
// alerts.
|
||||
MonitoringQueryLanguageCondition condition_monitoring_query_language = 19;
|
||||
|
||||
// A condition that uses the Prometheus query language to define alerts.
|
||||
PrometheusQueryLanguageCondition condition_prometheus_query_language = 21;
|
||||
|
||||
// A condition that periodically evaluates a SQL query result.
|
||||
SqlCondition condition_sql = 22;
|
||||
}
|
||||
}
|
||||
|
||||
// Operators for combining conditions.
|
||||
enum ConditionCombinerType {
|
||||
// An unspecified combiner.
|
||||
COMBINE_UNSPECIFIED = 0;
|
||||
|
||||
// Combine conditions using the logical `AND` operator. An
|
||||
// incident is created only if all the conditions are met
|
||||
// simultaneously. This combiner is satisfied if all conditions are
|
||||
// met, even if they are met on completely different resources.
|
||||
AND = 1;
|
||||
|
||||
// Combine conditions using the logical `OR` operator. An incident
|
||||
// is created if any of the listed conditions is met.
|
||||
OR = 2;
|
||||
|
||||
// Combine conditions using logical `AND` operator, but unlike the regular
|
||||
// `AND` option, an incident is created only if all conditions are met
|
||||
// simultaneously on at least one resource.
|
||||
AND_WITH_MATCHING_RESOURCE = 3;
|
||||
}
|
||||
|
||||
// Control over how the notification channels in `notification_channels`
|
||||
// are notified when this alert fires.
|
||||
message AlertStrategy {
|
||||
// Control over the rate of notifications sent to this alerting policy's
|
||||
// notification channels.
|
||||
message NotificationRateLimit {
|
||||
// Not more than one notification per `period`.
|
||||
google.protobuf.Duration period = 1;
|
||||
}
|
||||
|
||||
// Control when notifications will be sent out.
|
||||
enum NotificationPrompt {
|
||||
// No strategy specified. Treated as error.
|
||||
NOTIFICATION_PROMPT_UNSPECIFIED = 0;
|
||||
|
||||
// Notify when an incident is opened.
|
||||
OPENED = 1;
|
||||
|
||||
// Notify when an incident is closed.
|
||||
CLOSED = 3;
|
||||
}
|
||||
|
||||
// Control over how the notification channels in `notification_channels`
|
||||
// are notified when this alert fires, on a per-channel basis.
|
||||
message NotificationChannelStrategy {
|
||||
// The full REST resource name for the notification channels that these
|
||||
// settings apply to. Each of these correspond to the name field in one
|
||||
// of the NotificationChannel objects referenced in the
|
||||
// notification_channels field of this AlertPolicy.
|
||||
// The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
|
||||
repeated string notification_channel_names = 1;
|
||||
|
||||
// The frequency at which to send reminder notifications for open
|
||||
// incidents.
|
||||
google.protobuf.Duration renotify_interval = 2;
|
||||
}
|
||||
|
||||
// Required for log-based alerting policies, i.e. policies with a `LogMatch`
|
||||
// condition.
|
||||
//
|
||||
// This limit is not implemented for alerting policies that do not have
|
||||
// a LogMatch condition.
|
||||
NotificationRateLimit notification_rate_limit = 1;
|
||||
|
||||
// For log-based alert policies, the notification prompts is always
|
||||
// [OPENED]. For non log-based alert policies, the notification prompts can
|
||||
// be [OPENED] or [OPENED, CLOSED].
|
||||
repeated NotificationPrompt notification_prompts = 2;
|
||||
|
||||
// If an alerting policy that was active has no data for this long, any open
|
||||
// incidents will close
|
||||
google.protobuf.Duration auto_close = 3;
|
||||
|
||||
// Control how notifications will be sent out, on a per-channel basis.
|
||||
repeated NotificationChannelStrategy notification_channel_strategy = 4;
|
||||
}
|
||||
|
||||
// An enumeration of possible severity level for an alerting policy.
|
||||
enum Severity {
|
||||
// No severity is specified. This is the default value.
|
||||
SEVERITY_UNSPECIFIED = 0;
|
||||
|
||||
// This is the highest severity level. Use this if the problem could
|
||||
// cause significant damage or downtime.
|
||||
CRITICAL = 1;
|
||||
|
||||
// This is the medium severity level. Use this if the problem could
|
||||
// cause minor damage or downtime.
|
||||
ERROR = 2;
|
||||
|
||||
// This is the lowest severity level. Use this if the problem is not causing
|
||||
// any damage or downtime, but could potentially lead to a problem in the
|
||||
// future.
|
||||
WARNING = 3;
|
||||
}
|
||||
|
||||
// Identifier. Required if the policy exists. The resource name for this
|
||||
// policy. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]
|
||||
//
|
||||
// `[ALERT_POLICY_ID]` is assigned by Cloud Monitoring when the policy
|
||||
// is created. When calling the
|
||||
// [alertPolicies.create][google.monitoring.v3.AlertPolicyService.CreateAlertPolicy]
|
||||
// method, do not include the `name` field in the alerting policy passed as
|
||||
// part of the request.
|
||||
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
|
||||
|
||||
// A short name or phrase used to identify the policy in dashboards,
|
||||
// notifications, and incidents. To avoid confusion, don't use the same
|
||||
// display name for multiple policies in the same project. The name is
|
||||
// limited to 512 Unicode characters.
|
||||
//
|
||||
// The convention for the display_name of a PrometheusQueryLanguageCondition
|
||||
// is "{rule group name}/{alert name}", where the {rule group name} and
|
||||
// {alert name} should be taken from the corresponding Prometheus
|
||||
// configuration file. This convention is not enforced.
|
||||
// In any case the display_name is not a unique key of the AlertPolicy.
|
||||
string display_name = 2;
|
||||
|
||||
// Documentation that is included with notifications and incidents related to
|
||||
// this policy. Best practice is for the documentation to include information
|
||||
// to help responders understand, mitigate, escalate, and correct the
|
||||
// underlying problems detected by the alerting policy. Notification channels
|
||||
// that have limited capacity might not show this documentation.
|
||||
Documentation documentation = 13;
|
||||
|
||||
// User-supplied key/value data to be used for organizing and
|
||||
// identifying the `AlertPolicy` objects.
|
||||
//
|
||||
// The field can contain up to 64 entries. Each key and value is limited to
|
||||
// 63 Unicode characters or 128 bytes, whichever is smaller. Labels and
|
||||
// values can contain only lowercase letters, numerals, underscores, and
|
||||
// dashes. Keys must begin with a letter.
|
||||
//
|
||||
// Note that Prometheus {alert name} is a
|
||||
// [valid Prometheus label
|
||||
// names](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels),
|
||||
// whereas Prometheus {rule group} is an unrestricted UTF-8 string.
|
||||
// This means that they cannot be stored as-is in user labels, because
|
||||
// they may contain characters that are not allowed in user-label values.
|
||||
map<string, string> user_labels = 16;
|
||||
|
||||
// A list of conditions for the policy. The conditions are combined by AND or
|
||||
// OR according to the `combiner` field. If the combined conditions evaluate
|
||||
// to true, then an incident is created. A policy can have from one to six
|
||||
// conditions.
|
||||
// If `condition_time_series_query_language` is present, it must be the only
|
||||
// `condition`.
|
||||
// If `condition_monitoring_query_language` is present, it must be the only
|
||||
// `condition`.
|
||||
repeated Condition conditions = 12;
|
||||
|
||||
// How to combine the results of multiple conditions to determine if an
|
||||
// incident should be opened.
|
||||
// If `condition_time_series_query_language` is present, this must be
|
||||
// `COMBINE_UNSPECIFIED`.
|
||||
ConditionCombinerType combiner = 6;
|
||||
|
||||
// Whether or not the policy is enabled. On write, the default interpretation
|
||||
// if unset is that the policy is enabled. On read, clients should not make
|
||||
// any assumption about the state if it has not been populated. The
|
||||
// field should always be populated on List and Get operations, unless
|
||||
// a field projection has been specified that strips it out.
|
||||
google.protobuf.BoolValue enabled = 17;
|
||||
|
||||
// Read-only description of how the alerting policy is invalid. This field is
|
||||
// only set when the alerting policy is invalid. An invalid alerting policy
|
||||
// will not generate incidents.
|
||||
google.rpc.Status validity = 18;
|
||||
|
||||
// Identifies the notification channels to which notifications should be sent
|
||||
// when incidents are opened or closed or when new violations occur on
|
||||
// an already opened incident. Each element of this array corresponds to
|
||||
// the `name` field in each of the
|
||||
// [`NotificationChannel`][google.monitoring.v3.NotificationChannel]
|
||||
// objects that are returned from the [`ListNotificationChannels`]
|
||||
// [google.monitoring.v3.NotificationChannelService.ListNotificationChannels]
|
||||
// method. The format of the entries in this field is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
|
||||
repeated string notification_channels = 14;
|
||||
|
||||
// A read-only record of the creation of the alerting policy. If provided
|
||||
// in a call to create or update, this field will be ignored.
|
||||
MutationRecord creation_record = 10;
|
||||
|
||||
// A read-only record of the most recent change to the alerting policy. If
|
||||
// provided in a call to create or update, this field will be ignored.
|
||||
MutationRecord mutation_record = 11;
|
||||
|
||||
// Control over how this alerting policy's notification channels are notified.
|
||||
AlertStrategy alert_strategy = 21;
|
||||
|
||||
// Optional. The severity of an alerting policy indicates how important
|
||||
// incidents generated by that policy are. The severity level will be
|
||||
// displayed on the Incident detail page and in notifications.
|
||||
Severity severity = 22 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
258
google/monitoring/v3/alert_service.proto
Normal file
258
google/monitoring/v3/alert_service.proto
Normal file
|
|
@ -0,0 +1,258 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/alert.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "AlertServiceProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// The AlertPolicyService API is used to manage (list, create, delete,
|
||||
// edit) alert policies in Cloud Monitoring. An alerting policy is
|
||||
// a description of the conditions under which some aspect of your
|
||||
// system is considered to be "unhealthy" and the ways to notify
|
||||
// people or services about this state. In addition to using this API, alert
|
||||
// policies can also be managed through
|
||||
// [Cloud Monitoring](https://cloud.google.com/monitoring/docs/),
|
||||
// which can be reached by clicking the "Monitoring" tab in
|
||||
// [Cloud console](https://console.cloud.google.com/).
|
||||
service AlertPolicyService {
|
||||
option (google.api.default_host) = "monitoring.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/monitoring,"
|
||||
"https://www.googleapis.com/auth/monitoring.read";
|
||||
|
||||
// Lists the existing alerting policies for the workspace.
|
||||
rpc ListAlertPolicies(ListAlertPoliciesRequest)
|
||||
returns (ListAlertPoliciesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*}/alertPolicies"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Gets a single alerting policy.
|
||||
rpc GetAlertPolicy(GetAlertPolicyRequest) returns (AlertPolicy) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*/alertPolicies/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a new alerting policy.
|
||||
//
|
||||
// Design your application to single-thread API calls that modify the state of
|
||||
// alerting policies in a single project. This includes calls to
|
||||
// CreateAlertPolicy, DeleteAlertPolicy and UpdateAlertPolicy.
|
||||
rpc CreateAlertPolicy(CreateAlertPolicyRequest) returns (AlertPolicy) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*}/alertPolicies"
|
||||
body: "alert_policy"
|
||||
};
|
||||
option (google.api.method_signature) = "name,alert_policy";
|
||||
}
|
||||
|
||||
// Deletes an alerting policy.
|
||||
//
|
||||
// Design your application to single-thread API calls that modify the state of
|
||||
// alerting policies in a single project. This includes calls to
|
||||
// CreateAlertPolicy, DeleteAlertPolicy and UpdateAlertPolicy.
|
||||
rpc DeleteAlertPolicy(DeleteAlertPolicyRequest)
|
||||
returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v3/{name=projects/*/alertPolicies/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Updates an alerting policy. You can either replace the entire policy with
|
||||
// a new one or replace only certain fields in the current alerting policy by
|
||||
// specifying the fields to be updated via `updateMask`. Returns the
|
||||
// updated alerting policy.
|
||||
//
|
||||
// Design your application to single-thread API calls that modify the state of
|
||||
// alerting policies in a single project. This includes calls to
|
||||
// CreateAlertPolicy, DeleteAlertPolicy and UpdateAlertPolicy.
|
||||
rpc UpdateAlertPolicy(UpdateAlertPolicyRequest) returns (AlertPolicy) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v3/{alert_policy.name=projects/*/alertPolicies/*}"
|
||||
body: "alert_policy"
|
||||
};
|
||||
option (google.api.method_signature) = "update_mask,alert_policy";
|
||||
}
|
||||
}
|
||||
|
||||
// The protocol for the `CreateAlertPolicy` request.
|
||||
message CreateAlertPolicyRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) in which
|
||||
// to create the alerting policy. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
//
|
||||
// Note that this field names the parent container in which the alerting
|
||||
// policy will be written, not the name of the created policy. |name| must be
|
||||
// a host project of a Metrics Scope, otherwise INVALID_ARGUMENT error will
|
||||
// return. The alerting policy that is returned will have a name that contains
|
||||
// a normalized representation of this name as a prefix but adds a suffix of
|
||||
// the form `/alertPolicies/[ALERT_POLICY_ID]`, identifying the policy in the
|
||||
// container.
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/AlertPolicy"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The requested alerting policy. You should omit the `name` field
|
||||
// in this policy. The name will be returned in the new policy, including a
|
||||
// new `[ALERT_POLICY_ID]` value.
|
||||
AlertPolicy alert_policy = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The protocol for the `GetAlertPolicy` request.
|
||||
message GetAlertPolicyRequest {
|
||||
// Required. The alerting policy to retrieve. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/AlertPolicy"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The protocol for the `ListAlertPolicies` request.
|
||||
message ListAlertPoliciesRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) whose
|
||||
// alert policies are to be listed. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
//
|
||||
// Note that this field names the parent container in which the alerting
|
||||
// policies to be listed are stored. To retrieve a single alerting policy
|
||||
// by name, use the
|
||||
// [GetAlertPolicy][google.monitoring.v3.AlertPolicyService.GetAlertPolicy]
|
||||
// operation, instead.
|
||||
string name = 4 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/AlertPolicy"
|
||||
}
|
||||
];
|
||||
|
||||
// Optional. If provided, this field specifies the criteria that must be met
|
||||
// by alert policies to be included in the response.
|
||||
//
|
||||
// For more details, see [sorting and
|
||||
// filtering](https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).
|
||||
string filter = 5 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. A comma-separated list of fields by which to sort the result.
|
||||
// Supports the same set of field references as the `filter` field. Entries
|
||||
// can be prefixed with a minus sign to sort by the field in descending order.
|
||||
//
|
||||
// For more details, see [sorting and
|
||||
// filtering](https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).
|
||||
string order_by = 6 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The maximum number of results to return in a single response.
|
||||
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. If this field is not empty then it must contain the
|
||||
// `nextPageToken` value returned by a previous call to this method. Using
|
||||
// this field causes the method to return more results from the previous
|
||||
// method call.
|
||||
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// The protocol for the `ListAlertPolicies` response.
|
||||
message ListAlertPoliciesResponse {
|
||||
// The returned alert policies.
|
||||
repeated AlertPolicy alert_policies = 3;
|
||||
|
||||
// If there might be more results than were returned, then this field is set
|
||||
// to a non-empty value. To see the additional results,
|
||||
// use that value as `page_token` in the next call to this method.
|
||||
string next_page_token = 2;
|
||||
|
||||
// The total number of alert policies in all pages. This number is only an
|
||||
// estimate, and may change in subsequent pages. https://aip.dev/158
|
||||
int32 total_size = 4;
|
||||
}
|
||||
|
||||
// The protocol for the `UpdateAlertPolicy` request.
|
||||
message UpdateAlertPolicyRequest {
|
||||
// Optional. A list of alerting policy field names. If this field is not
|
||||
// empty, each listed field in the existing alerting policy is set to the
|
||||
// value of the corresponding field in the supplied policy (`alert_policy`),
|
||||
// or to the field's default value if the field is not in the supplied
|
||||
// alerting policy. Fields not listed retain their previous value.
|
||||
//
|
||||
// Examples of valid field masks include `display_name`, `documentation`,
|
||||
// `documentation.content`, `documentation.mime_type`, `user_labels`,
|
||||
// `user_label.nameofkey`, `enabled`, `conditions`, `combiner`, etc.
|
||||
//
|
||||
// If this field is empty, then the supplied alerting policy replaces the
|
||||
// existing policy. It is the same as deleting the existing policy and
|
||||
// adding the supplied policy, except for the following:
|
||||
//
|
||||
// + The new policy will have the same `[ALERT_POLICY_ID]` as the former
|
||||
// policy. This gives you continuity with the former policy in your
|
||||
// notifications and incidents.
|
||||
// + Conditions in the new policy will keep their former `[CONDITION_ID]` if
|
||||
// the supplied condition includes the `name` field with that
|
||||
// `[CONDITION_ID]`. If the supplied condition omits the `name` field,
|
||||
// then a new `[CONDITION_ID]` is created.
|
||||
google.protobuf.FieldMask update_mask = 2
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Required. The updated alerting policy or the updated values for the
|
||||
// fields listed in `update_mask`.
|
||||
// If `update_mask` is not empty, any fields in this policy that are
|
||||
// not in `update_mask` are ignored.
|
||||
AlertPolicy alert_policy = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The protocol for the `DeleteAlertPolicy` request.
|
||||
message DeleteAlertPolicyRequest {
|
||||
// Required. The alerting policy to delete. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]
|
||||
//
|
||||
// For more information, see [AlertPolicy][google.monitoring.v3.AlertPolicy].
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/AlertPolicy"
|
||||
}
|
||||
];
|
||||
}
|
||||
499
google/monitoring/v3/common.proto
Normal file
499
google/monitoring/v3/common.proto
Normal file
|
|
@ -0,0 +1,499 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/distribution.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "CommonProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option objc_class_prefix = "GMON";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// A single strongly-typed value.
|
||||
message TypedValue {
|
||||
// The typed value field.
|
||||
oneof value {
|
||||
// A Boolean value: `true` or `false`.
|
||||
bool bool_value = 1;
|
||||
|
||||
// A 64-bit integer. Its range is approximately ±9.2x10<sup>18</sup>.
|
||||
int64 int64_value = 2;
|
||||
|
||||
// A 64-bit double-precision floating-point number. Its magnitude
|
||||
// is approximately ±10<sup>±300</sup> and it has 16
|
||||
// significant digits of precision.
|
||||
double double_value = 3;
|
||||
|
||||
// A variable-length string value.
|
||||
string string_value = 4;
|
||||
|
||||
// A distribution value.
|
||||
google.api.Distribution distribution_value = 5;
|
||||
}
|
||||
}
|
||||
|
||||
// Describes a time interval:
|
||||
//
|
||||
// * Reads: A half-open time interval. It includes the end time but
|
||||
// excludes the start time: `(startTime, endTime]`. The start time
|
||||
// must be specified, must be earlier than the end time, and should be
|
||||
// no older than the data retention period for the metric.
|
||||
// * Writes: A closed time interval. It extends from the start time to the end
|
||||
// time,
|
||||
// and includes both: `[startTime, endTime]`. Valid time intervals
|
||||
// depend on the
|
||||
// [`MetricKind`](https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors#MetricKind)
|
||||
// of the metric value. The end time must not be earlier than the start
|
||||
// time, and the end time must not be more than 25 hours in the past or more
|
||||
// than five minutes in the future.
|
||||
// * For `GAUGE` metrics, the `startTime` value is technically optional; if
|
||||
// no value is specified, the start time defaults to the value of the
|
||||
// end time, and the interval represents a single point in time. If both
|
||||
// start and end times are specified, they must be identical. Such an
|
||||
// interval is valid only for `GAUGE` metrics, which are point-in-time
|
||||
// measurements. The end time of a new interval must be at least a
|
||||
// millisecond after the end time of the previous interval.
|
||||
// * For `DELTA` metrics, the start time and end time must specify a
|
||||
// non-zero interval, with subsequent points specifying contiguous and
|
||||
// non-overlapping intervals. For `DELTA` metrics, the start time of
|
||||
// the next interval must be at least a millisecond after the end time
|
||||
// of the previous interval.
|
||||
// * For `CUMULATIVE` metrics, the start time and end time must specify a
|
||||
// non-zero interval, with subsequent points specifying the same
|
||||
// start time and increasing end times, until an event resets the
|
||||
// cumulative value to zero and sets a new start time for the following
|
||||
// points. The new start time must be at least a millisecond after the
|
||||
// end time of the previous interval.
|
||||
// * The start time of a new interval must be at least a millisecond after
|
||||
// the
|
||||
// end time of the previous interval because intervals are closed. If the
|
||||
// start time of a new interval is the same as the end time of the
|
||||
// previous interval, then data written at the new start time could
|
||||
// overwrite data written at the previous end time.
|
||||
message TimeInterval {
|
||||
// Required. The end of the time interval.
|
||||
google.protobuf.Timestamp end_time = 2;
|
||||
|
||||
// Optional. The beginning of the time interval. The default value
|
||||
// for the start time is the end time. The start time must not be
|
||||
// later than the end time.
|
||||
google.protobuf.Timestamp start_time = 1;
|
||||
}
|
||||
|
||||
// Describes how to combine multiple time series to provide a different view of
|
||||
// the data. Aggregation of time series is done in two steps. First, each time
|
||||
// series in the set is _aligned_ to the same time interval boundaries, then the
|
||||
// set of time series is optionally _reduced_ in number.
|
||||
//
|
||||
// Alignment consists of applying the `per_series_aligner` operation
|
||||
// to each time series after its data has been divided into regular
|
||||
// `alignment_period` time intervals. This process takes _all_ of the data
|
||||
// points in an alignment period, applies a mathematical transformation such as
|
||||
// averaging, minimum, maximum, delta, etc., and converts them into a single
|
||||
// data point per period.
|
||||
//
|
||||
// Reduction is when the aligned and transformed time series can optionally be
|
||||
// combined, reducing the number of time series through similar mathematical
|
||||
// transformations. Reduction involves applying a `cross_series_reducer` to
|
||||
// all the time series, optionally sorting the time series into subsets with
|
||||
// `group_by_fields`, and applying the reducer to each subset.
|
||||
//
|
||||
// The raw time series data can contain a huge amount of information from
|
||||
// multiple sources. Alignment and reduction transforms this mass of data into
|
||||
// a more manageable and representative collection of data, for example "the
|
||||
// 95% latency across the average of all tasks in a cluster". This
|
||||
// representative data can be more easily graphed and comprehended, and the
|
||||
// individual time series data is still available for later drilldown. For more
|
||||
// details, see [Filtering and
|
||||
// aggregation](https://cloud.google.com/monitoring/api/v3/aggregation).
|
||||
message Aggregation {
|
||||
// The `Aligner` specifies the operation that will be applied to the data
|
||||
// points in each alignment period in a time series. Except for
|
||||
// `ALIGN_NONE`, which specifies that no operation be applied, each alignment
|
||||
// operation replaces the set of data values in each alignment period with
|
||||
// a single value: the result of applying the operation to the data values.
|
||||
// An aligned time series has a single data value at the end of each
|
||||
// `alignment_period`.
|
||||
//
|
||||
// An alignment operation can change the data type of the values, too. For
|
||||
// example, if you apply a counting operation to boolean values, the data
|
||||
// `value_type` in the original time series is `BOOLEAN`, but the `value_type`
|
||||
// in the aligned result is `INT64`.
|
||||
enum Aligner {
|
||||
// No alignment. Raw data is returned. Not valid if cross-series reduction
|
||||
// is requested. The `value_type` of the result is the same as the
|
||||
// `value_type` of the input.
|
||||
ALIGN_NONE = 0;
|
||||
|
||||
// Align and convert to
|
||||
// [DELTA][google.api.MetricDescriptor.MetricKind.DELTA].
|
||||
// The output is `delta = y1 - y0`.
|
||||
//
|
||||
// This alignment is valid for
|
||||
// [CUMULATIVE][google.api.MetricDescriptor.MetricKind.CUMULATIVE] and
|
||||
// `DELTA` metrics. If the selected alignment period results in periods
|
||||
// with no data, then the aligned value for such a period is created by
|
||||
// interpolation. The `value_type` of the aligned result is the same as
|
||||
// the `value_type` of the input.
|
||||
ALIGN_DELTA = 1;
|
||||
|
||||
// Align and convert to a rate. The result is computed as
|
||||
// `rate = (y1 - y0)/(t1 - t0)`, or "delta over time".
|
||||
// Think of this aligner as providing the slope of the line that passes
|
||||
// through the value at the start and at the end of the `alignment_period`.
|
||||
//
|
||||
// This aligner is valid for `CUMULATIVE`
|
||||
// and `DELTA` metrics with numeric values. If the selected alignment
|
||||
// period results in periods with no data, then the aligned value for
|
||||
// such a period is created by interpolation. The output is a `GAUGE`
|
||||
// metric with `value_type` `DOUBLE`.
|
||||
//
|
||||
// If, by "rate", you mean "percentage change", see the
|
||||
// `ALIGN_PERCENT_CHANGE` aligner instead.
|
||||
ALIGN_RATE = 2;
|
||||
|
||||
// Align by interpolating between adjacent points around the alignment
|
||||
// period boundary. This aligner is valid for `GAUGE` metrics with
|
||||
// numeric values. The `value_type` of the aligned result is the same as the
|
||||
// `value_type` of the input.
|
||||
ALIGN_INTERPOLATE = 3;
|
||||
|
||||
// Align by moving the most recent data point before the end of the
|
||||
// alignment period to the boundary at the end of the alignment
|
||||
// period. This aligner is valid for `GAUGE` metrics. The `value_type` of
|
||||
// the aligned result is the same as the `value_type` of the input.
|
||||
ALIGN_NEXT_OLDER = 4;
|
||||
|
||||
// Align the time series by returning the minimum value in each alignment
|
||||
// period. This aligner is valid for `GAUGE` and `DELTA` metrics with
|
||||
// numeric values. The `value_type` of the aligned result is the same as
|
||||
// the `value_type` of the input.
|
||||
ALIGN_MIN = 10;
|
||||
|
||||
// Align the time series by returning the maximum value in each alignment
|
||||
// period. This aligner is valid for `GAUGE` and `DELTA` metrics with
|
||||
// numeric values. The `value_type` of the aligned result is the same as
|
||||
// the `value_type` of the input.
|
||||
ALIGN_MAX = 11;
|
||||
|
||||
// Align the time series by returning the mean value in each alignment
|
||||
// period. This aligner is valid for `GAUGE` and `DELTA` metrics with
|
||||
// numeric values. The `value_type` of the aligned result is `DOUBLE`.
|
||||
ALIGN_MEAN = 12;
|
||||
|
||||
// Align the time series by returning the number of values in each alignment
|
||||
// period. This aligner is valid for `GAUGE` and `DELTA` metrics with
|
||||
// numeric or Boolean values. The `value_type` of the aligned result is
|
||||
// `INT64`.
|
||||
ALIGN_COUNT = 13;
|
||||
|
||||
// Align the time series by returning the sum of the values in each
|
||||
// alignment period. This aligner is valid for `GAUGE` and `DELTA`
|
||||
// metrics with numeric and distribution values. The `value_type` of the
|
||||
// aligned result is the same as the `value_type` of the input.
|
||||
ALIGN_SUM = 14;
|
||||
|
||||
// Align the time series by returning the standard deviation of the values
|
||||
// in each alignment period. This aligner is valid for `GAUGE` and
|
||||
// `DELTA` metrics with numeric values. The `value_type` of the output is
|
||||
// `DOUBLE`.
|
||||
ALIGN_STDDEV = 15;
|
||||
|
||||
// Align the time series by returning the number of `True` values in
|
||||
// each alignment period. This aligner is valid for `GAUGE` metrics with
|
||||
// Boolean values. The `value_type` of the output is `INT64`.
|
||||
ALIGN_COUNT_TRUE = 16;
|
||||
|
||||
// Align the time series by returning the number of `False` values in
|
||||
// each alignment period. This aligner is valid for `GAUGE` metrics with
|
||||
// Boolean values. The `value_type` of the output is `INT64`.
|
||||
ALIGN_COUNT_FALSE = 24;
|
||||
|
||||
// Align the time series by returning the ratio of the number of `True`
|
||||
// values to the total number of values in each alignment period. This
|
||||
// aligner is valid for `GAUGE` metrics with Boolean values. The output
|
||||
// value is in the range [0.0, 1.0] and has `value_type` `DOUBLE`.
|
||||
ALIGN_FRACTION_TRUE = 17;
|
||||
|
||||
// Align the time series by using [percentile
|
||||
// aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
|
||||
// data point in each alignment period is the 99th percentile of all data
|
||||
// points in the period. This aligner is valid for `GAUGE` and `DELTA`
|
||||
// metrics with distribution values. The output is a `GAUGE` metric with
|
||||
// `value_type` `DOUBLE`.
|
||||
ALIGN_PERCENTILE_99 = 18;
|
||||
|
||||
// Align the time series by using [percentile
|
||||
// aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
|
||||
// data point in each alignment period is the 95th percentile of all data
|
||||
// points in the period. This aligner is valid for `GAUGE` and `DELTA`
|
||||
// metrics with distribution values. The output is a `GAUGE` metric with
|
||||
// `value_type` `DOUBLE`.
|
||||
ALIGN_PERCENTILE_95 = 19;
|
||||
|
||||
// Align the time series by using [percentile
|
||||
// aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
|
||||
// data point in each alignment period is the 50th percentile of all data
|
||||
// points in the period. This aligner is valid for `GAUGE` and `DELTA`
|
||||
// metrics with distribution values. The output is a `GAUGE` metric with
|
||||
// `value_type` `DOUBLE`.
|
||||
ALIGN_PERCENTILE_50 = 20;
|
||||
|
||||
// Align the time series by using [percentile
|
||||
// aggregation](https://en.wikipedia.org/wiki/Percentile). The resulting
|
||||
// data point in each alignment period is the 5th percentile of all data
|
||||
// points in the period. This aligner is valid for `GAUGE` and `DELTA`
|
||||
// metrics with distribution values. The output is a `GAUGE` metric with
|
||||
// `value_type` `DOUBLE`.
|
||||
ALIGN_PERCENTILE_05 = 21;
|
||||
|
||||
// Align and convert to a percentage change. This aligner is valid for
|
||||
// `GAUGE` and `DELTA` metrics with numeric values. This alignment returns
|
||||
// `((current - previous)/previous) * 100`, where the value of `previous` is
|
||||
// determined based on the `alignment_period`.
|
||||
//
|
||||
// If the values of `current` and `previous` are both 0, then the returned
|
||||
// value is 0. If only `previous` is 0, the returned value is infinity.
|
||||
//
|
||||
// A 10-minute moving mean is computed at each point of the alignment period
|
||||
// prior to the above calculation to smooth the metric and prevent false
|
||||
// positives from very short-lived spikes. The moving mean is only
|
||||
// applicable for data whose values are `>= 0`. Any values `< 0` are
|
||||
// treated as a missing datapoint, and are ignored. While `DELTA`
|
||||
// metrics are accepted by this alignment, special care should be taken that
|
||||
// the values for the metric will always be positive. The output is a
|
||||
// `GAUGE` metric with `value_type` `DOUBLE`.
|
||||
ALIGN_PERCENT_CHANGE = 23;
|
||||
}
|
||||
|
||||
// A Reducer operation describes how to aggregate data points from multiple
|
||||
// time series into a single time series, where the value of each data point
|
||||
// in the resulting series is a function of all the already aligned values in
|
||||
// the input time series.
|
||||
enum Reducer {
|
||||
// No cross-time series reduction. The output of the `Aligner` is
|
||||
// returned.
|
||||
REDUCE_NONE = 0;
|
||||
|
||||
// Reduce by computing the mean value across time series for each
|
||||
// alignment period. This reducer is valid for
|
||||
// [DELTA][google.api.MetricDescriptor.MetricKind.DELTA] and
|
||||
// [GAUGE][google.api.MetricDescriptor.MetricKind.GAUGE] metrics with
|
||||
// numeric or distribution values. The `value_type` of the output is
|
||||
// [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE].
|
||||
REDUCE_MEAN = 1;
|
||||
|
||||
// Reduce by computing the minimum value across time series for each
|
||||
// alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics
|
||||
// with numeric values. The `value_type` of the output is the same as the
|
||||
// `value_type` of the input.
|
||||
REDUCE_MIN = 2;
|
||||
|
||||
// Reduce by computing the maximum value across time series for each
|
||||
// alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics
|
||||
// with numeric values. The `value_type` of the output is the same as the
|
||||
// `value_type` of the input.
|
||||
REDUCE_MAX = 3;
|
||||
|
||||
// Reduce by computing the sum across time series for each
|
||||
// alignment period. This reducer is valid for `DELTA` and `GAUGE` metrics
|
||||
// with numeric and distribution values. The `value_type` of the output is
|
||||
// the same as the `value_type` of the input.
|
||||
REDUCE_SUM = 4;
|
||||
|
||||
// Reduce by computing the standard deviation across time series
|
||||
// for each alignment period. This reducer is valid for `DELTA` and
|
||||
// `GAUGE` metrics with numeric or distribution values. The `value_type`
|
||||
// of the output is `DOUBLE`.
|
||||
REDUCE_STDDEV = 5;
|
||||
|
||||
// Reduce by computing the number of data points across time series
|
||||
// for each alignment period. This reducer is valid for `DELTA` and
|
||||
// `GAUGE` metrics of numeric, Boolean, distribution, and string
|
||||
// `value_type`. The `value_type` of the output is `INT64`.
|
||||
REDUCE_COUNT = 6;
|
||||
|
||||
// Reduce by computing the number of `True`-valued data points across time
|
||||
// series for each alignment period. This reducer is valid for `DELTA` and
|
||||
// `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output
|
||||
// is `INT64`.
|
||||
REDUCE_COUNT_TRUE = 7;
|
||||
|
||||
// Reduce by computing the number of `False`-valued data points across time
|
||||
// series for each alignment period. This reducer is valid for `DELTA` and
|
||||
// `GAUGE` metrics of Boolean `value_type`. The `value_type` of the output
|
||||
// is `INT64`.
|
||||
REDUCE_COUNT_FALSE = 15;
|
||||
|
||||
// Reduce by computing the ratio of the number of `True`-valued data points
|
||||
// to the total number of data points for each alignment period. This
|
||||
// reducer is valid for `DELTA` and `GAUGE` metrics of Boolean `value_type`.
|
||||
// The output value is in the range [0.0, 1.0] and has `value_type`
|
||||
// `DOUBLE`.
|
||||
REDUCE_FRACTION_TRUE = 8;
|
||||
|
||||
// Reduce by computing the [99th
|
||||
// percentile](https://en.wikipedia.org/wiki/Percentile) of data points
|
||||
// across time series for each alignment period. This reducer is valid for
|
||||
// `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
|
||||
// of the output is `DOUBLE`.
|
||||
REDUCE_PERCENTILE_99 = 9;
|
||||
|
||||
// Reduce by computing the [95th
|
||||
// percentile](https://en.wikipedia.org/wiki/Percentile) of data points
|
||||
// across time series for each alignment period. This reducer is valid for
|
||||
// `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
|
||||
// of the output is `DOUBLE`.
|
||||
REDUCE_PERCENTILE_95 = 10;
|
||||
|
||||
// Reduce by computing the [50th
|
||||
// percentile](https://en.wikipedia.org/wiki/Percentile) of data points
|
||||
// across time series for each alignment period. This reducer is valid for
|
||||
// `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
|
||||
// of the output is `DOUBLE`.
|
||||
REDUCE_PERCENTILE_50 = 11;
|
||||
|
||||
// Reduce by computing the [5th
|
||||
// percentile](https://en.wikipedia.org/wiki/Percentile) of data points
|
||||
// across time series for each alignment period. This reducer is valid for
|
||||
// `GAUGE` and `DELTA` metrics of numeric and distribution type. The value
|
||||
// of the output is `DOUBLE`.
|
||||
REDUCE_PERCENTILE_05 = 12;
|
||||
}
|
||||
|
||||
// The `alignment_period` specifies a time interval, in seconds, that is used
|
||||
// to divide the data in all the
|
||||
// [time series][google.monitoring.v3.TimeSeries] into consistent blocks of
|
||||
// time. This will be done before the per-series aligner can be applied to
|
||||
// the data.
|
||||
//
|
||||
// The value must be at least 60 seconds. If a per-series
|
||||
// aligner other than `ALIGN_NONE` is specified, this field is required or an
|
||||
// error is returned. If no per-series aligner is specified, or the aligner
|
||||
// `ALIGN_NONE` is specified, then this field is ignored.
|
||||
//
|
||||
// The maximum value of the `alignment_period` is 104 weeks (2 years) for
|
||||
// charts, and 90,000 seconds (25 hours) for alerting policies.
|
||||
google.protobuf.Duration alignment_period = 1;
|
||||
|
||||
// An `Aligner` describes how to bring the data points in a single
|
||||
// time series into temporal alignment. Except for `ALIGN_NONE`, all
|
||||
// alignments cause all the data points in an `alignment_period` to be
|
||||
// mathematically grouped together, resulting in a single data point for
|
||||
// each `alignment_period` with end timestamp at the end of the period.
|
||||
//
|
||||
// Not all alignment operations may be applied to all time series. The valid
|
||||
// choices depend on the `metric_kind` and `value_type` of the original time
|
||||
// series. Alignment can change the `metric_kind` or the `value_type` of
|
||||
// the time series.
|
||||
//
|
||||
// Time series data must be aligned in order to perform cross-time
|
||||
// series reduction. If `cross_series_reducer` is specified, then
|
||||
// `per_series_aligner` must be specified and not equal to `ALIGN_NONE`
|
||||
// and `alignment_period` must be specified; otherwise, an error is
|
||||
// returned.
|
||||
Aligner per_series_aligner = 2;
|
||||
|
||||
// The reduction operation to be used to combine time series into a single
|
||||
// time series, where the value of each data point in the resulting series is
|
||||
// a function of all the already aligned values in the input time series.
|
||||
//
|
||||
// Not all reducer operations can be applied to all time series. The valid
|
||||
// choices depend on the `metric_kind` and the `value_type` of the original
|
||||
// time series. Reduction can yield a time series with a different
|
||||
// `metric_kind` or `value_type` than the input time series.
|
||||
//
|
||||
// Time series data must first be aligned (see `per_series_aligner`) in order
|
||||
// to perform cross-time series reduction. If `cross_series_reducer` is
|
||||
// specified, then `per_series_aligner` must be specified, and must not be
|
||||
// `ALIGN_NONE`. An `alignment_period` must also be specified; otherwise, an
|
||||
// error is returned.
|
||||
Reducer cross_series_reducer = 4;
|
||||
|
||||
// The set of fields to preserve when `cross_series_reducer` is
|
||||
// specified. The `group_by_fields` determine how the time series are
|
||||
// partitioned into subsets prior to applying the aggregation
|
||||
// operation. Each subset contains time series that have the same
|
||||
// value for each of the grouping fields. Each individual time
|
||||
// series is a member of exactly one subset. The
|
||||
// `cross_series_reducer` is applied to each subset of time series.
|
||||
// It is not possible to reduce across different resource types, so
|
||||
// this field implicitly contains `resource.type`. Fields not
|
||||
// specified in `group_by_fields` are aggregated away. If
|
||||
// `group_by_fields` is not specified and all the time series have
|
||||
// the same resource type, then the time series are aggregated into
|
||||
// a single output time series. If `cross_series_reducer` is not
|
||||
// defined, this field is ignored.
|
||||
repeated string group_by_fields = 5;
|
||||
}
|
||||
|
||||
// Specifies an ordering relationship on two arguments, called `left` and
|
||||
// `right`.
|
||||
enum ComparisonType {
|
||||
// No ordering relationship is specified.
|
||||
COMPARISON_UNSPECIFIED = 0;
|
||||
|
||||
// True if the left argument is greater than the right argument.
|
||||
COMPARISON_GT = 1;
|
||||
|
||||
// True if the left argument is greater than or equal to the right argument.
|
||||
COMPARISON_GE = 2;
|
||||
|
||||
// True if the left argument is less than the right argument.
|
||||
COMPARISON_LT = 3;
|
||||
|
||||
// True if the left argument is less than or equal to the right argument.
|
||||
COMPARISON_LE = 4;
|
||||
|
||||
// True if the left argument is equal to the right argument.
|
||||
COMPARISON_EQ = 5;
|
||||
|
||||
// True if the left argument is not equal to the right argument.
|
||||
COMPARISON_NE = 6;
|
||||
}
|
||||
|
||||
// The tier of service for a Metrics Scope. Please see the
|
||||
// [service tiers
|
||||
// documentation](https://cloud.google.com/monitoring/workspaces/tiers) for more
|
||||
// details.
|
||||
enum ServiceTier {
|
||||
option deprecated = true;
|
||||
|
||||
// An invalid sentinel value, used to indicate that a tier has not
|
||||
// been provided explicitly.
|
||||
SERVICE_TIER_UNSPECIFIED = 0;
|
||||
|
||||
// The Cloud Monitoring Basic tier, a free tier of service that provides basic
|
||||
// features, a moderate allotment of logs, and access to built-in metrics.
|
||||
// A number of features are not available in this tier. For more details,
|
||||
// see [the service tiers
|
||||
// documentation](https://cloud.google.com/monitoring/workspaces/tiers).
|
||||
SERVICE_TIER_BASIC = 1;
|
||||
|
||||
// The Cloud Monitoring Premium tier, a higher, more expensive tier of service
|
||||
// that provides access to all Cloud Monitoring features, lets you use Cloud
|
||||
// Monitoring with AWS accounts, and has a larger allotments for logs and
|
||||
// metrics. For more details, see [the service tiers
|
||||
// documentation](https://cloud.google.com/monitoring/workspaces/tiers).
|
||||
SERVICE_TIER_PREMIUM = 2;
|
||||
}
|
||||
46
google/monitoring/v3/dropped_labels.proto
Normal file
46
google/monitoring/v3/dropped_labels.proto
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "DroppedLabelsProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// A set of (label, value) pairs that were removed from a Distribution
|
||||
// time series during aggregation and then added as an attachment to a
|
||||
// Distribution.Exemplar.
|
||||
//
|
||||
// The full label set for the exemplars is constructed by using the dropped
|
||||
// pairs in combination with the label values that remain on the aggregated
|
||||
// Distribution time series. The constructed full label set can be used to
|
||||
// identify the specific entity, such as the instance or job, which might be
|
||||
// contributing to a long-tail. However, with dropped labels, the storage
|
||||
// requirements are reduced because only the aggregated distribution values for
|
||||
// a large group of time series are stored.
|
||||
//
|
||||
// Note that there are no guarantees on ordering of the labels from
|
||||
// exemplar-to-exemplar and from distribution-to-distribution in the same
|
||||
// stream, and there may be duplicates. It is up to clients to resolve any
|
||||
// ambiguities.
|
||||
message DroppedLabels {
|
||||
// Map from label to its value, for all labels dropped in any aggregation.
|
||||
map<string, string> label = 1;
|
||||
}
|
||||
90
google/monitoring/v3/group.proto
Normal file
90
google/monitoring/v3/group.proto
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/resource.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GroupProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// The description of a dynamic collection of monitored resources. Each group
|
||||
// has a filter that is matched against monitored resources and their associated
|
||||
// metadata. If a group's filter matches an available monitored resource, then
|
||||
// that resource is a member of that group. Groups can contain any number of
|
||||
// monitored resources, and each monitored resource can be a member of any
|
||||
// number of groups.
|
||||
//
|
||||
// Groups can be nested in parent-child hierarchies. The `parentName` field
|
||||
// identifies an optional parent for each group. If a group has a parent, then
|
||||
// the only monitored resources available to be matched by the group's filter
|
||||
// are the resources contained in the parent group. In other words, a group
|
||||
// contains the monitored resources that match its filter and the filters of all
|
||||
// the group's ancestors. A group without a parent can contain any monitored
|
||||
// resource.
|
||||
//
|
||||
// For example, consider an infrastructure running a set of instances with two
|
||||
// user-defined tags: `"environment"` and `"role"`. A parent group has a filter,
|
||||
// `environment="production"`. A child of that parent group has a filter,
|
||||
// `role="transcoder"`. The parent group contains all instances in the
|
||||
// production environment, regardless of their roles. The child group contains
|
||||
// instances that have the transcoder role *and* are in the production
|
||||
// environment.
|
||||
//
|
||||
// The monitored resources contained in a group can change at any moment,
|
||||
// depending on what resources exist and what filters are associated with the
|
||||
// group and its ancestors.
|
||||
message Group {
|
||||
option (google.api.resource) = {
|
||||
type: "monitoring.googleapis.com/Group"
|
||||
pattern: "projects/{project}/groups/{group}"
|
||||
pattern: "organizations/{organization}/groups/{group}"
|
||||
pattern: "folders/{folder}/groups/{group}"
|
||||
pattern: "*"
|
||||
};
|
||||
|
||||
// Output only. The name of this group. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]
|
||||
//
|
||||
// When creating a group, this field is ignored and a new name is created
|
||||
// consisting of the project specified in the call to `CreateGroup`
|
||||
// and a unique `[GROUP_ID]` that is generated automatically.
|
||||
string name = 1;
|
||||
|
||||
// A user-assigned name for this group, used only for display purposes.
|
||||
string display_name = 2;
|
||||
|
||||
// The name of the group's parent, if it has one. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]
|
||||
//
|
||||
// For groups with no parent, `parent_name` is the empty string, `""`.
|
||||
string parent_name = 3;
|
||||
|
||||
// The filter used to determine which monitored resources belong to this
|
||||
// group.
|
||||
string filter = 5;
|
||||
|
||||
// If true, the members of this group are considered to be a cluster.
|
||||
// The system can perform additional analysis on groups that are clusters.
|
||||
bool is_cluster = 6;
|
||||
}
|
||||
294
google/monitoring/v3/group_service.proto
Normal file
294
google/monitoring/v3/group_service.proto
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/monitored_resource.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/common.proto";
|
||||
import "google/monitoring/v3/group.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "GroupServiceProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// The Group API lets you inspect and manage your
|
||||
// [groups](#google.monitoring.v3.Group).
|
||||
//
|
||||
// A group is a named filter that is used to identify
|
||||
// a collection of monitored resources. Groups are typically used to
|
||||
// mirror the physical and/or logical topology of the environment.
|
||||
// Because group membership is computed dynamically, monitored
|
||||
// resources that are started in the future are automatically placed
|
||||
// in matching groups. By using a group to name monitored resources in,
|
||||
// for example, an alert policy, the target of that alert policy is
|
||||
// updated automatically as monitored resources are added and removed
|
||||
// from the infrastructure.
|
||||
service GroupService {
|
||||
option (google.api.default_host) = "monitoring.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/monitoring,"
|
||||
"https://www.googleapis.com/auth/monitoring.read";
|
||||
|
||||
// Lists the existing groups.
|
||||
rpc ListGroups(ListGroupsRequest) returns (ListGroupsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*}/groups"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Gets a single group.
|
||||
rpc GetGroup(GetGroupRequest) returns (Group) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*/groups/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a new group.
|
||||
rpc CreateGroup(CreateGroupRequest) returns (Group) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*}/groups"
|
||||
body: "group"
|
||||
};
|
||||
option (google.api.method_signature) = "name,group";
|
||||
}
|
||||
|
||||
// Updates an existing group.
|
||||
// You can change any group attributes except `name`.
|
||||
rpc UpdateGroup(UpdateGroupRequest) returns (Group) {
|
||||
option (google.api.http) = {
|
||||
put: "/v3/{group.name=projects/*/groups/*}"
|
||||
body: "group"
|
||||
};
|
||||
option (google.api.method_signature) = "group";
|
||||
}
|
||||
|
||||
// Deletes an existing group.
|
||||
rpc DeleteGroup(DeleteGroupRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v3/{name=projects/*/groups/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Lists the monitored resources that are members of a group.
|
||||
rpc ListGroupMembers(ListGroupMembersRequest)
|
||||
returns (ListGroupMembersResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*/groups/*}/members"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
}
|
||||
|
||||
// The `ListGroup` request.
|
||||
message ListGroupsRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) whose
|
||||
// groups are to be listed. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string name = 7 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/Group"
|
||||
}
|
||||
];
|
||||
|
||||
// An optional filter consisting of a single group name. The filters limit
|
||||
// the groups returned based on their parent-child relationship with the
|
||||
// specified group. If no filter is specified, all groups are returned.
|
||||
oneof filter {
|
||||
// A group name. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]
|
||||
//
|
||||
// Returns groups whose `parent_name` field contains the group
|
||||
// name. If no groups have this parent, the results are empty.
|
||||
string children_of_group = 2 [(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Group"
|
||||
}];
|
||||
|
||||
// A group name. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]
|
||||
//
|
||||
// Returns groups that are ancestors of the specified group.
|
||||
// The groups are returned in order, starting with the immediate parent and
|
||||
// ending with the most distant ancestor. If the specified group has no
|
||||
// immediate parent, the results are empty.
|
||||
string ancestors_of_group = 3 [(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Group"
|
||||
}];
|
||||
|
||||
// A group name. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]
|
||||
//
|
||||
// Returns the descendants of the specified group. This is a superset of
|
||||
// the results returned by the `children_of_group` filter, and includes
|
||||
// children-of-children, and so forth.
|
||||
string descendants_of_group = 4 [(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Group"
|
||||
}];
|
||||
}
|
||||
|
||||
// A positive number that is the maximum number of results to return.
|
||||
int32 page_size = 5;
|
||||
|
||||
// If this field is not empty then it must contain the `next_page_token` value
|
||||
// returned by a previous call to this method. Using this field causes the
|
||||
// method to return additional results from the previous method call.
|
||||
string page_token = 6;
|
||||
}
|
||||
|
||||
// The `ListGroups` response.
|
||||
message ListGroupsResponse {
|
||||
// The groups that match the specified filters.
|
||||
repeated Group group = 1;
|
||||
|
||||
// If there are more results than have been returned, then this field is set
|
||||
// to a non-empty value. To see the additional results,
|
||||
// use that value as `page_token` in the next call to this method.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The `GetGroup` request.
|
||||
message GetGroupRequest {
|
||||
// Required. The group to retrieve. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Group"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The `CreateGroup` request.
|
||||
message CreateGroupRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) in which
|
||||
// to create the group. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string name = 4 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/Group"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. A group definition. It is an error to define the `name` field
|
||||
// because the system assigns the name.
|
||||
Group group = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// If true, validate this request but do not create the group.
|
||||
bool validate_only = 3;
|
||||
}
|
||||
|
||||
// The `UpdateGroup` request.
|
||||
message UpdateGroupRequest {
|
||||
// Required. The new definition of the group. All fields of the existing
|
||||
// group, excepting `name`, are replaced with the corresponding fields of this
|
||||
// group.
|
||||
Group group = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// If true, validate this request but do not update the existing group.
|
||||
bool validate_only = 3;
|
||||
}
|
||||
|
||||
// The `DeleteGroup` request. The default behavior is to be able to delete a
|
||||
// single group without any descendants.
|
||||
message DeleteGroupRequest {
|
||||
// Required. The group to delete. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Group"
|
||||
}
|
||||
];
|
||||
|
||||
// If this field is true, then the request means to delete a group with all
|
||||
// its descendants. Otherwise, the request means to delete a group only when
|
||||
// it has no descendants. The default value is false.
|
||||
bool recursive = 4;
|
||||
}
|
||||
|
||||
// The `ListGroupMembers` request.
|
||||
message ListGroupMembersRequest {
|
||||
// Required. The group whose members are listed. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]
|
||||
string name = 7 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Group"
|
||||
}
|
||||
];
|
||||
|
||||
// A positive number that is the maximum number of results to return.
|
||||
int32 page_size = 3;
|
||||
|
||||
// If this field is not empty then it must contain the `next_page_token` value
|
||||
// returned by a previous call to this method. Using this field causes the
|
||||
// method to return additional results from the previous method call.
|
||||
string page_token = 4;
|
||||
|
||||
// An optional [list
|
||||
// filter](https://cloud.google.com/monitoring/api/learn_more#filtering)
|
||||
// describing the members to be returned. The filter may reference the type,
|
||||
// labels, and metadata of monitored resources that comprise the group. For
|
||||
// example, to return only resources representing Compute Engine VM instances,
|
||||
// use this filter:
|
||||
//
|
||||
// `resource.type = "gce_instance"`
|
||||
string filter = 5;
|
||||
|
||||
// An optional time interval for which results should be returned. Only
|
||||
// members that were part of the group during the specified interval are
|
||||
// included in the response. If no interval is provided then the group
|
||||
// membership over the last minute is returned.
|
||||
TimeInterval interval = 6;
|
||||
}
|
||||
|
||||
// The `ListGroupMembers` response.
|
||||
message ListGroupMembersResponse {
|
||||
// A set of monitored resources in the group.
|
||||
repeated google.api.MonitoredResource members = 1;
|
||||
|
||||
// If there are more results than have been returned, then this field is
|
||||
// set to a non-empty value. To see the additional results, use that value as
|
||||
// `page_token` in the next call to this method.
|
||||
string next_page_token = 2;
|
||||
|
||||
// The total number of elements matching this request.
|
||||
int32 total_size = 3;
|
||||
}
|
||||
246
google/monitoring/v3/metric.proto
Normal file
246
google/monitoring/v3/metric.proto
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/label.proto";
|
||||
import "google/api/metric.proto";
|
||||
import "google/api/monitored_resource.proto";
|
||||
import "google/monitoring/v3/common.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MetricProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// A single data point in a time series.
|
||||
message Point {
|
||||
// The time interval to which the data point applies. For `GAUGE` metrics,
|
||||
// the start time is optional, but if it is supplied, it must equal the
|
||||
// end time. For `DELTA` metrics, the start
|
||||
// and end time should specify a non-zero interval, with subsequent points
|
||||
// specifying contiguous and non-overlapping intervals. For `CUMULATIVE`
|
||||
// metrics, the start and end time should specify a non-zero interval, with
|
||||
// subsequent points specifying the same start time and increasing end times,
|
||||
// until an event resets the cumulative value to zero and sets a new start
|
||||
// time for the following points.
|
||||
TimeInterval interval = 1;
|
||||
|
||||
// The value of the data point.
|
||||
TypedValue value = 2;
|
||||
}
|
||||
|
||||
// A collection of data points that describes the time-varying values
|
||||
// of a metric. A time series is identified by a combination of a
|
||||
// fully-specified monitored resource and a fully-specified metric.
|
||||
// This type is used for both listing and creating time series.
|
||||
message TimeSeries {
|
||||
// The associated metric. A fully-specified metric used to identify the time
|
||||
// series.
|
||||
google.api.Metric metric = 1;
|
||||
|
||||
// The associated monitored resource. Custom metrics can use only certain
|
||||
// monitored resource types in their time series data. For more information,
|
||||
// see [Monitored resources for custom
|
||||
// metrics](https://cloud.google.com/monitoring/custom-metrics/creating-metrics#custom-metric-resources).
|
||||
google.api.MonitoredResource resource = 2;
|
||||
|
||||
// Output only. The associated monitored resource metadata. When reading a
|
||||
// time series, this field will include metadata labels that are explicitly
|
||||
// named in the reduction. When creating a time series, this field is ignored.
|
||||
google.api.MonitoredResourceMetadata metadata = 7;
|
||||
|
||||
// The metric kind of the time series. When listing time series, this metric
|
||||
// kind might be different from the metric kind of the associated metric if
|
||||
// this time series is an alignment or reduction of other time series.
|
||||
//
|
||||
// When creating a time series, this field is optional. If present, it must be
|
||||
// the same as the metric kind of the associated metric. If the associated
|
||||
// metric's descriptor must be auto-created, then this field specifies the
|
||||
// metric kind of the new descriptor and must be either `GAUGE` (the default)
|
||||
// or `CUMULATIVE`.
|
||||
google.api.MetricDescriptor.MetricKind metric_kind = 3;
|
||||
|
||||
// The value type of the time series. When listing time series, this value
|
||||
// type might be different from the value type of the associated metric if
|
||||
// this time series is an alignment or reduction of other time series.
|
||||
//
|
||||
// When creating a time series, this field is optional. If present, it must be
|
||||
// the same as the type of the data in the `points` field.
|
||||
google.api.MetricDescriptor.ValueType value_type = 4;
|
||||
|
||||
// The data points of this time series. When listing time series, points are
|
||||
// returned in reverse time order.
|
||||
//
|
||||
// When creating a time series, this field must contain exactly one point and
|
||||
// the point's type must be the same as the value type of the associated
|
||||
// metric. If the associated metric's descriptor must be auto-created, then
|
||||
// the value type of the descriptor is determined by the point's type, which
|
||||
// must be `BOOL`, `INT64`, `DOUBLE`, or `DISTRIBUTION`.
|
||||
repeated Point points = 5;
|
||||
|
||||
// The units in which the metric value is reported. It is only applicable
|
||||
// if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit`
|
||||
// defines the representation of the stored metric values. This field can only
|
||||
// be changed through CreateTimeSeries when it is empty.
|
||||
string unit = 8;
|
||||
|
||||
// Input only. A detailed description of the time series that will be
|
||||
// associated with the
|
||||
// [google.api.MetricDescriptor][google.api.MetricDescriptor] for the metric.
|
||||
// Once set, this field cannot be changed through CreateTimeSeries.
|
||||
string description = 9;
|
||||
}
|
||||
|
||||
// A descriptor for the labels and points in a time series.
|
||||
message TimeSeriesDescriptor {
|
||||
// A descriptor for the value columns in a data point.
|
||||
message ValueDescriptor {
|
||||
// The value key.
|
||||
string key = 1;
|
||||
|
||||
// The value type.
|
||||
google.api.MetricDescriptor.ValueType value_type = 2;
|
||||
|
||||
// The value stream kind.
|
||||
google.api.MetricDescriptor.MetricKind metric_kind = 3;
|
||||
|
||||
// The unit in which `time_series` point values are reported. `unit`
|
||||
// follows the UCUM format for units as seen in
|
||||
// https://unitsofmeasure.org/ucum.html.
|
||||
// `unit` is only valid if `value_type` is INTEGER, DOUBLE, DISTRIBUTION.
|
||||
string unit = 4;
|
||||
}
|
||||
|
||||
// Descriptors for the labels.
|
||||
repeated google.api.LabelDescriptor label_descriptors = 1;
|
||||
|
||||
// Descriptors for the point data value columns.
|
||||
repeated ValueDescriptor point_descriptors = 5;
|
||||
}
|
||||
|
||||
// Represents the values of a time series associated with a
|
||||
// TimeSeriesDescriptor.
|
||||
message TimeSeriesData {
|
||||
// A point's value columns and time interval. Each point has one or more
|
||||
// point values corresponding to the entries in `point_descriptors` field in
|
||||
// the TimeSeriesDescriptor associated with this object.
|
||||
message PointData {
|
||||
// The values that make up the point.
|
||||
repeated TypedValue values = 1;
|
||||
|
||||
// The time interval associated with the point.
|
||||
TimeInterval time_interval = 2;
|
||||
}
|
||||
|
||||
// The values of the labels in the time series identifier, given in the same
|
||||
// order as the `label_descriptors` field of the TimeSeriesDescriptor
|
||||
// associated with this object. Each value must have a value of the type
|
||||
// given in the corresponding entry of `label_descriptors`.
|
||||
repeated LabelValue label_values = 1;
|
||||
|
||||
// The points in the time series.
|
||||
repeated PointData point_data = 2;
|
||||
}
|
||||
|
||||
// A label value.
|
||||
message LabelValue {
|
||||
// The label value can be a bool, int64, or string.
|
||||
oneof value {
|
||||
// A bool label value.
|
||||
bool bool_value = 1;
|
||||
|
||||
// An int64 label value.
|
||||
int64 int64_value = 2;
|
||||
|
||||
// A string label value.
|
||||
string string_value = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// An error associated with a query in the time series query language format.
|
||||
message QueryError {
|
||||
// The location of the time series query language text that this error applies
|
||||
// to.
|
||||
TextLocator locator = 1;
|
||||
|
||||
// The error message.
|
||||
string message = 2;
|
||||
}
|
||||
|
||||
// A locator for text. Indicates a particular part of the text of a request or
|
||||
// of an object referenced in the request.
|
||||
//
|
||||
// For example, suppose the request field `text` contains:
|
||||
//
|
||||
// text: "The quick brown fox jumps over the lazy dog."
|
||||
//
|
||||
// Then the locator:
|
||||
//
|
||||
// source: "text"
|
||||
// start_position {
|
||||
// line: 1
|
||||
// column: 17
|
||||
// }
|
||||
// end_position {
|
||||
// line: 1
|
||||
// column: 19
|
||||
// }
|
||||
//
|
||||
// refers to the part of the text: "fox".
|
||||
message TextLocator {
|
||||
// The position of a byte within the text.
|
||||
message Position {
|
||||
// The line, starting with 1, where the byte is positioned.
|
||||
int32 line = 1;
|
||||
|
||||
// The column within the line, starting with 1, where the byte is
|
||||
// positioned. This is a byte index even though the text is UTF-8.
|
||||
int32 column = 2;
|
||||
}
|
||||
|
||||
// The source of the text. The source may be a field in the request, in which
|
||||
// case its format is the format of the
|
||||
// google.rpc.BadRequest.FieldViolation.field field in
|
||||
// https://cloud.google.com/apis/design/errors#error_details. It may also be
|
||||
// be a source other than the request field (e.g. a macro definition
|
||||
// referenced in the text of the query), in which case this is the name of
|
||||
// the source (e.g. the macro name).
|
||||
string source = 1;
|
||||
|
||||
// The position of the first byte within the text.
|
||||
Position start_position = 2;
|
||||
|
||||
// The position of the last byte within the text.
|
||||
Position end_position = 3;
|
||||
|
||||
// If `source`, `start_position`, and `end_position` describe a call on
|
||||
// some object (e.g. a macro in the time series query language text) and a
|
||||
// location is to be designated in that object's text, `nested_locator`
|
||||
// identifies the location within that object.
|
||||
TextLocator nested_locator = 4;
|
||||
|
||||
// When `nested_locator` is set, this field gives the reason for the nesting.
|
||||
// Usually, the reason is a macro invocation. In that case, the macro name
|
||||
// (including the leading '@') signals the location of the macro call
|
||||
// in the text and a macro argument name (including the leading '$') signals
|
||||
// the location of the macro argument inside the macro body that got
|
||||
// substituted away.
|
||||
string nesting_reason = 5;
|
||||
}
|
||||
551
google/monitoring/v3/metric_service.proto
Normal file
551
google/monitoring/v3/metric_service.proto
Normal file
|
|
@ -0,0 +1,551 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/metric.proto";
|
||||
import "google/api/monitored_resource.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/common.proto";
|
||||
import "google/monitoring/v3/metric.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/rpc/status.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MetricServiceProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
option (google.api.resource_definition) = {
|
||||
type: "monitoring.googleapis.com/MetricDescriptor"
|
||||
pattern: "projects/{project}/metricDescriptors/{metric_descriptor=**}"
|
||||
pattern: "organizations/{organization}/metricDescriptors/{metric_descriptor=**}"
|
||||
pattern: "folders/{folder}/metricDescriptors/{metric_descriptor=**}"
|
||||
pattern: "*"
|
||||
history: ORIGINALLY_SINGLE_PATTERN
|
||||
};
|
||||
option (google.api.resource_definition) = {
|
||||
type: "monitoring.googleapis.com/MonitoredResourceDescriptor"
|
||||
pattern: "projects/{project}/monitoredResourceDescriptors/{monitored_resource_descriptor}"
|
||||
pattern: "organizations/{organization}/monitoredResourceDescriptors/{monitored_resource_descriptor}"
|
||||
pattern: "folders/{folder}/monitoredResourceDescriptors/{monitored_resource_descriptor}"
|
||||
pattern: "*"
|
||||
history: ORIGINALLY_SINGLE_PATTERN
|
||||
};
|
||||
option (google.api.resource_definition) = {
|
||||
type: "monitoring.googleapis.com/Workspace"
|
||||
pattern: "projects/{project}"
|
||||
pattern: "workspaces/{workspace}"
|
||||
};
|
||||
option (google.api.resource_definition) = {
|
||||
type: "monitoring.googleapis.com/TimeSeries"
|
||||
pattern: "projects/{project}/timeSeries/{time_series}"
|
||||
pattern: "organizations/{organization}/timeSeries/{time_series}"
|
||||
pattern: "folders/{folder}/timeSeries/{time_series}"
|
||||
};
|
||||
|
||||
// Manages metric descriptors, monitored resource descriptors, and
|
||||
// time series data.
|
||||
service MetricService {
|
||||
option (google.api.default_host) = "monitoring.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/monitoring,"
|
||||
"https://www.googleapis.com/auth/monitoring.read,"
|
||||
"https://www.googleapis.com/auth/monitoring.write";
|
||||
|
||||
// Lists monitored resource descriptors that match a filter.
|
||||
rpc ListMonitoredResourceDescriptors(ListMonitoredResourceDescriptorsRequest)
|
||||
returns (ListMonitoredResourceDescriptorsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*}/monitoredResourceDescriptors"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Gets a single monitored resource descriptor.
|
||||
rpc GetMonitoredResourceDescriptor(GetMonitoredResourceDescriptorRequest)
|
||||
returns (google.api.MonitoredResourceDescriptor) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*/monitoredResourceDescriptors/**}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Lists metric descriptors that match a filter.
|
||||
rpc ListMetricDescriptors(ListMetricDescriptorsRequest)
|
||||
returns (ListMetricDescriptorsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*}/metricDescriptors"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Gets a single metric descriptor.
|
||||
rpc GetMetricDescriptor(GetMetricDescriptorRequest)
|
||||
returns (google.api.MetricDescriptor) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*/metricDescriptors/**}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a new metric descriptor.
|
||||
// The creation is executed asynchronously.
|
||||
// User-created metric descriptors define
|
||||
// [custom metrics](https://cloud.google.com/monitoring/custom-metrics).
|
||||
// The metric descriptor is updated if it already exists,
|
||||
// except that metric labels are never removed.
|
||||
rpc CreateMetricDescriptor(CreateMetricDescriptorRequest)
|
||||
returns (google.api.MetricDescriptor) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*}/metricDescriptors"
|
||||
body: "metric_descriptor"
|
||||
};
|
||||
option (google.api.method_signature) = "name,metric_descriptor";
|
||||
}
|
||||
|
||||
// Deletes a metric descriptor. Only user-created
|
||||
// [custom metrics](https://cloud.google.com/monitoring/custom-metrics) can be
|
||||
// deleted.
|
||||
rpc DeleteMetricDescriptor(DeleteMetricDescriptorRequest)
|
||||
returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v3/{name=projects/*/metricDescriptors/**}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Lists time series that match a filter.
|
||||
rpc ListTimeSeries(ListTimeSeriesRequest) returns (ListTimeSeriesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*}/timeSeries"
|
||||
additional_bindings { get: "/v3/{name=organizations/*}/timeSeries" }
|
||||
additional_bindings { get: "/v3/{name=folders/*}/timeSeries" }
|
||||
};
|
||||
option (google.api.method_signature) = "name,filter,interval,view";
|
||||
}
|
||||
|
||||
// Creates or adds data to one or more time series.
|
||||
// The response is empty if all time series in the request were written.
|
||||
// If any time series could not be written, a corresponding failure message is
|
||||
// included in the error response.
|
||||
// This method does not support
|
||||
// [resource locations constraint of an organization
|
||||
// policy](https://cloud.google.com/resource-manager/docs/organization-policy/defining-locations#setting_the_organization_policy).
|
||||
rpc CreateTimeSeries(CreateTimeSeriesRequest)
|
||||
returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*}/timeSeries"
|
||||
body: "*"
|
||||
};
|
||||
option (google.api.method_signature) = "name,time_series";
|
||||
}
|
||||
|
||||
// Creates or adds data to one or more service time series. A service time
|
||||
// series is a time series for a metric from a Google Cloud service. The
|
||||
// response is empty if all time series in the request were written. If any
|
||||
// time series could not be written, a corresponding failure message is
|
||||
// included in the error response. This endpoint rejects writes to
|
||||
// user-defined metrics.
|
||||
// This method is only for use by Google Cloud services. Use
|
||||
// [projects.timeSeries.create][google.monitoring.v3.MetricService.CreateTimeSeries]
|
||||
// instead.
|
||||
rpc CreateServiceTimeSeries(CreateTimeSeriesRequest)
|
||||
returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*}/timeSeries:createService"
|
||||
body: "*"
|
||||
};
|
||||
option (google.api.method_signature) = "name,time_series";
|
||||
}
|
||||
}
|
||||
|
||||
// The `ListMonitoredResourceDescriptors` request.
|
||||
message ListMonitoredResourceDescriptorsRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) on which
|
||||
// to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string name = 5 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/MonitoredResourceDescriptor"
|
||||
}
|
||||
];
|
||||
|
||||
// An optional [filter](https://cloud.google.com/monitoring/api/v3/filters)
|
||||
// describing the descriptors to be returned. The filter can reference the
|
||||
// descriptor's type and labels. For example, the following filter returns
|
||||
// only Google Compute Engine descriptors that have an `id` label:
|
||||
//
|
||||
// resource.type = starts_with("gce_") AND resource.label:id
|
||||
string filter = 2;
|
||||
|
||||
// A positive number that is the maximum number of results to return.
|
||||
int32 page_size = 3;
|
||||
|
||||
// If this field is not empty then it must contain the `nextPageToken` value
|
||||
// returned by a previous call to this method. Using this field causes the
|
||||
// method to return additional results from the previous method call.
|
||||
string page_token = 4;
|
||||
}
|
||||
|
||||
// The `ListMonitoredResourceDescriptors` response.
|
||||
message ListMonitoredResourceDescriptorsResponse {
|
||||
// The monitored resource descriptors that are available to this project
|
||||
// and that match `filter`, if present.
|
||||
repeated google.api.MonitoredResourceDescriptor resource_descriptors = 1;
|
||||
|
||||
// If there are more results than have been returned, then this field is set
|
||||
// to a non-empty value. To see the additional results,
|
||||
// use that value as `page_token` in the next call to this method.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The `GetMonitoredResourceDescriptor` request.
|
||||
message GetMonitoredResourceDescriptorRequest {
|
||||
// Required. The monitored resource descriptor to get. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/monitoredResourceDescriptors/[RESOURCE_TYPE]
|
||||
//
|
||||
// The `[RESOURCE_TYPE]` is a predefined type, such as
|
||||
// `cloudsql_database`.
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/MonitoredResourceDescriptor"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The `ListMetricDescriptors` request.
|
||||
message ListMetricDescriptorsRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) on which
|
||||
// to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string name = 5 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/MetricDescriptor"
|
||||
}
|
||||
];
|
||||
|
||||
// Optional. If this field is empty, all custom and
|
||||
// system-defined metric descriptors are returned.
|
||||
// Otherwise, the [filter](https://cloud.google.com/monitoring/api/v3/filters)
|
||||
// specifies which metric descriptors are to be
|
||||
// returned. For example, the following filter matches all
|
||||
// [custom metrics](https://cloud.google.com/monitoring/custom-metrics):
|
||||
//
|
||||
// metric.type = starts_with("custom.googleapis.com/")
|
||||
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. A positive number that is the maximum number of results to
|
||||
// return. The default and maximum value is 10,000. If a page_size <= 0 or >
|
||||
// 10,000 is submitted, will instead return a maximum of 10,000 results.
|
||||
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. If this field is not empty then it must contain the
|
||||
// `nextPageToken` value returned by a previous call to this method. Using
|
||||
// this field causes the method to return additional results from the previous
|
||||
// method call.
|
||||
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// The `ListMetricDescriptors` response.
|
||||
message ListMetricDescriptorsResponse {
|
||||
// The metric descriptors that are available to the project
|
||||
// and that match the value of `filter`, if present.
|
||||
repeated google.api.MetricDescriptor metric_descriptors = 1;
|
||||
|
||||
// If there are more results than have been returned, then this field is set
|
||||
// to a non-empty value. To see the additional results,
|
||||
// use that value as `page_token` in the next call to this method.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The `GetMetricDescriptor` request.
|
||||
message GetMetricDescriptorRequest {
|
||||
// Required. The metric descriptor on which to execute the request. The format
|
||||
// is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/metricDescriptors/[METRIC_ID]
|
||||
//
|
||||
// An example value of `[METRIC_ID]` is
|
||||
// `"compute.googleapis.com/instance/disk/read_bytes_count"`.
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/MetricDescriptor"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The `CreateMetricDescriptor` request.
|
||||
message CreateMetricDescriptorRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) on which
|
||||
// to execute the request. The format is:
|
||||
// 4
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/MetricDescriptor"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The new [custom
|
||||
// metric](https://cloud.google.com/monitoring/custom-metrics) descriptor.
|
||||
google.api.MetricDescriptor metric_descriptor = 2
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The `DeleteMetricDescriptor` request.
|
||||
message DeleteMetricDescriptorRequest {
|
||||
// Required. The metric descriptor on which to execute the request. The format
|
||||
// is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/metricDescriptors/[METRIC_ID]
|
||||
//
|
||||
// An example of `[METRIC_ID]` is:
|
||||
// `"custom.googleapis.com/my_test_metric"`.
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/MetricDescriptor"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The `ListTimeSeries` request.
|
||||
message ListTimeSeriesRequest {
|
||||
// Controls which fields are returned by `ListTimeSeries*`.
|
||||
enum TimeSeriesView {
|
||||
// Returns the identity of the metric(s), the time series,
|
||||
// and the time series data.
|
||||
FULL = 0;
|
||||
|
||||
// Returns the identity of the metric and the time series resource,
|
||||
// but not the time series data.
|
||||
HEADERS = 1;
|
||||
}
|
||||
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name),
|
||||
// organization or folder on which to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
// organizations/[ORGANIZATION_ID]
|
||||
// folders/[FOLDER_ID]
|
||||
string name = 10 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/TimeSeries"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. A [monitoring
|
||||
// filter](https://cloud.google.com/monitoring/api/v3/filters) that specifies
|
||||
// which time series should be returned. The filter must specify a single
|
||||
// metric type, and can additionally specify metric labels and other
|
||||
// information. For example:
|
||||
//
|
||||
// metric.type = "compute.googleapis.com/instance/cpu/usage_time" AND
|
||||
// metric.labels.instance_name = "my-instance-name"
|
||||
string filter = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The time interval for which results should be returned. Only time
|
||||
// series that contain data points in the specified interval are included in
|
||||
// the response.
|
||||
TimeInterval interval = 4 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Specifies the alignment of data points in individual time series as
|
||||
// well as how to combine the retrieved time series across specified labels.
|
||||
//
|
||||
// By default (if no `aggregation` is explicitly specified), the raw time
|
||||
// series data is returned.
|
||||
Aggregation aggregation = 5;
|
||||
|
||||
// Apply a second aggregation after `aggregation` is applied. May only be
|
||||
// specified if `aggregation` is specified.
|
||||
Aggregation secondary_aggregation = 11;
|
||||
|
||||
// Unsupported: must be left blank. The points in each time series are
|
||||
// currently returned in reverse time order (most recent to oldest).
|
||||
string order_by = 6;
|
||||
|
||||
// Required. Specifies which information is returned about the time series.
|
||||
TimeSeriesView view = 7 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// A positive number that is the maximum number of results to return. If
|
||||
// `page_size` is empty or more than 100,000 results, the effective
|
||||
// `page_size` is 100,000 results. If `view` is set to `FULL`, this is the
|
||||
// maximum number of `Points` returned. If `view` is set to `HEADERS`, this is
|
||||
// the maximum number of `TimeSeries` returned.
|
||||
int32 page_size = 8;
|
||||
|
||||
// If this field is not empty then it must contain the `nextPageToken` value
|
||||
// returned by a previous call to this method. Using this field causes the
|
||||
// method to return additional results from the previous method call.
|
||||
string page_token = 9;
|
||||
}
|
||||
|
||||
// The `ListTimeSeries` response.
|
||||
message ListTimeSeriesResponse {
|
||||
// One or more time series that match the filter included in the request.
|
||||
repeated TimeSeries time_series = 1;
|
||||
|
||||
// If there are more results than have been returned, then this field is set
|
||||
// to a non-empty value. To see the additional results,
|
||||
// use that value as `page_token` in the next call to this method.
|
||||
string next_page_token = 2;
|
||||
|
||||
// Query execution errors that may have caused the time series data returned
|
||||
// to be incomplete.
|
||||
repeated google.rpc.Status execution_errors = 3;
|
||||
|
||||
// The unit in which all `time_series` point values are reported. `unit`
|
||||
// follows the UCUM format for units as seen in
|
||||
// https://unitsofmeasure.org/ucum.html.
|
||||
// If different `time_series` have different units (for example, because they
|
||||
// come from different metric types, or a unit is absent), then `unit` will be
|
||||
// "{not_a_unit}".
|
||||
string unit = 5;
|
||||
}
|
||||
|
||||
// The `CreateTimeSeries` request.
|
||||
message CreateTimeSeriesRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) on which
|
||||
// to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "cloudresourcemanager.googleapis.com/Project"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The new data to be added to a list of time series.
|
||||
// Adds at most one data point to each of several time series. The new data
|
||||
// point must be more recent than any other point in its time series. Each
|
||||
// `TimeSeries` value must fully specify a unique time series by supplying
|
||||
// all label values for the metric and the monitored resource.
|
||||
//
|
||||
// The maximum number of `TimeSeries` objects per `Create` request is 200.
|
||||
repeated TimeSeries time_series = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// DEPRECATED. Used to hold per-time-series error status.
|
||||
message CreateTimeSeriesError {
|
||||
// DEPRECATED. Time series ID that resulted in the `status` error.
|
||||
TimeSeries time_series = 1 [deprecated = true];
|
||||
|
||||
// DEPRECATED. The status of the requested write operation for `time_series`.
|
||||
google.rpc.Status status = 2 [deprecated = true];
|
||||
}
|
||||
|
||||
// Summary of the result of a failed request to write data to a time series.
|
||||
message CreateTimeSeriesSummary {
|
||||
// Detailed information about an error category.
|
||||
message Error {
|
||||
// The status of the requested write operation.
|
||||
google.rpc.Status status = 1;
|
||||
|
||||
// The number of points that couldn't be written because of `status`.
|
||||
int32 point_count = 2;
|
||||
}
|
||||
|
||||
// The number of points in the request.
|
||||
int32 total_point_count = 1;
|
||||
|
||||
// The number of points that were successfully written.
|
||||
int32 success_point_count = 2;
|
||||
|
||||
// The number of points that failed to be written. Order is not guaranteed.
|
||||
repeated Error errors = 3;
|
||||
}
|
||||
|
||||
// The `QueryTimeSeries` request. For information about the status of
|
||||
// Monitoring Query Language (MQL), see the [MQL deprecation
|
||||
// notice](https://cloud.google.com/stackdriver/docs/deprecations/mql).
|
||||
message QueryTimeSeriesRequest {
|
||||
option deprecated = true;
|
||||
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) on which
|
||||
// to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string name = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The query in the [Monitoring Query
|
||||
// Language](https://cloud.google.com/monitoring/mql/reference) format.
|
||||
// The default time zone is in UTC.
|
||||
string query = 7 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// A positive number that is the maximum number of time_series_data to return.
|
||||
int32 page_size = 9;
|
||||
|
||||
// If this field is not empty then it must contain the `nextPageToken` value
|
||||
// returned by a previous call to this method. Using this field causes the
|
||||
// method to return additional results from the previous method call.
|
||||
string page_token = 10;
|
||||
}
|
||||
|
||||
// The `QueryTimeSeries` response. For information about the status of
|
||||
// Monitoring Query Language (MQL), see the [MQL deprecation
|
||||
// notice](https://cloud.google.com/stackdriver/docs/deprecations/mql).
|
||||
message QueryTimeSeriesResponse {
|
||||
option deprecated = true;
|
||||
|
||||
// The descriptor for the time series data.
|
||||
TimeSeriesDescriptor time_series_descriptor = 8;
|
||||
|
||||
// The time series data.
|
||||
repeated TimeSeriesData time_series_data = 9;
|
||||
|
||||
// If there are more results than have been returned, then this field is set
|
||||
// to a non-empty value. To see the additional results, use that value as
|
||||
// `page_token` in the next call to this method.
|
||||
string next_page_token = 10;
|
||||
|
||||
// Query execution errors that may have caused the time series data returned
|
||||
// to be incomplete. The available data will be available in the
|
||||
// response.
|
||||
repeated google.rpc.Status partial_errors = 11;
|
||||
}
|
||||
|
||||
// This is an error detail intended to be used with INVALID_ARGUMENT errors.
|
||||
message QueryErrorList {
|
||||
// Errors in parsing the time series query language text. The number of errors
|
||||
// in the response may be limited.
|
||||
repeated QueryError errors = 1;
|
||||
|
||||
// A summary of all the errors.
|
||||
string error_summary = 2;
|
||||
}
|
||||
212
google/monitoring/v3/monitoring.yaml
Normal file
212
google/monitoring/v3/monitoring.yaml
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
type: google.api.Service
|
||||
config_version: 3
|
||||
name: monitoring.googleapis.com
|
||||
title: Cloud Monitoring API
|
||||
|
||||
apis:
|
||||
- name: google.longrunning.Operations
|
||||
- name: google.monitoring.v3.AlertPolicyService
|
||||
- name: google.monitoring.v3.GroupService
|
||||
- name: google.monitoring.v3.MetricService
|
||||
- name: google.monitoring.v3.NotificationChannelService
|
||||
- name: google.monitoring.v3.QueryService
|
||||
- name: google.monitoring.v3.ServiceMonitoringService
|
||||
- name: google.monitoring.v3.SnoozeService
|
||||
- name: google.monitoring.v3.UptimeCheckService
|
||||
|
||||
types:
|
||||
- name: google.monitoring.v3.DroppedLabels
|
||||
- name: google.monitoring.v3.SpanContext
|
||||
|
||||
documentation:
|
||||
summary: Manages your Cloud Monitoring data and configurations.
|
||||
|
||||
authentication:
|
||||
rules:
|
||||
- selector: google.longrunning.Operations.GetOperation
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: 'google.monitoring.v3.AlertPolicyService.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: google.monitoring.v3.AlertPolicyService.GetAlertPolicy
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.AlertPolicyService.ListAlertPolicies
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: 'google.monitoring.v3.GroupService.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.GroupService.CreateGroup
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: google.monitoring.v3.GroupService.DeleteGroup
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: google.monitoring.v3.GroupService.UpdateGroup
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: 'google.monitoring.v3.MetricService.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read,
|
||||
https://www.googleapis.com/auth/monitoring.write
|
||||
- selector: google.monitoring.v3.MetricService.CreateMetricDescriptor
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.write
|
||||
- selector: google.monitoring.v3.MetricService.CreateServiceTimeSeries
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.write
|
||||
- selector: google.monitoring.v3.MetricService.CreateTimeSeries
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.write
|
||||
- selector: google.monitoring.v3.MetricService.DeleteMetricDescriptor
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: google.monitoring.v3.MetricService.ListTimeSeries
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: 'google.monitoring.v3.NotificationChannelService.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: google.monitoring.v3.NotificationChannelService.GetNotificationChannel
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.NotificationChannelService.GetNotificationChannelDescriptor
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.NotificationChannelService.ListNotificationChannelDescriptors
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.NotificationChannelService.ListNotificationChannels
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.QueryService.QueryTimeSeries
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: 'google.monitoring.v3.ServiceMonitoringService.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: google.monitoring.v3.ServiceMonitoringService.GetService
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.ServiceMonitoringService.GetServiceLevelObjective
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.ServiceMonitoringService.ListServiceLevelObjectives
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.ServiceMonitoringService.ListServices
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.SnoozeService.CreateSnooze
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: google.monitoring.v3.SnoozeService.GetSnooze
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.SnoozeService.ListSnoozes
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.SnoozeService.UpdateSnooze
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: 'google.monitoring.v3.UptimeCheckService.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring,
|
||||
https://www.googleapis.com/auth/monitoring.read
|
||||
- selector: google.monitoring.v3.UptimeCheckService.CreateUptimeCheckConfig
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: google.monitoring.v3.UptimeCheckService.DeleteUptimeCheckConfig
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
- selector: google.monitoring.v3.UptimeCheckService.UpdateUptimeCheckConfig
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/cloud-platform,
|
||||
https://www.googleapis.com/auth/monitoring
|
||||
29
google/monitoring/v3/monitoring_gapic.yaml
Normal file
29
google/monitoring/v3/monitoring_gapic.yaml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
type: com.google.api.codegen.ConfigProto
|
||||
config_schema_version: 2.0.0
|
||||
# The settings of generated code in a specific language.
|
||||
language_settings:
|
||||
java:
|
||||
package_name: com.google.cloud.monitoring.v3
|
||||
release_level: GA
|
||||
python:
|
||||
package_name: google.cloud.monitoring_v3.gapic
|
||||
go:
|
||||
package_name: cloud.google.com/go/monitoring/apiv3
|
||||
csharp:
|
||||
package_name: Google.Cloud.Monitoring.V3
|
||||
release_level: GA
|
||||
ruby:
|
||||
package_name: Google::Cloud::Monitoring::V3
|
||||
release_level: BETA
|
||||
php:
|
||||
package_name: Google\Cloud\Monitoring\V3
|
||||
nodejs:
|
||||
package_name: monitoring.v3
|
||||
domain_layer_location: google-cloud
|
||||
# A list of API interface configurations.
|
||||
interfaces:
|
||||
- name: google.monitoring.v3.MetricService
|
||||
smoke_test:
|
||||
method: ListMonitoredResourceDescriptors
|
||||
init_fields:
|
||||
- name%project=$PROJECT_ID
|
||||
360
google/monitoring/v3/monitoring_grpc_service_config.json
Normal file
360
google/monitoring/v3/monitoring_grpc_service_config.json
Normal file
|
|
@ -0,0 +1,360 @@
|
|||
{
|
||||
"methodConfig": [
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.AlertPolicyService",
|
||||
"method": "CreateAlertPolicy"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.AlertPolicyService",
|
||||
"method": "UpdateAlertPolicy"
|
||||
}
|
||||
],
|
||||
"timeout": "30s"
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.GroupService",
|
||||
"method": "ListGroups"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.GroupService",
|
||||
"method": "GetGroup"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.GroupService",
|
||||
"method": "DeleteGroup"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.GroupService",
|
||||
"method": "ListGroupMembers"
|
||||
}
|
||||
],
|
||||
"timeout": "30s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "0.100s",
|
||||
"maxBackoff": "30s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": [
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.GroupService",
|
||||
"method": "UpdateGroup"
|
||||
}
|
||||
],
|
||||
"timeout": "180s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "0.100s",
|
||||
"maxBackoff": "30s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": [
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.GroupService",
|
||||
"method": "CreateGroup"
|
||||
}
|
||||
],
|
||||
"timeout": "30s"
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.MetricService",
|
||||
"method": "CreateMetricDescriptor"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.MetricService",
|
||||
"method": "CreateTimeSeries"
|
||||
}
|
||||
],
|
||||
"timeout": "12s"
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "ListNotificationChannelDescriptors"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "GetNotificationChannelDescriptor"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "ListNotificationChannels"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "GetNotificationChannel"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "DeleteNotificationChannel"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "GetNotificationChannelVerificationCode"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "VerifyNotificationChannel"
|
||||
}
|
||||
],
|
||||
"timeout": "30s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "0.100s",
|
||||
"maxBackoff": "30s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": [
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "CreateService"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "UpdateService"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "CreateServiceLevelObjective"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "UpdateServiceLevelObjective"
|
||||
}
|
||||
],
|
||||
"timeout": "30s"
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "GetService"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "ListServices"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "DeleteService"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "GetServiceLevelObjective"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "ListServiceLevelObjectives"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.ServiceMonitoringService",
|
||||
"method": "DeleteServiceLevelObjective"
|
||||
}
|
||||
],
|
||||
"timeout": "30s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "0.100s",
|
||||
"maxBackoff": "30s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": [
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.UptimeCheckService",
|
||||
"method": "ListUptimeCheckConfigs"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.UptimeCheckService",
|
||||
"method": "GetUptimeCheckConfig"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.UptimeCheckService",
|
||||
"method": "DeleteUptimeCheckConfig"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.UptimeCheckService",
|
||||
"method": "ListUptimeCheckIps"
|
||||
}
|
||||
],
|
||||
"timeout": "30s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "0.100s",
|
||||
"maxBackoff": "30s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": [
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.AlertPolicyService",
|
||||
"method": "ListAlertPolicies"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.AlertPolicyService",
|
||||
"method": "GetAlertPolicy"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.AlertPolicyService",
|
||||
"method": "DeleteAlertPolicy"
|
||||
}
|
||||
],
|
||||
"timeout": "30s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "0.100s",
|
||||
"maxBackoff": "30s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": [
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.MetricService",
|
||||
"method": "ListMonitoredResourceDescriptors"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.MetricService",
|
||||
"method": "GetMonitoredResourceDescriptor"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.MetricService",
|
||||
"method": "ListMetricDescriptors"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.MetricService",
|
||||
"method": "GetMetricDescriptor"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.MetricService",
|
||||
"method": "DeleteMetricDescriptor"
|
||||
}
|
||||
],
|
||||
"timeout": "30s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "0.100s",
|
||||
"maxBackoff": "30s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": [
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.MetricService",
|
||||
"method": "ListTimeSeries"
|
||||
}
|
||||
],
|
||||
"timeout": "90s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "0.100s",
|
||||
"maxBackoff": "30s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": [
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "CreateNotificationChannel"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "UpdateNotificationChannel"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.NotificationChannelService",
|
||||
"method": "SendNotificationChannelVerificationCode"
|
||||
}
|
||||
],
|
||||
"timeout": "30s"
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.UptimeCheckService",
|
||||
"method": "CreateUptimeCheckConfig"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.UptimeCheckService",
|
||||
"method": "UpdateUptimeCheckConfig"
|
||||
}
|
||||
],
|
||||
"timeout": "30s"
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.SnoozeService",
|
||||
"method": "GetSnooze"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.SnoozeService",
|
||||
"method": "ListSnoozes"
|
||||
}
|
||||
],
|
||||
"timeout": "30s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "0.100s",
|
||||
"maxBackoff": "30s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": [
|
||||
"UNAVAILABLE"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": [
|
||||
{
|
||||
"service": "google.monitoring.v3.SnoozeService",
|
||||
"method": "CreateSnooze"
|
||||
},
|
||||
{
|
||||
"service": "google.monitoring.v3.SnoozeService",
|
||||
"method": "UpdateSnooze"
|
||||
}
|
||||
], "timeout": "30s"
|
||||
}
|
||||
]
|
||||
}
|
||||
36
google/monitoring/v3/mutation_record.proto
Normal file
36
google/monitoring/v3/mutation_record.proto
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "MutationRecordProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// Describes a change made to a configuration.
|
||||
message MutationRecord {
|
||||
// When the change occurred.
|
||||
google.protobuf.Timestamp mutate_time = 1;
|
||||
|
||||
// The email address of the user making the change.
|
||||
string mutated_by = 2;
|
||||
}
|
||||
196
google/monitoring/v3/notification.proto
Normal file
196
google/monitoring/v3/notification.proto
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/label.proto";
|
||||
import "google/api/launch_stage.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/common.proto";
|
||||
import "google/monitoring/v3/mutation_record.proto";
|
||||
import "google/protobuf/wrappers.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "NotificationProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// A description of a notification channel. The descriptor includes
|
||||
// the properties of the channel and the set of labels or fields that
|
||||
// must be specified to configure channels of a given type.
|
||||
message NotificationChannelDescriptor {
|
||||
option (google.api.resource) = {
|
||||
type: "monitoring.googleapis.com/NotificationChannelDescriptor"
|
||||
pattern: "projects/{project}/notificationChannelDescriptors/{channel_descriptor}"
|
||||
pattern: "organizations/{organization}/notificationChannelDescriptors/{channel_descriptor}"
|
||||
pattern: "folders/{folder}/notificationChannelDescriptors/{channel_descriptor}"
|
||||
pattern: "*"
|
||||
};
|
||||
|
||||
// The full REST resource name for this descriptor. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/notificationChannelDescriptors/[TYPE]
|
||||
//
|
||||
// In the above, `[TYPE]` is the value of the `type` field.
|
||||
string name = 6;
|
||||
|
||||
// The type of notification channel, such as "email" and "sms". To view the
|
||||
// full list of channels, see
|
||||
// [Channel
|
||||
// descriptors](https://cloud.google.com/monitoring/alerts/using-channels-api#ncd).
|
||||
// Notification channel types are globally unique.
|
||||
string type = 1;
|
||||
|
||||
// A human-readable name for the notification channel type. This
|
||||
// form of the name is suitable for a user interface.
|
||||
string display_name = 2;
|
||||
|
||||
// A human-readable description of the notification channel
|
||||
// type. The description may include a description of the properties
|
||||
// of the channel and pointers to external documentation.
|
||||
string description = 3;
|
||||
|
||||
// The set of labels that must be defined to identify a particular
|
||||
// channel of the corresponding type. Each label includes a
|
||||
// description for how that field should be populated.
|
||||
repeated google.api.LabelDescriptor labels = 4;
|
||||
|
||||
// The tiers that support this notification channel; the project service tier
|
||||
// must be one of the supported_tiers.
|
||||
repeated ServiceTier supported_tiers = 5 [deprecated = true];
|
||||
|
||||
// The product launch stage for channels of this type.
|
||||
google.api.LaunchStage launch_stage = 7;
|
||||
}
|
||||
|
||||
// A `NotificationChannel` is a medium through which an alert is
|
||||
// delivered when a policy violation is detected. Examples of channels
|
||||
// include email, SMS, and third-party messaging applications. Fields
|
||||
// containing sensitive information like authentication tokens or
|
||||
// contact info are only partially populated on retrieval.
|
||||
message NotificationChannel {
|
||||
option (google.api.resource) = {
|
||||
type: "monitoring.googleapis.com/NotificationChannel"
|
||||
pattern: "projects/{project}/notificationChannels/{notification_channel}"
|
||||
pattern: "organizations/{organization}/notificationChannels/{notification_channel}"
|
||||
pattern: "folders/{folder}/notificationChannels/{notification_channel}"
|
||||
pattern: "*"
|
||||
};
|
||||
|
||||
// Indicates whether the channel has been verified or not. It is illegal
|
||||
// to specify this field in a
|
||||
// [`CreateNotificationChannel`][google.monitoring.v3.NotificationChannelService.CreateNotificationChannel]
|
||||
// or an
|
||||
// [`UpdateNotificationChannel`][google.monitoring.v3.NotificationChannelService.UpdateNotificationChannel]
|
||||
// operation.
|
||||
enum VerificationStatus {
|
||||
// Sentinel value used to indicate that the state is unknown, omitted, or
|
||||
// is not applicable (as in the case of channels that neither support
|
||||
// nor require verification in order to function).
|
||||
VERIFICATION_STATUS_UNSPECIFIED = 0;
|
||||
|
||||
// The channel has yet to be verified and requires verification to function.
|
||||
// Note that this state also applies to the case where the verification
|
||||
// process has been initiated by sending a verification code but where
|
||||
// the verification code has not been submitted to complete the process.
|
||||
UNVERIFIED = 1;
|
||||
|
||||
// It has been proven that notifications can be received on this
|
||||
// notification channel and that someone on the project has access
|
||||
// to messages that are delivered to that channel.
|
||||
VERIFIED = 2;
|
||||
}
|
||||
|
||||
// The type of the notification channel. This field matches the
|
||||
// value of the
|
||||
// [NotificationChannelDescriptor.type][google.monitoring.v3.NotificationChannelDescriptor.type]
|
||||
// field.
|
||||
string type = 1;
|
||||
|
||||
// Identifier. The full REST resource name for this channel. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
|
||||
//
|
||||
// The `[CHANNEL_ID]` is automatically assigned by the server on creation.
|
||||
string name = 6 [(google.api.field_behavior) = IDENTIFIER];
|
||||
|
||||
// An optional human-readable name for this notification channel. It is
|
||||
// recommended that you specify a non-empty and unique name in order to
|
||||
// make it easier to identify the channels in your project, though this is
|
||||
// not enforced. The display name is limited to 512 Unicode characters.
|
||||
string display_name = 3;
|
||||
|
||||
// An optional human-readable description of this notification channel. This
|
||||
// description may provide additional details, beyond the display
|
||||
// name, for the channel. This may not exceed 1024 Unicode characters.
|
||||
string description = 4;
|
||||
|
||||
// Configuration fields that define the channel and its behavior. The
|
||||
// permissible and required labels are specified in the
|
||||
// [NotificationChannelDescriptor.labels][google.monitoring.v3.NotificationChannelDescriptor.labels]
|
||||
// of the `NotificationChannelDescriptor` corresponding to the `type` field.
|
||||
map<string, string> labels = 5;
|
||||
|
||||
// User-supplied key/value data that does not need to conform to
|
||||
// the corresponding `NotificationChannelDescriptor`'s schema, unlike
|
||||
// the `labels` field. This field is intended to be used for organizing
|
||||
// and identifying the `NotificationChannel` objects.
|
||||
//
|
||||
// The field can contain up to 64 entries. Each key and value is limited to
|
||||
// 63 Unicode characters or 128 bytes, whichever is smaller. Labels and
|
||||
// values can contain only lowercase letters, numerals, underscores, and
|
||||
// dashes. Keys must begin with a letter.
|
||||
map<string, string> user_labels = 8;
|
||||
|
||||
// Indicates whether this channel has been verified or not. On a
|
||||
// [`ListNotificationChannels`][google.monitoring.v3.NotificationChannelService.ListNotificationChannels]
|
||||
// or
|
||||
// [`GetNotificationChannel`][google.monitoring.v3.NotificationChannelService.GetNotificationChannel]
|
||||
// operation, this field is expected to be populated.
|
||||
//
|
||||
// If the value is `UNVERIFIED`, then it indicates that the channel is
|
||||
// non-functioning (it both requires verification and lacks verification);
|
||||
// otherwise, it is assumed that the channel works.
|
||||
//
|
||||
// If the channel is neither `VERIFIED` nor `UNVERIFIED`, it implies that
|
||||
// the channel is of a type that does not require verification or that
|
||||
// this specific channel has been exempted from verification because it was
|
||||
// created prior to verification being required for channels of this type.
|
||||
//
|
||||
// This field cannot be modified using a standard
|
||||
// [`UpdateNotificationChannel`][google.monitoring.v3.NotificationChannelService.UpdateNotificationChannel]
|
||||
// operation. To change the value of this field, you must call
|
||||
// [`VerifyNotificationChannel`][google.monitoring.v3.NotificationChannelService.VerifyNotificationChannel].
|
||||
VerificationStatus verification_status = 9;
|
||||
|
||||
// Whether notifications are forwarded to the described channel. This makes
|
||||
// it possible to disable delivery of notifications to a particular channel
|
||||
// without removing the channel from all alerting policies that reference
|
||||
// the channel. This is a more convenient approach when the change is
|
||||
// temporary and you want to receive notifications from the same set
|
||||
// of alerting policies on the channel at some point in the future.
|
||||
google.protobuf.BoolValue enabled = 11;
|
||||
|
||||
// Record of the creation of this channel.
|
||||
MutationRecord creation_record = 12;
|
||||
|
||||
// Records of the modification of this channel.
|
||||
repeated MutationRecord mutation_records = 13;
|
||||
}
|
||||
449
google/monitoring/v3/notification_service.proto
Normal file
449
google/monitoring/v3/notification_service.proto
Normal file
|
|
@ -0,0 +1,449 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/notification.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "NotificationServiceProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// The Notification Channel API provides access to configuration that
|
||||
// controls how messages related to incidents are sent.
|
||||
service NotificationChannelService {
|
||||
option (google.api.default_host) = "monitoring.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/monitoring,"
|
||||
"https://www.googleapis.com/auth/monitoring.read";
|
||||
|
||||
// Lists the descriptors for supported channel types. The use of descriptors
|
||||
// makes it possible for new channel types to be dynamically added.
|
||||
rpc ListNotificationChannelDescriptors(
|
||||
ListNotificationChannelDescriptorsRequest)
|
||||
returns (ListNotificationChannelDescriptorsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*}/notificationChannelDescriptors"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Gets a single channel descriptor. The descriptor indicates which fields
|
||||
// are expected / permitted for a notification channel of the given type.
|
||||
rpc GetNotificationChannelDescriptor(GetNotificationChannelDescriptorRequest)
|
||||
returns (NotificationChannelDescriptor) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*/notificationChannelDescriptors/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Lists the notification channels that have been created for the project.
|
||||
// To list the types of notification channels that are supported, use
|
||||
// the `ListNotificationChannelDescriptors` method.
|
||||
rpc ListNotificationChannels(ListNotificationChannelsRequest)
|
||||
returns (ListNotificationChannelsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*}/notificationChannels"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Gets a single notification channel. The channel includes the relevant
|
||||
// configuration details with which the channel was created. However, the
|
||||
// response may truncate or omit passwords, API keys, or other private key
|
||||
// matter and thus the response may not be 100% identical to the information
|
||||
// that was supplied in the call to the create method.
|
||||
rpc GetNotificationChannel(GetNotificationChannelRequest)
|
||||
returns (NotificationChannel) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*/notificationChannels/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a new notification channel, representing a single notification
|
||||
// endpoint such as an email address, SMS number, or PagerDuty service.
|
||||
//
|
||||
// Design your application to single-thread API calls that modify the state of
|
||||
// notification channels in a single project. This includes calls to
|
||||
// CreateNotificationChannel, DeleteNotificationChannel and
|
||||
// UpdateNotificationChannel.
|
||||
rpc CreateNotificationChannel(CreateNotificationChannelRequest)
|
||||
returns (NotificationChannel) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*}/notificationChannels"
|
||||
body: "notification_channel"
|
||||
};
|
||||
option (google.api.method_signature) = "name,notification_channel";
|
||||
}
|
||||
|
||||
// Updates a notification channel. Fields not specified in the field mask
|
||||
// remain unchanged.
|
||||
//
|
||||
// Design your application to single-thread API calls that modify the state of
|
||||
// notification channels in a single project. This includes calls to
|
||||
// CreateNotificationChannel, DeleteNotificationChannel and
|
||||
// UpdateNotificationChannel.
|
||||
rpc UpdateNotificationChannel(UpdateNotificationChannelRequest)
|
||||
returns (NotificationChannel) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v3/{notification_channel.name=projects/*/notificationChannels/*}"
|
||||
body: "notification_channel"
|
||||
};
|
||||
option (google.api.method_signature) = "update_mask,notification_channel";
|
||||
}
|
||||
|
||||
// Deletes a notification channel.
|
||||
//
|
||||
// Design your application to single-thread API calls that modify the state of
|
||||
// notification channels in a single project. This includes calls to
|
||||
// CreateNotificationChannel, DeleteNotificationChannel and
|
||||
// UpdateNotificationChannel.
|
||||
rpc DeleteNotificationChannel(DeleteNotificationChannelRequest)
|
||||
returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v3/{name=projects/*/notificationChannels/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name,force";
|
||||
}
|
||||
|
||||
// Causes a verification code to be delivered to the channel. The code
|
||||
// can then be supplied in `VerifyNotificationChannel` to verify the channel.
|
||||
rpc SendNotificationChannelVerificationCode(
|
||||
SendNotificationChannelVerificationCodeRequest)
|
||||
returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*/notificationChannels/*}:sendVerificationCode"
|
||||
body: "*"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Requests a verification code for an already verified channel that can then
|
||||
// be used in a call to VerifyNotificationChannel() on a different channel
|
||||
// with an equivalent identity in the same or in a different project. This
|
||||
// makes it possible to copy a channel between projects without requiring
|
||||
// manual reverification of the channel. If the channel is not in the
|
||||
// verified state, this method will fail (in other words, this may only be
|
||||
// used if the SendNotificationChannelVerificationCode and
|
||||
// VerifyNotificationChannel paths have already been used to put the given
|
||||
// channel into the verified state).
|
||||
//
|
||||
// There is no guarantee that the verification codes returned by this method
|
||||
// will be of a similar structure or form as the ones that are delivered
|
||||
// to the channel via SendNotificationChannelVerificationCode; while
|
||||
// VerifyNotificationChannel() will recognize both the codes delivered via
|
||||
// SendNotificationChannelVerificationCode() and returned from
|
||||
// GetNotificationChannelVerificationCode(), it is typically the case that
|
||||
// the verification codes delivered via
|
||||
// SendNotificationChannelVerificationCode() will be shorter and also
|
||||
// have a shorter expiration (e.g. codes such as "G-123456") whereas
|
||||
// GetVerificationCode() will typically return a much longer, websafe base
|
||||
// 64 encoded string that has a longer expiration time.
|
||||
rpc GetNotificationChannelVerificationCode(
|
||||
GetNotificationChannelVerificationCodeRequest)
|
||||
returns (GetNotificationChannelVerificationCodeResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*/notificationChannels/*}:getVerificationCode"
|
||||
body: "*"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Verifies a `NotificationChannel` by proving receipt of the code
|
||||
// delivered to the channel as a result of calling
|
||||
// `SendNotificationChannelVerificationCode`.
|
||||
rpc VerifyNotificationChannel(VerifyNotificationChannelRequest)
|
||||
returns (NotificationChannel) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*/notificationChannels/*}:verify"
|
||||
body: "*"
|
||||
};
|
||||
option (google.api.method_signature) = "name,code";
|
||||
}
|
||||
}
|
||||
|
||||
// The `ListNotificationChannelDescriptors` request.
|
||||
message ListNotificationChannelDescriptorsRequest {
|
||||
// Required. The REST resource name of the parent from which to retrieve
|
||||
// the notification channel descriptors. The expected syntax is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
//
|
||||
// Note that this
|
||||
// [names](https://cloud.google.com/monitoring/api/v3#project_name) the parent
|
||||
// container in which to look for the descriptors; to retrieve a single
|
||||
// descriptor by name, use the
|
||||
// [GetNotificationChannelDescriptor][google.monitoring.v3.NotificationChannelService.GetNotificationChannelDescriptor]
|
||||
// operation, instead.
|
||||
string name = 4 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/NotificationChannelDescriptor"
|
||||
}
|
||||
];
|
||||
|
||||
// The maximum number of results to return in a single response. If
|
||||
// not set to a positive number, a reasonable value will be chosen by the
|
||||
// service.
|
||||
int32 page_size = 2;
|
||||
|
||||
// If non-empty, `page_token` must contain a value returned as the
|
||||
// `next_page_token` in a previous response to request the next set
|
||||
// of results.
|
||||
string page_token = 3;
|
||||
}
|
||||
|
||||
// The `ListNotificationChannelDescriptors` response.
|
||||
message ListNotificationChannelDescriptorsResponse {
|
||||
// The monitored resource descriptors supported for the specified
|
||||
// project, optionally filtered.
|
||||
repeated NotificationChannelDescriptor channel_descriptors = 1;
|
||||
|
||||
// If not empty, indicates that there may be more results that match
|
||||
// the request. Use the value in the `page_token` field in a
|
||||
// subsequent request to fetch the next set of results. If empty,
|
||||
// all results have been returned.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The `GetNotificationChannelDescriptor` response.
|
||||
message GetNotificationChannelDescriptorRequest {
|
||||
// Required. The channel type for which to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/notificationChannelDescriptors/[CHANNEL_TYPE]
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/NotificationChannelDescriptor"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The `CreateNotificationChannel` request.
|
||||
message CreateNotificationChannelRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) on which
|
||||
// to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
//
|
||||
// This names the container into which the channel will be
|
||||
// written, this does not name the newly created channel. The resulting
|
||||
// channel's name will have a normalized version of this field as a prefix,
|
||||
// but will add `/notificationChannels/[CHANNEL_ID]` to identify the channel.
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/NotificationChannel"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The definition of the `NotificationChannel` to create.
|
||||
NotificationChannel notification_channel = 2
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The `ListNotificationChannels` request.
|
||||
message ListNotificationChannelsRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) on which
|
||||
// to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
//
|
||||
// This names the container
|
||||
// in which to look for the notification channels; it does not name a
|
||||
// specific channel. To query a specific channel by REST resource name, use
|
||||
// the
|
||||
// [`GetNotificationChannel`][google.monitoring.v3.NotificationChannelService.GetNotificationChannel]
|
||||
// operation.
|
||||
string name = 5 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/NotificationChannel"
|
||||
}
|
||||
];
|
||||
|
||||
// Optional. If provided, this field specifies the criteria that must be met
|
||||
// by notification channels to be included in the response.
|
||||
//
|
||||
// For more details, see [sorting and
|
||||
// filtering](https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).
|
||||
string filter = 6 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. A comma-separated list of fields by which to sort the result.
|
||||
// Supports the same set of fields as in `filter`. Entries can be prefixed
|
||||
// with a minus sign to sort in descending rather than ascending order.
|
||||
//
|
||||
// For more details, see [sorting and
|
||||
// filtering](https://cloud.google.com/monitoring/api/v3/sorting-and-filtering).
|
||||
string order_by = 7 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The maximum number of results to return in a single response. If
|
||||
// not set to a positive number, a reasonable value will be chosen by the
|
||||
// service.
|
||||
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. If non-empty, `page_token` must contain a value returned as the
|
||||
// `next_page_token` in a previous response to request the next set
|
||||
// of results.
|
||||
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// The `ListNotificationChannels` response.
|
||||
message ListNotificationChannelsResponse {
|
||||
// The notification channels defined for the specified project.
|
||||
repeated NotificationChannel notification_channels = 3;
|
||||
|
||||
// If not empty, indicates that there may be more results that match
|
||||
// the request. Use the value in the `page_token` field in a
|
||||
// subsequent request to fetch the next set of results. If empty,
|
||||
// all results have been returned.
|
||||
string next_page_token = 2;
|
||||
|
||||
// The total number of notification channels in all pages. This number is only
|
||||
// an estimate, and may change in subsequent pages. https://aip.dev/158
|
||||
int32 total_size = 4;
|
||||
}
|
||||
|
||||
// The `GetNotificationChannel` request.
|
||||
message GetNotificationChannelRequest {
|
||||
// Required. The channel for which to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/NotificationChannel"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The `UpdateNotificationChannel` request.
|
||||
message UpdateNotificationChannelRequest {
|
||||
// Optional. The fields to update.
|
||||
google.protobuf.FieldMask update_mask = 2
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Required. A description of the changes to be applied to the specified
|
||||
// notification channel. The description must provide a definition for
|
||||
// fields to be updated; the names of these fields should also be
|
||||
// included in the `update_mask`.
|
||||
NotificationChannel notification_channel = 3
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The `DeleteNotificationChannel` request.
|
||||
message DeleteNotificationChannelRequest {
|
||||
// Required. The channel for which to execute the request. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
|
||||
string name = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/NotificationChannel"
|
||||
}
|
||||
];
|
||||
|
||||
// If true, the notification channel will be deleted regardless of its
|
||||
// use in alert policies (the policies will be updated to remove the
|
||||
// channel). If false, this operation will fail if the notification channel
|
||||
// is referenced by existing alerting policies.
|
||||
bool force = 5;
|
||||
}
|
||||
|
||||
// The `SendNotificationChannelVerificationCode` request.
|
||||
message SendNotificationChannelVerificationCodeRequest {
|
||||
// Required. The notification channel to which to send a verification code.
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/NotificationChannel"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The `GetNotificationChannelVerificationCode` request.
|
||||
message GetNotificationChannelVerificationCodeRequest {
|
||||
// Required. The notification channel for which a verification code is to be
|
||||
// generated and retrieved. This must name a channel that is already verified;
|
||||
// if the specified channel is not verified, the request will fail.
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/NotificationChannel"
|
||||
}
|
||||
];
|
||||
|
||||
// The desired expiration time. If specified, the API will guarantee that
|
||||
// the returned code will not be valid after the specified timestamp;
|
||||
// however, the API cannot guarantee that the returned code will be
|
||||
// valid for at least as long as the requested time (the API puts an upper
|
||||
// bound on the amount of time for which a code may be valid). If omitted,
|
||||
// a default expiration will be used, which may be less than the max
|
||||
// permissible expiration (so specifying an expiration may extend the
|
||||
// code's lifetime over omitting an expiration, even though the API does
|
||||
// impose an upper limit on the maximum expiration that is permitted).
|
||||
google.protobuf.Timestamp expire_time = 2;
|
||||
}
|
||||
|
||||
// The `GetNotificationChannelVerificationCode` request.
|
||||
message GetNotificationChannelVerificationCodeResponse {
|
||||
// The verification code, which may be used to verify other channels
|
||||
// that have an equivalent identity (i.e. other channels of the same
|
||||
// type with the same fingerprint such as other email channels with
|
||||
// the same email address or other sms channels with the same number).
|
||||
string code = 1;
|
||||
|
||||
// The expiration time associated with the code that was returned. If
|
||||
// an expiration was provided in the request, this is the minimum of the
|
||||
// requested expiration in the request and the max permitted expiration.
|
||||
google.protobuf.Timestamp expire_time = 2;
|
||||
}
|
||||
|
||||
// The `VerifyNotificationChannel` request.
|
||||
message VerifyNotificationChannelRequest {
|
||||
// Required. The notification channel to verify.
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/NotificationChannel"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The verification code that was delivered to the channel as
|
||||
// a result of invoking the `SendNotificationChannelVerificationCode` API
|
||||
// method or that was retrieved from a verified channel via
|
||||
// `GetNotificationChannelVerificationCode`. For example, one might have
|
||||
// "G-123456" or "TKNZGhhd2EyN3I1MnRnMjRv" (in general, one is only
|
||||
// guaranteed that the code is valid UTF-8; one should not
|
||||
// make any assumptions regarding the structure or format of the code).
|
||||
string code = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
53
google/monitoring/v3/query_service.proto
Normal file
53
google/monitoring/v3/query_service.proto
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/monitoring/v3/metric_service.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "QueryServiceProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// The QueryService API is used to manage time series data in Cloud
|
||||
// Monitoring. Time series data is a collection of data points that describes
|
||||
// the time-varying values of a metric.
|
||||
service QueryService {
|
||||
option (google.api.default_host) = "monitoring.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/monitoring,"
|
||||
"https://www.googleapis.com/auth/monitoring.read";
|
||||
|
||||
// Queries time series by using Monitoring Query Language (MQL). We recommend
|
||||
// using PromQL instead of MQL. For more information about the status of MQL,
|
||||
// see the [MQL deprecation
|
||||
// notice](https://cloud.google.com/stackdriver/docs/deprecations/mql).
|
||||
rpc QueryTimeSeries(QueryTimeSeriesRequest)
|
||||
returns (QueryTimeSeriesResponse) {
|
||||
option deprecated = true;
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{name=projects/*}/timeSeries:query"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
}
|
||||
572
google/monitoring/v3/service.proto
Normal file
572
google/monitoring/v3/service.proto
Normal file
|
|
@ -0,0 +1,572 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
import "google/type/calendar_period.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ServiceMonitoringProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// A `Service` is a discrete, autonomous, and network-accessible unit, designed
|
||||
// to solve an individual concern
|
||||
// ([Wikipedia](https://en.wikipedia.org/wiki/Service-orientation)). In
|
||||
// Cloud Monitoring, a `Service` acts as the root resource under which
|
||||
// operational aspects of the service are accessible.
|
||||
message Service {
|
||||
option (google.api.resource) = {
|
||||
type: "monitoring.googleapis.com/Service"
|
||||
pattern: "projects/{project}/services/{service}"
|
||||
pattern: "organizations/{organization}/services/{service}"
|
||||
pattern: "folders/{folder}/services/{service}"
|
||||
pattern: "*"
|
||||
};
|
||||
|
||||
// Use a custom service to designate a service that you want to monitor
|
||||
// when none of the other service types (like App Engine, Cloud Run, or
|
||||
// a GKE type) matches your intended service.
|
||||
message Custom {}
|
||||
|
||||
// App Engine service. Learn more at https://cloud.google.com/appengine.
|
||||
message AppEngine {
|
||||
// The ID of the App Engine module underlying this service. Corresponds to
|
||||
// the `module_id` resource label in the [`gae_app` monitored
|
||||
// resource](https://cloud.google.com/monitoring/api/resources#tag_gae_app).
|
||||
string module_id = 1;
|
||||
}
|
||||
|
||||
// Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints.
|
||||
message CloudEndpoints {
|
||||
// The name of the Cloud Endpoints service underlying this service.
|
||||
// Corresponds to the `service` resource label in the [`api` monitored
|
||||
// resource](https://cloud.google.com/monitoring/api/resources#tag_api).
|
||||
string service = 1;
|
||||
}
|
||||
|
||||
// Istio service scoped to a single Kubernetes cluster. Learn more at
|
||||
// https://istio.io. Clusters running OSS Istio will have their services
|
||||
// ingested as this type.
|
||||
message ClusterIstio {
|
||||
// The location of the Kubernetes cluster in which this Istio service is
|
||||
// defined. Corresponds to the `location` resource label in `k8s_cluster`
|
||||
// resources.
|
||||
string location = 1;
|
||||
|
||||
// The name of the Kubernetes cluster in which this Istio service is
|
||||
// defined. Corresponds to the `cluster_name` resource label in
|
||||
// `k8s_cluster` resources.
|
||||
string cluster_name = 2;
|
||||
|
||||
// The namespace of the Istio service underlying this service. Corresponds
|
||||
// to the `destination_service_namespace` metric label in Istio metrics.
|
||||
string service_namespace = 3;
|
||||
|
||||
// The name of the Istio service underlying this service. Corresponds to the
|
||||
// `destination_service_name` metric label in Istio metrics.
|
||||
string service_name = 4;
|
||||
}
|
||||
|
||||
// Istio service scoped to an Istio mesh. Anthos clusters running ASM < 1.6.8
|
||||
// will have their services ingested as this type.
|
||||
message MeshIstio {
|
||||
// Identifier for the mesh in which this Istio service is defined.
|
||||
// Corresponds to the `mesh_uid` metric label in Istio metrics.
|
||||
string mesh_uid = 1;
|
||||
|
||||
// The namespace of the Istio service underlying this service. Corresponds
|
||||
// to the `destination_service_namespace` metric label in Istio metrics.
|
||||
string service_namespace = 3;
|
||||
|
||||
// The name of the Istio service underlying this service. Corresponds to the
|
||||
// `destination_service_name` metric label in Istio metrics.
|
||||
string service_name = 4;
|
||||
}
|
||||
|
||||
// Canonical service scoped to an Istio mesh. Anthos clusters running ASM >=
|
||||
// 1.6.8 will have their services ingested as this type.
|
||||
message IstioCanonicalService {
|
||||
// Identifier for the Istio mesh in which this canonical service is defined.
|
||||
// Corresponds to the `mesh_uid` metric label in
|
||||
// [Istio metrics](https://cloud.google.com/monitoring/api/metrics_istio).
|
||||
string mesh_uid = 1;
|
||||
|
||||
// The namespace of the canonical service underlying this service.
|
||||
// Corresponds to the `destination_canonical_service_namespace` metric
|
||||
// label in [Istio
|
||||
// metrics](https://cloud.google.com/monitoring/api/metrics_istio).
|
||||
string canonical_service_namespace = 3;
|
||||
|
||||
// The name of the canonical service underlying this service.
|
||||
// Corresponds to the `destination_canonical_service_name` metric label in
|
||||
// label in [Istio
|
||||
// metrics](https://cloud.google.com/monitoring/api/metrics_istio).
|
||||
string canonical_service = 4;
|
||||
}
|
||||
|
||||
// Cloud Run service. Learn more at https://cloud.google.com/run.
|
||||
message CloudRun {
|
||||
// The name of the Cloud Run service. Corresponds to the `service_name`
|
||||
// resource label in the [`cloud_run_revision` monitored
|
||||
// resource](https://cloud.google.com/monitoring/api/resources#tag_cloud_run_revision).
|
||||
string service_name = 1;
|
||||
|
||||
// The location the service is run. Corresponds to the `location`
|
||||
// resource label in the [`cloud_run_revision` monitored
|
||||
// resource](https://cloud.google.com/monitoring/api/resources#tag_cloud_run_revision).
|
||||
string location = 2;
|
||||
}
|
||||
|
||||
// GKE Namespace. The field names correspond to the resource metadata labels
|
||||
// on monitored resources that fall under a namespace (for example,
|
||||
// `k8s_container` or `k8s_pod`).
|
||||
message GkeNamespace {
|
||||
// Output only. The project this resource lives in. For legacy services
|
||||
// migrated from the `Custom` type, this may be a distinct project from the
|
||||
// one parenting the service itself.
|
||||
string project_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// The location of the parent cluster. This may be a zone or region.
|
||||
string location = 2;
|
||||
|
||||
// The name of the parent cluster.
|
||||
string cluster_name = 3;
|
||||
|
||||
// The name of this namespace.
|
||||
string namespace_name = 4;
|
||||
}
|
||||
|
||||
// A GKE Workload (Deployment, StatefulSet, etc). The field names correspond
|
||||
// to the metadata labels on monitored resources that fall under a workload
|
||||
// (for example, `k8s_container` or `k8s_pod`).
|
||||
message GkeWorkload {
|
||||
// Output only. The project this resource lives in. For legacy services
|
||||
// migrated from the `Custom` type, this may be a distinct project from the
|
||||
// one parenting the service itself.
|
||||
string project_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// The location of the parent cluster. This may be a zone or region.
|
||||
string location = 2;
|
||||
|
||||
// The name of the parent cluster.
|
||||
string cluster_name = 3;
|
||||
|
||||
// The name of the parent namespace.
|
||||
string namespace_name = 4;
|
||||
|
||||
// The type of this workload (for example, "Deployment" or "DaemonSet")
|
||||
string top_level_controller_type = 5;
|
||||
|
||||
// The name of this workload.
|
||||
string top_level_controller_name = 6;
|
||||
}
|
||||
|
||||
// GKE Service. The "service" here represents a
|
||||
// [Kubernetes service
|
||||
// object](https://kubernetes.io/docs/concepts/services-networking/service).
|
||||
// The field names correspond to the resource labels on [`k8s_service`
|
||||
// monitored
|
||||
// resources](https://cloud.google.com/monitoring/api/resources#tag_k8s_service).
|
||||
message GkeService {
|
||||
// Output only. The project this resource lives in. For legacy services
|
||||
// migrated from the `Custom` type, this may be a distinct project from the
|
||||
// one parenting the service itself.
|
||||
string project_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
|
||||
// The location of the parent cluster. This may be a zone or region.
|
||||
string location = 2;
|
||||
|
||||
// The name of the parent cluster.
|
||||
string cluster_name = 3;
|
||||
|
||||
// The name of the parent namespace.
|
||||
string namespace_name = 4;
|
||||
|
||||
// The name of this service.
|
||||
string service_name = 5;
|
||||
}
|
||||
|
||||
// A well-known service type, defined by its service type and service labels.
|
||||
// Documentation and examples
|
||||
// [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
|
||||
message BasicService {
|
||||
// The type of service that this basic service defines, e.g.
|
||||
// APP_ENGINE service type.
|
||||
// Documentation and valid values
|
||||
// [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
|
||||
string service_type = 1;
|
||||
|
||||
// Labels that specify the resource that emits the monitoring data which
|
||||
// is used for SLO reporting of this `Service`.
|
||||
// Documentation and valid values for given service types
|
||||
// [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
|
||||
map<string, string> service_labels = 2;
|
||||
}
|
||||
|
||||
// Configuration for how to query telemetry on a Service.
|
||||
message Telemetry {
|
||||
// The full name of the resource that defines this service. Formatted as
|
||||
// described in https://cloud.google.com/apis/design/resource_names.
|
||||
string resource_name = 1;
|
||||
}
|
||||
|
||||
// Identifier. Resource name for this Service. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]
|
||||
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
|
||||
|
||||
// Name used for UI elements listing this Service.
|
||||
string display_name = 2;
|
||||
|
||||
// REQUIRED. Service-identifying atoms specifying the underlying service.
|
||||
oneof identifier {
|
||||
// Custom service type.
|
||||
Custom custom = 6;
|
||||
|
||||
// Type used for App Engine services.
|
||||
AppEngine app_engine = 7;
|
||||
|
||||
// Type used for Cloud Endpoints services.
|
||||
CloudEndpoints cloud_endpoints = 8;
|
||||
|
||||
// Type used for Istio services that live in a Kubernetes cluster.
|
||||
ClusterIstio cluster_istio = 9;
|
||||
|
||||
// Type used for Istio services scoped to an Istio mesh.
|
||||
MeshIstio mesh_istio = 10;
|
||||
|
||||
// Type used for canonical services scoped to an Istio mesh.
|
||||
// Metrics for Istio are
|
||||
// [documented here](https://istio.io/latest/docs/reference/config/metrics/)
|
||||
IstioCanonicalService istio_canonical_service = 11;
|
||||
|
||||
// Type used for Cloud Run services.
|
||||
CloudRun cloud_run = 12;
|
||||
|
||||
// Type used for GKE Namespaces.
|
||||
GkeNamespace gke_namespace = 15;
|
||||
|
||||
// Type used for GKE Workloads.
|
||||
GkeWorkload gke_workload = 16;
|
||||
|
||||
// Type used for GKE Services (the Kubernetes concept of a service).
|
||||
GkeService gke_service = 17;
|
||||
}
|
||||
|
||||
// Message that contains the service type and service labels of this service
|
||||
// if it is a basic service.
|
||||
// Documentation and examples
|
||||
// [here](https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).
|
||||
BasicService basic_service = 19;
|
||||
|
||||
// Configuration for how to query telemetry on a Service.
|
||||
Telemetry telemetry = 13;
|
||||
|
||||
// Labels which have been used to annotate the service. Label keys must start
|
||||
// with a letter. Label keys and values may contain lowercase letters,
|
||||
// numbers, underscores, and dashes. Label keys and values have a maximum
|
||||
// length of 63 characters, and must be less than 128 bytes in size. Up to 64
|
||||
// label entries may be stored. For labels which do not have a semantic value,
|
||||
// the empty string may be supplied for the label value.
|
||||
map<string, string> user_labels = 14;
|
||||
}
|
||||
|
||||
// A Service-Level Objective (SLO) describes a level of desired good service. It
|
||||
// consists of a service-level indicator (SLI), a performance goal, and a period
|
||||
// over which the objective is to be evaluated against that goal. The SLO can
|
||||
// use SLIs defined in a number of different manners. Typical SLOs might include
|
||||
// "99% of requests in each rolling week have latency below 200 milliseconds" or
|
||||
// "99.5% of requests in each calendar month return successfully."
|
||||
message ServiceLevelObjective {
|
||||
option (google.api.resource) = {
|
||||
type: "monitoring.googleapis.com/ServiceLevelObjective"
|
||||
pattern: "projects/{project}/services/{service}/serviceLevelObjectives/{service_level_objective}"
|
||||
pattern: "organizations/{organization}/services/{service}/serviceLevelObjectives/{service_level_objective}"
|
||||
pattern: "folders/{folder}/services/{service}/serviceLevelObjectives/{service_level_objective}"
|
||||
pattern: "*"
|
||||
history: ORIGINALLY_SINGLE_PATTERN
|
||||
};
|
||||
|
||||
// `ServiceLevelObjective.View` determines what form of
|
||||
// `ServiceLevelObjective` is returned from `GetServiceLevelObjective`,
|
||||
// `ListServiceLevelObjectives`, and `ListServiceLevelObjectiveVersions` RPCs.
|
||||
enum View {
|
||||
// Same as FULL.
|
||||
VIEW_UNSPECIFIED = 0;
|
||||
|
||||
// Return the embedded `ServiceLevelIndicator` in the form in which it was
|
||||
// defined. If it was defined using a `BasicSli`, return that `BasicSli`.
|
||||
FULL = 2;
|
||||
|
||||
// For `ServiceLevelIndicator`s using `BasicSli` articulation, instead
|
||||
// return the `ServiceLevelIndicator` with its mode of computation fully
|
||||
// spelled out as a `RequestBasedSli`. For `ServiceLevelIndicator`s using
|
||||
// `RequestBasedSli` or `WindowsBasedSli`, return the
|
||||
// `ServiceLevelIndicator` as it was provided.
|
||||
EXPLICIT = 1;
|
||||
}
|
||||
|
||||
// Identifier. Resource name for this `ServiceLevelObjective`. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
|
||||
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
|
||||
|
||||
// Name used for UI elements listing this SLO.
|
||||
string display_name = 11;
|
||||
|
||||
// The definition of good service, used to measure and calculate the quality
|
||||
// of the `Service`'s performance with respect to a single aspect of service
|
||||
// quality.
|
||||
ServiceLevelIndicator service_level_indicator = 3;
|
||||
|
||||
// The fraction of service that must be good in order for this objective to be
|
||||
// met. `0 < goal <= 0.9999`.
|
||||
double goal = 4;
|
||||
|
||||
// The time period over which the objective will be evaluated.
|
||||
oneof period {
|
||||
// A rolling time period, semantically "in the past `<rolling_period>`".
|
||||
// Must be an integer multiple of 1 day no larger than 30 days.
|
||||
google.protobuf.Duration rolling_period = 5;
|
||||
|
||||
// A calendar period, semantically "since the start of the current
|
||||
// `<calendar_period>`". At this time, only `DAY`, `WEEK`, `FORTNIGHT`, and
|
||||
// `MONTH` are supported.
|
||||
google.type.CalendarPeriod calendar_period = 6;
|
||||
}
|
||||
|
||||
// Labels which have been used to annotate the service-level objective. Label
|
||||
// keys must start with a letter. Label keys and values may contain lowercase
|
||||
// letters, numbers, underscores, and dashes. Label keys and values have a
|
||||
// maximum length of 63 characters, and must be less than 128 bytes in size.
|
||||
// Up to 64 label entries may be stored. For labels which do not have a
|
||||
// semantic value, the empty string may be supplied for the label value.
|
||||
map<string, string> user_labels = 12;
|
||||
}
|
||||
|
||||
// A Service-Level Indicator (SLI) describes the "performance" of a service. For
|
||||
// some services, the SLI is well-defined. In such cases, the SLI can be
|
||||
// described easily by referencing the well-known SLI and providing the needed
|
||||
// parameters. Alternatively, a "custom" SLI can be defined with a query to the
|
||||
// underlying metric store. An SLI is defined to be `good_service /
|
||||
// total_service` over any queried time interval. The value of performance
|
||||
// always falls into the range `0 <= performance <= 1`. A custom SLI describes
|
||||
// how to compute this ratio, whether this is by dividing values from a pair of
|
||||
// time series, cutting a `Distribution` into good and bad counts, or counting
|
||||
// time windows in which the service complies with a criterion. For separation
|
||||
// of concerns, a single Service-Level Indicator measures performance for only
|
||||
// one aspect of service quality, such as fraction of successful queries or
|
||||
// fast-enough queries.
|
||||
message ServiceLevelIndicator {
|
||||
// Service level indicators can be grouped by whether the "unit" of service
|
||||
// being measured is based on counts of good requests or on counts of good
|
||||
// time windows
|
||||
oneof type {
|
||||
// Basic SLI on a well-known service type.
|
||||
BasicSli basic_sli = 4;
|
||||
|
||||
// Request-based SLIs
|
||||
RequestBasedSli request_based = 1;
|
||||
|
||||
// Windows-based SLIs
|
||||
WindowsBasedSli windows_based = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// An SLI measuring performance on a well-known service type. Performance will
|
||||
// be computed on the basis of pre-defined metrics. The type of the
|
||||
// `service_resource` determines the metrics to use and the
|
||||
// `service_resource.labels` and `metric_labels` are used to construct a
|
||||
// monitoring filter to filter that metric down to just the data relevant to
|
||||
// this service.
|
||||
message BasicSli {
|
||||
// Future parameters for the availability SLI.
|
||||
message AvailabilityCriteria {}
|
||||
|
||||
// Parameters for a latency threshold SLI.
|
||||
message LatencyCriteria {
|
||||
// Good service is defined to be the count of requests made to this service
|
||||
// that return in no more than `threshold`.
|
||||
google.protobuf.Duration threshold = 3;
|
||||
}
|
||||
|
||||
// OPTIONAL: The set of RPCs to which this SLI is relevant. Telemetry from
|
||||
// other methods will not be used to calculate performance for this SLI. If
|
||||
// omitted, this SLI applies to all the Service's methods. For service types
|
||||
// that don't support breaking down by method, setting this field will result
|
||||
// in an error.
|
||||
repeated string method = 7;
|
||||
|
||||
// OPTIONAL: The set of locations to which this SLI is relevant. Telemetry
|
||||
// from other locations will not be used to calculate performance for this
|
||||
// SLI. If omitted, this SLI applies to all locations in which the Service has
|
||||
// activity. For service types that don't support breaking down by location,
|
||||
// setting this field will result in an error.
|
||||
repeated string location = 8;
|
||||
|
||||
// OPTIONAL: The set of API versions to which this SLI is relevant. Telemetry
|
||||
// from other API versions will not be used to calculate performance for this
|
||||
// SLI. If omitted, this SLI applies to all API versions. For service types
|
||||
// that don't support breaking down by version, setting this field will result
|
||||
// in an error.
|
||||
repeated string version = 9;
|
||||
|
||||
// This SLI can be evaluated on the basis of availability or latency.
|
||||
oneof sli_criteria {
|
||||
// Good service is defined to be the count of requests made to this service
|
||||
// that return successfully.
|
||||
AvailabilityCriteria availability = 2;
|
||||
|
||||
// Good service is defined to be the count of requests made to this service
|
||||
// that are fast enough with respect to `latency.threshold`.
|
||||
LatencyCriteria latency = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// Range of numerical values within `min` and `max`.
|
||||
message Range {
|
||||
// Range minimum.
|
||||
double min = 1;
|
||||
|
||||
// Range maximum.
|
||||
double max = 2;
|
||||
}
|
||||
|
||||
// Service Level Indicators for which atomic units of service are counted
|
||||
// directly.
|
||||
message RequestBasedSli {
|
||||
// The means to compute a ratio of `good_service` to `total_service`.
|
||||
oneof method {
|
||||
// `good_total_ratio` is used when the ratio of `good_service` to
|
||||
// `total_service` is computed from two `TimeSeries`.
|
||||
TimeSeriesRatio good_total_ratio = 1;
|
||||
|
||||
// `distribution_cut` is used when `good_service` is a count of values
|
||||
// aggregated in a `Distribution` that fall into a good range. The
|
||||
// `total_service` is the total count of all values aggregated in the
|
||||
// `Distribution`.
|
||||
DistributionCut distribution_cut = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// A `TimeSeriesRatio` specifies two `TimeSeries` to use for computing the
|
||||
// `good_service / total_service` ratio. The specified `TimeSeries` must have
|
||||
// `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind =
|
||||
// DELTA` or `MetricKind = CUMULATIVE`. The `TimeSeriesRatio` must specify
|
||||
// exactly two of good, bad, and total, and the relationship `good_service +
|
||||
// bad_service = total_service` will be assumed.
|
||||
message TimeSeriesRatio {
|
||||
// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
|
||||
// specifying a `TimeSeries` quantifying good service provided. Must have
|
||||
// `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind =
|
||||
// DELTA` or `MetricKind = CUMULATIVE`.
|
||||
string good_service_filter = 4;
|
||||
|
||||
// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
|
||||
// specifying a `TimeSeries` quantifying bad service, either demanded service
|
||||
// that was not provided or demanded service that was of inadequate quality.
|
||||
// Must have `ValueType = DOUBLE` or `ValueType = INT64` and must have
|
||||
// `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
|
||||
string bad_service_filter = 5;
|
||||
|
||||
// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
|
||||
// specifying a `TimeSeries` quantifying total demanded service. Must have
|
||||
// `ValueType = DOUBLE` or `ValueType = INT64` and must have `MetricKind =
|
||||
// DELTA` or `MetricKind = CUMULATIVE`.
|
||||
string total_service_filter = 6;
|
||||
}
|
||||
|
||||
// A `DistributionCut` defines a `TimeSeries` and thresholds used for measuring
|
||||
// good service and total service. The `TimeSeries` must have `ValueType =
|
||||
// DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`. The
|
||||
// computed `good_service` will be the estimated count of values in the
|
||||
// `Distribution` that fall within the specified `min` and `max`.
|
||||
message DistributionCut {
|
||||
// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
|
||||
// specifying a `TimeSeries` aggregating values. Must have `ValueType =
|
||||
// DISTRIBUTION` and `MetricKind = DELTA` or `MetricKind = CUMULATIVE`.
|
||||
string distribution_filter = 4;
|
||||
|
||||
// Range of values considered "good." For a one-sided range, set one bound to
|
||||
// an infinite value.
|
||||
Range range = 5;
|
||||
}
|
||||
|
||||
// A `WindowsBasedSli` defines `good_service` as the count of time windows for
|
||||
// which the provided service was of good quality. Criteria for determining
|
||||
// if service was good are embedded in the `window_criterion`.
|
||||
message WindowsBasedSli {
|
||||
// A `PerformanceThreshold` is used when each window is good when that window
|
||||
// has a sufficiently high `performance`.
|
||||
message PerformanceThreshold {
|
||||
// The means, either a request-based SLI or a basic SLI, by which to compute
|
||||
// performance over a window.
|
||||
oneof type {
|
||||
// `RequestBasedSli` to evaluate to judge window quality.
|
||||
RequestBasedSli performance = 1;
|
||||
|
||||
// `BasicSli` to evaluate to judge window quality.
|
||||
BasicSli basic_sli_performance = 3;
|
||||
}
|
||||
|
||||
// If window `performance >= threshold`, the window is counted as good.
|
||||
double threshold = 2;
|
||||
}
|
||||
|
||||
// A `MetricRange` is used when each window is good when the value x of a
|
||||
// single `TimeSeries` satisfies `range.min <= x <= range.max`. The provided
|
||||
// `TimeSeries` must have `ValueType = INT64` or `ValueType = DOUBLE` and
|
||||
// `MetricKind = GAUGE`.
|
||||
message MetricRange {
|
||||
// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
|
||||
// specifying the `TimeSeries` to use for evaluating window quality.
|
||||
string time_series = 1;
|
||||
|
||||
// Range of values considered "good." For a one-sided range, set one bound
|
||||
// to an infinite value.
|
||||
Range range = 4;
|
||||
}
|
||||
|
||||
// The criterion to use for evaluating window goodness.
|
||||
oneof window_criterion {
|
||||
// A [monitoring filter](https://cloud.google.com/monitoring/api/v3/filters)
|
||||
// specifying a `TimeSeries` with `ValueType = BOOL`. The window is good if
|
||||
// any `true` values appear in the window.
|
||||
string good_bad_metric_filter = 5;
|
||||
|
||||
// A window is good if its `performance` is high enough.
|
||||
PerformanceThreshold good_total_ratio_threshold = 2;
|
||||
|
||||
// A window is good if the metric's value is in a good range, averaged
|
||||
// across returned streams.
|
||||
MetricRange metric_mean_in_range = 6;
|
||||
|
||||
// A window is good if the metric's value is in a good range, summed across
|
||||
// returned streams.
|
||||
MetricRange metric_sum_in_range = 7;
|
||||
}
|
||||
|
||||
// Duration over which window quality is evaluated. Must be an integer
|
||||
// fraction of a day and at least `60s`.
|
||||
google.protobuf.Duration window_period = 4;
|
||||
}
|
||||
361
google/monitoring/v3/service_service.proto
Normal file
361
google/monitoring/v3/service_service.proto
Normal file
|
|
@ -0,0 +1,361 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/service.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "ServiceMonitoringServiceProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// The Cloud Monitoring Service-Oriented Monitoring API has endpoints for
|
||||
// managing and querying aspects of a Metrics Scope's services. These include
|
||||
// the `Service`'s monitored resources, its Service-Level Objectives, and a
|
||||
// taxonomy of categorized Health Metrics.
|
||||
service ServiceMonitoringService {
|
||||
option (google.api.default_host) = "monitoring.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/monitoring,"
|
||||
"https://www.googleapis.com/auth/monitoring.read";
|
||||
|
||||
// Create a `Service`.
|
||||
rpc CreateService(CreateServiceRequest) returns (Service) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{parent=*/*}/services"
|
||||
body: "service"
|
||||
};
|
||||
option (google.api.method_signature) = "parent,service";
|
||||
}
|
||||
|
||||
// Get the named `Service`.
|
||||
rpc GetService(GetServiceRequest) returns (Service) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=*/*/services/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// List `Service`s for this Metrics Scope.
|
||||
rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{parent=*/*}/services"
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Update this `Service`.
|
||||
rpc UpdateService(UpdateServiceRequest) returns (Service) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v3/{service.name=*/*/services/*}"
|
||||
body: "service"
|
||||
};
|
||||
option (google.api.method_signature) = "service";
|
||||
}
|
||||
|
||||
// Soft delete this `Service`.
|
||||
rpc DeleteService(DeleteServiceRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v3/{name=*/*/services/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Create a `ServiceLevelObjective` for the given `Service`.
|
||||
rpc CreateServiceLevelObjective(CreateServiceLevelObjectiveRequest)
|
||||
returns (ServiceLevelObjective) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{parent=*/*/services/*}/serviceLevelObjectives"
|
||||
body: "service_level_objective"
|
||||
};
|
||||
option (google.api.method_signature) = "parent,service_level_objective";
|
||||
}
|
||||
|
||||
// Get a `ServiceLevelObjective` by name.
|
||||
rpc GetServiceLevelObjective(GetServiceLevelObjectiveRequest)
|
||||
returns (ServiceLevelObjective) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=*/*/services/*/serviceLevelObjectives/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// List the `ServiceLevelObjective`s for the given `Service`.
|
||||
rpc ListServiceLevelObjectives(ListServiceLevelObjectivesRequest)
|
||||
returns (ListServiceLevelObjectivesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{parent=*/*/services/*}/serviceLevelObjectives"
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Update the given `ServiceLevelObjective`.
|
||||
rpc UpdateServiceLevelObjective(UpdateServiceLevelObjectiveRequest)
|
||||
returns (ServiceLevelObjective) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v3/{service_level_objective.name=*/*/services/*/serviceLevelObjectives/*}"
|
||||
body: "service_level_objective"
|
||||
};
|
||||
option (google.api.method_signature) = "service_level_objective";
|
||||
}
|
||||
|
||||
// Delete the given `ServiceLevelObjective`.
|
||||
rpc DeleteServiceLevelObjective(DeleteServiceLevelObjectiveRequest)
|
||||
returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v3/{name=*/*/services/*/serviceLevelObjectives/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
}
|
||||
|
||||
// The `CreateService` request.
|
||||
message CreateServiceRequest {
|
||||
// Required. Resource
|
||||
// [name](https://cloud.google.com/monitoring/api/v3#project_name) of the
|
||||
// parent Metrics Scope. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/Service"
|
||||
}
|
||||
];
|
||||
|
||||
// Optional. The Service id to use for this Service. If omitted, an id will be
|
||||
// generated instead. Must match the pattern `[a-z0-9\-]+`
|
||||
string service_id = 3;
|
||||
|
||||
// Required. The `Service` to create.
|
||||
Service service = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The `GetService` request.
|
||||
message GetServiceRequest {
|
||||
// Required. Resource name of the `Service`. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Service"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The `ListServices` request.
|
||||
message ListServicesRequest {
|
||||
// Required. Resource name of the parent containing the listed services,
|
||||
// either a [project](https://cloud.google.com/monitoring/api/v3#project_name)
|
||||
// or a Monitoring Metrics Scope. The formats are:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
// workspaces/[HOST_PROJECT_ID_OR_NUMBER]
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/Service"
|
||||
}
|
||||
];
|
||||
|
||||
// A filter specifying what `Service`s to return. The filter supports
|
||||
// filtering on a particular service-identifier type or one of its attributes.
|
||||
//
|
||||
// To filter on a particular service-identifier type, the `identifier_case`
|
||||
// refers to which option in the `identifier` field is populated. For example,
|
||||
// the filter `identifier_case = "CUSTOM"` would match all services with a
|
||||
// value for the `custom` field. Valid options include "CUSTOM", "APP_ENGINE",
|
||||
// "MESH_ISTIO", and the other options listed at
|
||||
// https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services#Service
|
||||
//
|
||||
// To filter on an attribute of a service-identifier type, apply the filter
|
||||
// name by using the snake case of the service-identifier type and the
|
||||
// attribute of that service-identifier type, and join the two with a period.
|
||||
// For example, to filter by the `meshUid` field of the `MeshIstio`
|
||||
// service-identifier type, you must filter on `mesh_istio.mesh_uid =
|
||||
// "123"` to match all services with mesh UID "123". Service-identifier types
|
||||
// and their attributes are described at
|
||||
// https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services#Service
|
||||
string filter = 2;
|
||||
|
||||
// A non-negative number that is the maximum number of results to return.
|
||||
// When 0, use default page size.
|
||||
int32 page_size = 3;
|
||||
|
||||
// If this field is not empty then it must contain the `nextPageToken` value
|
||||
// returned by a previous call to this method. Using this field causes the
|
||||
// method to return additional results from the previous method call.
|
||||
string page_token = 4;
|
||||
}
|
||||
|
||||
// The `ListServices` response.
|
||||
message ListServicesResponse {
|
||||
// The `Service`s matching the specified filter.
|
||||
repeated Service services = 1;
|
||||
|
||||
// If there are more results than have been returned, then this field is set
|
||||
// to a non-empty value. To see the additional results,
|
||||
// use that value as `page_token` in the next call to this method.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The `UpdateService` request.
|
||||
message UpdateServiceRequest {
|
||||
// Required. The `Service` to draw updates from.
|
||||
// The given `name` specifies the resource to update.
|
||||
Service service = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// A set of field paths defining which fields to use for the update.
|
||||
google.protobuf.FieldMask update_mask = 2;
|
||||
}
|
||||
|
||||
// The `DeleteService` request.
|
||||
message DeleteServiceRequest {
|
||||
// Required. Resource name of the `Service` to delete. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Service"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The `CreateServiceLevelObjective` request.
|
||||
message CreateServiceLevelObjectiveRequest {
|
||||
// Required. Resource name of the parent `Service`. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Service"
|
||||
}
|
||||
];
|
||||
|
||||
// Optional. The ServiceLevelObjective id to use for this
|
||||
// ServiceLevelObjective. If omitted, an id will be generated instead. Must
|
||||
// match the pattern `^[a-zA-Z0-9-_:.]+$`
|
||||
string service_level_objective_id = 3;
|
||||
|
||||
// Required. The `ServiceLevelObjective` to create.
|
||||
// The provided `name` will be respected if no `ServiceLevelObjective` exists
|
||||
// with this name.
|
||||
ServiceLevelObjective service_level_objective = 2
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The `GetServiceLevelObjective` request.
|
||||
message GetServiceLevelObjectiveRequest {
|
||||
// Required. Resource name of the `ServiceLevelObjective` to get. The format
|
||||
// is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/ServiceLevelObjective"
|
||||
}
|
||||
];
|
||||
|
||||
// View of the `ServiceLevelObjective` to return. If `DEFAULT`, return the
|
||||
// `ServiceLevelObjective` as originally defined. If `EXPLICIT` and the
|
||||
// `ServiceLevelObjective` is defined in terms of a `BasicSli`, replace the
|
||||
// `BasicSli` with a `RequestBasedSli` spelling out how the SLI is computed.
|
||||
ServiceLevelObjective.View view = 2;
|
||||
}
|
||||
|
||||
// The `ListServiceLevelObjectives` request.
|
||||
message ListServiceLevelObjectivesRequest {
|
||||
// Required. Resource name of the parent containing the listed SLOs, either a
|
||||
// project or a Monitoring Metrics Scope. The formats are:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]
|
||||
// workspaces/[HOST_PROJECT_ID_OR_NUMBER]/services/-
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Service"
|
||||
}
|
||||
];
|
||||
|
||||
// A filter specifying what `ServiceLevelObjective`s to return.
|
||||
string filter = 2;
|
||||
|
||||
// A non-negative number that is the maximum number of results to return.
|
||||
// When 0, use default page size.
|
||||
int32 page_size = 3;
|
||||
|
||||
// If this field is not empty then it must contain the `nextPageToken` value
|
||||
// returned by a previous call to this method. Using this field causes the
|
||||
// method to return additional results from the previous method call.
|
||||
string page_token = 4;
|
||||
|
||||
// View of the `ServiceLevelObjective`s to return. If `DEFAULT`, return each
|
||||
// `ServiceLevelObjective` as originally defined. If `EXPLICIT` and the
|
||||
// `ServiceLevelObjective` is defined in terms of a `BasicSli`, replace the
|
||||
// `BasicSli` with a `RequestBasedSli` spelling out how the SLI is computed.
|
||||
ServiceLevelObjective.View view = 5;
|
||||
}
|
||||
|
||||
// The `ListServiceLevelObjectives` response.
|
||||
message ListServiceLevelObjectivesResponse {
|
||||
// The `ServiceLevelObjective`s matching the specified filter.
|
||||
repeated ServiceLevelObjective service_level_objectives = 1;
|
||||
|
||||
// If there are more results than have been returned, then this field is set
|
||||
// to a non-empty value. To see the additional results,
|
||||
// use that value as `page_token` in the next call to this method.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The `UpdateServiceLevelObjective` request.
|
||||
message UpdateServiceLevelObjectiveRequest {
|
||||
// Required. The `ServiceLevelObjective` to draw updates from.
|
||||
// The given `name` specifies the resource to update.
|
||||
ServiceLevelObjective service_level_objective = 1
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// A set of field paths defining which fields to use for the update.
|
||||
google.protobuf.FieldMask update_mask = 2;
|
||||
}
|
||||
|
||||
// The `DeleteServiceLevelObjective` request.
|
||||
message DeleteServiceLevelObjectiveRequest {
|
||||
// Required. Resource name of the `ServiceLevelObjective` to delete. The
|
||||
// format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME]
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/ServiceLevelObjective"
|
||||
}
|
||||
];
|
||||
}
|
||||
78
google/monitoring/v3/snooze.proto
Normal file
78
google/monitoring/v3/snooze.proto
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/common.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "SnoozeProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// A `Snooze` will prevent any alerts from being opened, and close any that
|
||||
// are already open. The `Snooze` will work on alerts that match the
|
||||
// criteria defined in the `Snooze`. The `Snooze` will be active from
|
||||
// `interval.start_time` through `interval.end_time`.
|
||||
message Snooze {
|
||||
option (google.api.resource) = {
|
||||
type: "monitoring.googleapis.com/Snooze"
|
||||
pattern: "projects/{project}/snoozes/{snooze}"
|
||||
};
|
||||
|
||||
// Criteria specific to the `AlertPolicy`s that this `Snooze` applies to. The
|
||||
// `Snooze` will suppress alerts that come from one of the `AlertPolicy`s
|
||||
// whose names are supplied.
|
||||
message Criteria {
|
||||
// The specific `AlertPolicy` names for the alert that should be snoozed.
|
||||
// The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]
|
||||
//
|
||||
// There is a limit of 16 policies per snooze. This limit is checked during
|
||||
// snooze creation.
|
||||
repeated string policies = 1 [(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/AlertPolicy"
|
||||
}];
|
||||
}
|
||||
|
||||
// Required. Identifier. The name of the `Snooze`. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/snoozes/[SNOOZE_ID]
|
||||
//
|
||||
// The ID of the `Snooze` will be generated by the system.
|
||||
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
|
||||
|
||||
// Required. This defines the criteria for applying the `Snooze`. See
|
||||
// `Criteria` for more information.
|
||||
Criteria criteria = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The `Snooze` will be active from `interval.start_time` through
|
||||
// `interval.end_time`.
|
||||
// `interval.start_time` cannot be in the past. There is a 15 second clock
|
||||
// skew to account for the time it takes for a request to reach the API from
|
||||
// the UI.
|
||||
TimeInterval interval = 4 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. A display name for the `Snooze`. This can be, at most, 512
|
||||
// unicode characters.
|
||||
string display_name = 5 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
210
google/monitoring/v3/snooze_service.proto
Normal file
210
google/monitoring/v3/snooze_service.proto
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/snooze.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "SnoozeServiceProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// The SnoozeService API is used to temporarily prevent an alert policy from
|
||||
// generating alerts. A Snooze is a description of the criteria under which one
|
||||
// or more alert policies should not fire alerts for the specified duration.
|
||||
service SnoozeService {
|
||||
option (google.api.default_host) = "monitoring.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/monitoring,"
|
||||
"https://www.googleapis.com/auth/monitoring.read";
|
||||
|
||||
// Creates a `Snooze` that will prevent alerts, which match the provided
|
||||
// criteria, from being opened. The `Snooze` applies for a specific time
|
||||
// interval.
|
||||
rpc CreateSnooze(CreateSnoozeRequest) returns (Snooze) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{parent=projects/*}/snoozes"
|
||||
body: "snooze"
|
||||
};
|
||||
option (google.api.method_signature) = "parent,snooze";
|
||||
}
|
||||
|
||||
// Lists the `Snooze`s associated with a project. Can optionally pass in
|
||||
// `filter`, which specifies predicates to match `Snooze`s.
|
||||
rpc ListSnoozes(ListSnoozesRequest) returns (ListSnoozesResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{parent=projects/*}/snoozes"
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Retrieves a `Snooze` by `name`.
|
||||
rpc GetSnooze(GetSnoozeRequest) returns (Snooze) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*/snoozes/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Updates a `Snooze`, identified by its `name`, with the parameters in the
|
||||
// given `Snooze` object.
|
||||
rpc UpdateSnooze(UpdateSnoozeRequest) returns (Snooze) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v3/{snooze.name=projects/*/snoozes/*}"
|
||||
body: "snooze"
|
||||
};
|
||||
option (google.api.method_signature) = "snooze,update_mask";
|
||||
}
|
||||
}
|
||||
|
||||
// The message definition for creating a `Snooze`. Users must provide the body
|
||||
// of the `Snooze` to be created but must omit the `Snooze` field, `name`.
|
||||
message CreateSnoozeRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) in which
|
||||
// a `Snooze` should be created. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/Snooze"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The `Snooze` to create. Omit the `name` field, as it will be
|
||||
// filled in by the API.
|
||||
Snooze snooze = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The message definition for listing `Snooze`s associated with the given
|
||||
// `parent`, satisfying the optional `filter`.
|
||||
message ListSnoozesRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) whose
|
||||
// `Snooze`s should be listed. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/Snooze"
|
||||
}
|
||||
];
|
||||
|
||||
// Optional. Optional filter to restrict results to the given criteria. The
|
||||
// following fields are supported.
|
||||
//
|
||||
// * `interval.start_time`
|
||||
// * `interval.end_time`
|
||||
//
|
||||
// For example:
|
||||
//
|
||||
// ```
|
||||
// interval.start_time > "2022-03-11T00:00:00-08:00" AND
|
||||
// interval.end_time < "2022-03-12T00:00:00-08:00"
|
||||
// ```
|
||||
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The maximum number of results to return for a single query. The
|
||||
// server may further constrain the maximum number of results returned in a
|
||||
// single page. The value should be in the range [1, 1000]. If the value given
|
||||
// is outside this range, the server will decide the number of results to be
|
||||
// returned.
|
||||
int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The `next_page_token` from a previous call to
|
||||
// `ListSnoozesRequest` to get the next page of results.
|
||||
string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// The results of a successful `ListSnoozes` call, containing the matching
|
||||
// `Snooze`s.
|
||||
message ListSnoozesResponse {
|
||||
// `Snooze`s matching this list call.
|
||||
repeated Snooze snoozes = 1;
|
||||
|
||||
// Page token for repeated calls to `ListSnoozes`, to fetch additional pages
|
||||
// of results. If this is empty or missing, there are no more pages.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
|
||||
// The message definition for retrieving a `Snooze`. Users must specify the
|
||||
// field, `name`, which identifies the `Snooze`.
|
||||
message GetSnoozeRequest {
|
||||
// Required. The ID of the `Snooze` to retrieve. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/snoozes/[SNOOZE_ID]
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/Snooze"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The message definition for updating a `Snooze`. The field, `snooze.name`
|
||||
// identifies the `Snooze` to be updated. The remainder of `snooze` gives the
|
||||
// content the `Snooze` in question will be assigned.
|
||||
//
|
||||
// What fields can be updated depends on the start time and end time of the
|
||||
// `Snooze`.
|
||||
//
|
||||
// * end time is in the past: These `Snooze`s are considered
|
||||
// read-only and cannot be updated.
|
||||
// * start time is in the past and end time is in the future: `display_name`
|
||||
// and `interval.end_time` can be updated.
|
||||
// * start time is in the future: `display_name`, `interval.start_time` and
|
||||
// `interval.end_time` can be updated.
|
||||
message UpdateSnoozeRequest {
|
||||
// Required. The `Snooze` to update. Must have the name field present.
|
||||
Snooze snooze = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The fields to update.
|
||||
//
|
||||
// For each field listed in `update_mask`:
|
||||
//
|
||||
// * If the `Snooze` object supplied in the `UpdateSnoozeRequest` has a
|
||||
// value for that field, the value of the field in the existing `Snooze`
|
||||
// will be set to the value of the field in the supplied `Snooze`.
|
||||
// * If the field does not have a value in the supplied `Snooze`, the field
|
||||
// in the existing `Snooze` is set to its default value.
|
||||
//
|
||||
// Fields not listed retain their existing value.
|
||||
//
|
||||
// The following are the field names that are accepted in `update_mask`:
|
||||
//
|
||||
// * `display_name`
|
||||
// * `interval.start_time`
|
||||
// * `interval.end_time`
|
||||
//
|
||||
// That said, the start time and end time of the `Snooze` determines which
|
||||
// fields can legally be updated. Before attempting an update, users should
|
||||
// consult the documentation for `UpdateSnoozeRequest`, which talks about
|
||||
// which fields can be updated.
|
||||
google.protobuf.FieldMask update_mask = 2
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
45
google/monitoring/v3/span_context.proto
Normal file
45
google/monitoring/v3/span_context.proto
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "SpanContextProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// The context of a span. This is attached to an
|
||||
// [Exemplar][google.api.Distribution.Exemplar]
|
||||
// in [Distribution][google.api.Distribution] values during aggregation.
|
||||
//
|
||||
// It contains the name of a span with format:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID]
|
||||
message SpanContext {
|
||||
// The resource name of the span. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID]
|
||||
//
|
||||
// `[TRACE_ID]` is a unique identifier for a trace within a project;
|
||||
// it is a 32-character hexadecimal encoding of a 16-byte array.
|
||||
//
|
||||
// `[SPAN_ID]` is a unique identifier for a span within a trace; it
|
||||
// is a 16-character hexadecimal encoding of an 8-byte array.
|
||||
string span_name = 1;
|
||||
}
|
||||
633
google/monitoring/v3/uptime.proto
Normal file
633
google/monitoring/v3/uptime.proto
Normal file
|
|
@ -0,0 +1,633 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/field_info.proto";
|
||||
import "google/api/monitored_resource.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/protobuf/duration.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "UptimeProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
option (google.api.resource_definition) = {
|
||||
type: "cloudfunctions.googleapis.com/Function"
|
||||
pattern: "projects/{project}/locations/{location}/functions/{function}"
|
||||
};
|
||||
|
||||
// An internal checker allows Uptime checks to run on private/internal GCP
|
||||
// resources.
|
||||
message InternalChecker {
|
||||
option deprecated = true;
|
||||
|
||||
// Operational states for an internal checker.
|
||||
enum State {
|
||||
// An internal checker should never be in the unspecified state.
|
||||
UNSPECIFIED = 0;
|
||||
|
||||
// The checker is being created, provisioned, and configured. A checker in
|
||||
// this state can be returned by `ListInternalCheckers` or
|
||||
// `GetInternalChecker`, as well as by examining the [long running
|
||||
// Operation](https://cloud.google.com/apis/design/design_patterns#long_running_operations)
|
||||
// that created it.
|
||||
CREATING = 1;
|
||||
|
||||
// The checker is running and available for use. A checker in this state
|
||||
// can be returned by `ListInternalCheckers` or `GetInternalChecker` as
|
||||
// well as by examining the [long running
|
||||
// Operation](https://cloud.google.com/apis/design/design_patterns#long_running_operations)
|
||||
// that created it.
|
||||
// If a checker is being torn down, it is neither visible nor usable, so
|
||||
// there is no "deleting" or "down" state.
|
||||
RUNNING = 2;
|
||||
}
|
||||
|
||||
// A unique resource name for this InternalChecker. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/internalCheckers/[INTERNAL_CHECKER_ID]
|
||||
//
|
||||
// `[PROJECT_ID_OR_NUMBER]` is the Cloud Monitoring Metrics Scope project for
|
||||
// the Uptime check config associated with the internal checker.
|
||||
string name = 1;
|
||||
|
||||
// The checker's human-readable name. The display name
|
||||
// should be unique within a Cloud Monitoring Metrics Scope in order to make
|
||||
// it easier to identify; however, uniqueness is not enforced.
|
||||
string display_name = 2;
|
||||
|
||||
// The [GCP VPC network](https://cloud.google.com/vpc/docs/vpc) where the
|
||||
// internal resource lives (ex: "default").
|
||||
string network = 3;
|
||||
|
||||
// The GCP zone the Uptime check should egress from. Only respected for
|
||||
// internal Uptime checks, where internal_network is specified.
|
||||
string gcp_zone = 4;
|
||||
|
||||
// The GCP project ID where the internal checker lives. Not necessary
|
||||
// the same as the Metrics Scope project.
|
||||
string peer_project_id = 6;
|
||||
|
||||
// The current operational state of the internal checker.
|
||||
State state = 7;
|
||||
}
|
||||
|
||||
// Describes a Synthetic Monitor to be invoked by Uptime.
|
||||
message SyntheticMonitorTarget {
|
||||
// A Synthetic Monitor deployed to a Cloud Functions V2 instance.
|
||||
message CloudFunctionV2Target {
|
||||
// Required. Fully qualified GCFv2 resource name
|
||||
// i.e. `projects/{project}/locations/{location}/functions/{function}`
|
||||
// Required.
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "cloudfunctions.googleapis.com/Function"
|
||||
}
|
||||
];
|
||||
|
||||
// Output only. The `cloud_run_revision` Monitored Resource associated with
|
||||
// the GCFv2. The Synthetic Monitor execution results (metrics, logs, and
|
||||
// spans) are reported against this Monitored Resource. This field is output
|
||||
// only.
|
||||
google.api.MonitoredResource cloud_run_revision = 2
|
||||
[(google.api.field_behavior) = OUTPUT_ONLY];
|
||||
}
|
||||
|
||||
// Specifies a Synthetic Monitor's execution stack.
|
||||
oneof target {
|
||||
// Target a Synthetic Monitor GCFv2 instance.
|
||||
CloudFunctionV2Target cloud_function_v2 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
// This message configures which resources and services to monitor for
|
||||
// availability.
|
||||
message UptimeCheckConfig {
|
||||
option (google.api.resource) = {
|
||||
type: "monitoring.googleapis.com/UptimeCheckConfig"
|
||||
pattern: "projects/{project}/uptimeCheckConfigs/{uptime_check_config}"
|
||||
pattern: "organizations/{organization}/uptimeCheckConfigs/{uptime_check_config}"
|
||||
pattern: "folders/{folder}/uptimeCheckConfigs/{uptime_check_config}"
|
||||
pattern: "*"
|
||||
};
|
||||
|
||||
// The resource submessage for group checks. It can be used instead of a
|
||||
// monitored resource, when multiple resources are being monitored.
|
||||
message ResourceGroup {
|
||||
// The group of resources being monitored. Should be only the `[GROUP_ID]`,
|
||||
// and not the full-path
|
||||
// `projects/[PROJECT_ID_OR_NUMBER]/groups/[GROUP_ID]`.
|
||||
string group_id = 1;
|
||||
|
||||
// The resource type of the group members.
|
||||
GroupResourceType resource_type = 2;
|
||||
}
|
||||
|
||||
// Information involved in sending ICMP pings alongside public HTTP/TCP
|
||||
// checks. For HTTP, the pings are performed for each part of the redirect
|
||||
// chain.
|
||||
message PingConfig {
|
||||
// Number of ICMP pings. A maximum of 3 ICMP pings is currently supported.
|
||||
int32 pings_count = 1;
|
||||
}
|
||||
|
||||
// Information involved in an HTTP/HTTPS Uptime check request.
|
||||
message HttpCheck {
|
||||
// The HTTP request method options.
|
||||
enum RequestMethod {
|
||||
// No request method specified.
|
||||
METHOD_UNSPECIFIED = 0;
|
||||
|
||||
// GET request.
|
||||
GET = 1;
|
||||
|
||||
// POST request.
|
||||
POST = 2;
|
||||
}
|
||||
|
||||
// The authentication parameters to provide to the specified resource or
|
||||
// URL that requires a username and password. Currently, only
|
||||
// [Basic HTTP authentication](https://tools.ietf.org/html/rfc7617) is
|
||||
// supported in Uptime checks.
|
||||
message BasicAuthentication {
|
||||
// The username to use when authenticating with the HTTP server.
|
||||
string username = 1;
|
||||
|
||||
// The password to use when authenticating with the HTTP server.
|
||||
string password = 2;
|
||||
}
|
||||
|
||||
// Header options corresponding to the content type of a HTTP request body.
|
||||
enum ContentType {
|
||||
// No content type specified.
|
||||
TYPE_UNSPECIFIED = 0;
|
||||
|
||||
// `body` is in URL-encoded form. Equivalent to setting the `Content-Type`
|
||||
// to `application/x-www-form-urlencoded` in the HTTP request.
|
||||
URL_ENCODED = 1;
|
||||
|
||||
// `body` is in `custom_content_type` form. Equivalent to setting the
|
||||
// `Content-Type` to the contents of `custom_content_type` in the HTTP
|
||||
// request.
|
||||
USER_PROVIDED = 2;
|
||||
}
|
||||
|
||||
// A status to accept. Either a status code class like "2xx", or an integer
|
||||
// status code like "200".
|
||||
message ResponseStatusCode {
|
||||
// An HTTP status code class.
|
||||
enum StatusClass {
|
||||
// Default value that matches no status codes.
|
||||
STATUS_CLASS_UNSPECIFIED = 0;
|
||||
|
||||
// The class of status codes between 100 and 199.
|
||||
STATUS_CLASS_1XX = 100;
|
||||
|
||||
// The class of status codes between 200 and 299.
|
||||
STATUS_CLASS_2XX = 200;
|
||||
|
||||
// The class of status codes between 300 and 399.
|
||||
STATUS_CLASS_3XX = 300;
|
||||
|
||||
// The class of status codes between 400 and 499.
|
||||
STATUS_CLASS_4XX = 400;
|
||||
|
||||
// The class of status codes between 500 and 599.
|
||||
STATUS_CLASS_5XX = 500;
|
||||
|
||||
// The class of all status codes.
|
||||
STATUS_CLASS_ANY = 1000;
|
||||
}
|
||||
|
||||
// Either a specific value or a class of status codes.
|
||||
oneof status_code {
|
||||
// A status code to accept.
|
||||
int32 status_value = 1;
|
||||
|
||||
// A class of status codes to accept.
|
||||
StatusClass status_class = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Contains information needed for generating either an
|
||||
// [OpenID Connect
|
||||
// token](https://developers.google.com/identity/protocols/OpenIDConnect) or
|
||||
// [OAuth token](https://developers.google.com/identity/protocols/oauth2).
|
||||
// The token will be generated for the Monitoring service agent service
|
||||
// account.
|
||||
message ServiceAgentAuthentication {
|
||||
// Type of authentication.
|
||||
enum ServiceAgentAuthenticationType {
|
||||
// Default value, will result in OIDC Authentication.
|
||||
SERVICE_AGENT_AUTHENTICATION_TYPE_UNSPECIFIED = 0;
|
||||
|
||||
// OIDC Authentication
|
||||
OIDC_TOKEN = 1;
|
||||
}
|
||||
|
||||
// Type of authentication.
|
||||
ServiceAgentAuthenticationType type = 1;
|
||||
}
|
||||
|
||||
// The HTTP request method to use for the check. If set to
|
||||
// `METHOD_UNSPECIFIED` then `request_method` defaults to `GET`.
|
||||
RequestMethod request_method = 8;
|
||||
|
||||
// If `true`, use HTTPS instead of HTTP to run the check.
|
||||
bool use_ssl = 1;
|
||||
|
||||
// Optional (defaults to "/"). The path to the page against which to run
|
||||
// the check. Will be combined with the `host` (specified within the
|
||||
// `monitored_resource`) and `port` to construct the full URL. If the
|
||||
// provided path does not begin with "/", a "/" will be prepended
|
||||
// automatically.
|
||||
string path = 2;
|
||||
|
||||
// Optional (defaults to 80 when `use_ssl` is `false`, and 443 when
|
||||
// `use_ssl` is `true`). The TCP port on the HTTP server against which to
|
||||
// run the check. Will be combined with host (specified within the
|
||||
// `monitored_resource`) and `path` to construct the full URL.
|
||||
int32 port = 3;
|
||||
|
||||
// The authentication information. Optional when creating an HTTP check;
|
||||
// defaults to empty.
|
||||
// Do not set both `auth_method` and `auth_info`.
|
||||
BasicAuthentication auth_info = 4;
|
||||
|
||||
// Boolean specifying whether to encrypt the header information.
|
||||
// Encryption should be specified for any headers related to authentication
|
||||
// that you do not wish to be seen when retrieving the configuration. The
|
||||
// server will be responsible for encrypting the headers.
|
||||
// On Get/List calls, if `mask_headers` is set to `true` then the headers
|
||||
// will be obscured with `******.`
|
||||
bool mask_headers = 5;
|
||||
|
||||
// The list of headers to send as part of the Uptime check request.
|
||||
// If two headers have the same key and different values, they should
|
||||
// be entered as a single header, with the value being a comma-separated
|
||||
// list of all the desired values as described at
|
||||
// https://www.w3.org/Protocols/rfc2616/rfc2616.txt (page 31).
|
||||
// Entering two separate headers with the same key in a Create call will
|
||||
// cause the first to be overwritten by the second.
|
||||
// The maximum number of headers allowed is 100.
|
||||
map<string, string> headers = 6;
|
||||
|
||||
// The content type header to use for the check. The following
|
||||
// configurations result in errors:
|
||||
// 1. Content type is specified in both the `headers` field and the
|
||||
// `content_type` field.
|
||||
// 2. Request method is `GET` and `content_type` is not `TYPE_UNSPECIFIED`
|
||||
// 3. Request method is `POST` and `content_type` is `TYPE_UNSPECIFIED`.
|
||||
// 4. Request method is `POST` and a "Content-Type" header is provided via
|
||||
// `headers` field. The `content_type` field should be used instead.
|
||||
ContentType content_type = 9;
|
||||
|
||||
// A user provided content type header to use for the check. The invalid
|
||||
// configurations outlined in the `content_type` field apply to
|
||||
// `custom_content_type`, as well as the following:
|
||||
// 1. `content_type` is `URL_ENCODED` and `custom_content_type` is set.
|
||||
// 2. `content_type` is `USER_PROVIDED` and `custom_content_type` is not
|
||||
// set.
|
||||
string custom_content_type = 13;
|
||||
|
||||
// Boolean specifying whether to include SSL certificate validation as a
|
||||
// part of the Uptime check. Only applies to checks where
|
||||
// `monitored_resource` is set to `uptime_url`. If `use_ssl` is `false`,
|
||||
// setting `validate_ssl` to `true` has no effect.
|
||||
bool validate_ssl = 7;
|
||||
|
||||
// The request body associated with the HTTP POST request. If `content_type`
|
||||
// is `URL_ENCODED`, the body passed in must be URL-encoded. Users can
|
||||
// provide a `Content-Length` header via the `headers` field or the API will
|
||||
// do so. If the `request_method` is `GET` and `body` is not empty, the API
|
||||
// will return an error. The maximum byte size is 1 megabyte.
|
||||
//
|
||||
// Note: If client libraries aren't used (which performs the conversion
|
||||
// automatically) base64 encode your `body` data since the field is of
|
||||
// `bytes` type.
|
||||
bytes body = 10;
|
||||
|
||||
// If present, the check will only pass if the HTTP response status code is
|
||||
// in this set of status codes. If empty, the HTTP status code will only
|
||||
// pass if the HTTP status code is 200-299.
|
||||
repeated ResponseStatusCode accepted_response_status_codes = 11;
|
||||
|
||||
// Contains information needed to add pings to an HTTP check.
|
||||
PingConfig ping_config = 12;
|
||||
|
||||
// This field is optional and should be set only by users interested in
|
||||
// an authenticated uptime check.
|
||||
// Do not set both `auth_method` and `auth_info`.
|
||||
oneof auth_method {
|
||||
// If specified, Uptime will generate and attach an OIDC JWT token for the
|
||||
// Monitoring service agent service account as an `Authorization` header
|
||||
// in the HTTP request when probing.
|
||||
ServiceAgentAuthentication service_agent_authentication = 14;
|
||||
}
|
||||
}
|
||||
|
||||
// Information required for a TCP Uptime check request.
|
||||
message TcpCheck {
|
||||
// The TCP port on the server against which to run the check. Will be
|
||||
// combined with host (specified within the `monitored_resource`) to
|
||||
// construct the full URL. Required.
|
||||
int32 port = 1;
|
||||
|
||||
// Contains information needed to add pings to a TCP check.
|
||||
PingConfig ping_config = 2;
|
||||
}
|
||||
|
||||
// Optional. Used to perform content matching. This allows matching based on
|
||||
// substrings and regular expressions, together with their negations. Only the
|
||||
// first 4 MB of an HTTP or HTTPS check's response (and the first
|
||||
// 1 MB of a TCP check's response) are examined for purposes of content
|
||||
// matching.
|
||||
message ContentMatcher {
|
||||
// Options to perform content matching.
|
||||
enum ContentMatcherOption {
|
||||
// No content matcher type specified (maintained for backward
|
||||
// compatibility, but deprecated for future use).
|
||||
// Treated as `CONTAINS_STRING`.
|
||||
CONTENT_MATCHER_OPTION_UNSPECIFIED = 0;
|
||||
|
||||
// Selects substring matching. The match succeeds if the output contains
|
||||
// the `content` string. This is the default value for checks without
|
||||
// a `matcher` option, or where the value of `matcher` is
|
||||
// `CONTENT_MATCHER_OPTION_UNSPECIFIED`.
|
||||
CONTAINS_STRING = 1;
|
||||
|
||||
// Selects negation of substring matching. The match succeeds if the
|
||||
// output does _NOT_ contain the `content` string.
|
||||
NOT_CONTAINS_STRING = 2;
|
||||
|
||||
// Selects regular-expression matching. The match succeeds if the output
|
||||
// matches the regular expression specified in the `content` string.
|
||||
// Regex matching is only supported for HTTP/HTTPS checks.
|
||||
MATCHES_REGEX = 3;
|
||||
|
||||
// Selects negation of regular-expression matching. The match succeeds if
|
||||
// the output does _NOT_ match the regular expression specified in the
|
||||
// `content` string. Regex matching is only supported for HTTP/HTTPS
|
||||
// checks.
|
||||
NOT_MATCHES_REGEX = 4;
|
||||
|
||||
// Selects JSONPath matching. See `JsonPathMatcher` for details on when
|
||||
// the match succeeds. JSONPath matching is only supported for HTTP/HTTPS
|
||||
// checks.
|
||||
MATCHES_JSON_PATH = 5;
|
||||
|
||||
// Selects JSONPath matching. See `JsonPathMatcher` for details on when
|
||||
// the match succeeds. Succeeds when output does _NOT_ match as specified.
|
||||
// JSONPath is only supported for HTTP/HTTPS checks.
|
||||
NOT_MATCHES_JSON_PATH = 6;
|
||||
}
|
||||
|
||||
// Information needed to perform a JSONPath content match.
|
||||
// Used for `ContentMatcherOption::MATCHES_JSON_PATH` and
|
||||
// `ContentMatcherOption::NOT_MATCHES_JSON_PATH`.
|
||||
message JsonPathMatcher {
|
||||
// Options to perform JSONPath content matching.
|
||||
enum JsonPathMatcherOption {
|
||||
// No JSONPath matcher type specified (not valid).
|
||||
JSON_PATH_MATCHER_OPTION_UNSPECIFIED = 0;
|
||||
|
||||
// Selects 'exact string' matching. The match succeeds if the content at
|
||||
// the `json_path` within the output is exactly the same as the
|
||||
// `content` string.
|
||||
EXACT_MATCH = 1;
|
||||
|
||||
// Selects regular-expression matching. The match succeeds if the
|
||||
// content at the `json_path` within the output matches the regular
|
||||
// expression specified in the `content` string.
|
||||
REGEX_MATCH = 2;
|
||||
}
|
||||
|
||||
// JSONPath within the response output pointing to the expected
|
||||
// `ContentMatcher::content` to match against.
|
||||
string json_path = 1;
|
||||
|
||||
// The type of JSONPath match that will be applied to the JSON output
|
||||
// (`ContentMatcher.content`)
|
||||
JsonPathMatcherOption json_matcher = 2;
|
||||
}
|
||||
|
||||
// String, regex or JSON content to match. Maximum 1024 bytes. An empty
|
||||
// `content` string indicates no content matching is to be performed.
|
||||
string content = 1;
|
||||
|
||||
// The type of content matcher that will be applied to the server output,
|
||||
// compared to the `content` string when the check is run.
|
||||
ContentMatcherOption matcher = 2;
|
||||
|
||||
// Certain `ContentMatcherOption` types require additional information.
|
||||
// `MATCHES_JSON_PATH` or `NOT_MATCHES_JSON_PATH` require a
|
||||
// `JsonPathMatcher`; not used for other options.
|
||||
oneof additional_matcher_info {
|
||||
// Matcher information for `MATCHES_JSON_PATH` and `NOT_MATCHES_JSON_PATH`
|
||||
JsonPathMatcher json_path_matcher = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// What kind of checkers are available to be used by the check.
|
||||
enum CheckerType {
|
||||
// The default checker type. Currently converted to `STATIC_IP_CHECKERS`
|
||||
// on creation, the default conversion behavior may change in the future.
|
||||
CHECKER_TYPE_UNSPECIFIED = 0;
|
||||
|
||||
// `STATIC_IP_CHECKERS` are used for uptime checks that perform egress
|
||||
// across the public internet. `STATIC_IP_CHECKERS` use the static IP
|
||||
// addresses returned by `ListUptimeCheckIps`.
|
||||
STATIC_IP_CHECKERS = 1;
|
||||
|
||||
// `VPC_CHECKERS` are used for uptime checks that perform egress using
|
||||
// Service Directory and private network access. When using `VPC_CHECKERS`,
|
||||
// the monitored resource type must be `servicedirectory_service`.
|
||||
VPC_CHECKERS = 3;
|
||||
}
|
||||
|
||||
// Identifier. A unique resource name for this Uptime check configuration. The
|
||||
// format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
|
||||
//
|
||||
// `[PROJECT_ID_OR_NUMBER]` is the Workspace host project associated with the
|
||||
// Uptime check.
|
||||
//
|
||||
// This field should be omitted when creating the Uptime check configuration;
|
||||
// on create, the resource name is assigned by the server and included in the
|
||||
// response.
|
||||
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
|
||||
|
||||
// A human-friendly name for the Uptime check configuration. The display name
|
||||
// should be unique within a Cloud Monitoring Workspace in order to make it
|
||||
// easier to identify; however, uniqueness is not enforced. Required.
|
||||
string display_name = 2;
|
||||
|
||||
// The resource the check is checking. Required.
|
||||
oneof resource {
|
||||
// The [monitored
|
||||
// resource](https://cloud.google.com/monitoring/api/resources) associated
|
||||
// with the configuration.
|
||||
// The following monitored resource types are valid for this field:
|
||||
// `uptime_url`,
|
||||
// `gce_instance`,
|
||||
// `gae_app`,
|
||||
// `aws_ec2_instance`,
|
||||
// `aws_elb_load_balancer`
|
||||
// `k8s_service`
|
||||
// `servicedirectory_service`
|
||||
// `cloud_run_revision`
|
||||
google.api.MonitoredResource monitored_resource = 3;
|
||||
|
||||
// The group resource associated with the configuration.
|
||||
ResourceGroup resource_group = 4;
|
||||
|
||||
// Specifies a Synthetic Monitor to invoke.
|
||||
SyntheticMonitorTarget synthetic_monitor = 21;
|
||||
}
|
||||
|
||||
// The type of Uptime check request.
|
||||
oneof check_request_type {
|
||||
// Contains information needed to make an HTTP or HTTPS check.
|
||||
HttpCheck http_check = 5;
|
||||
|
||||
// Contains information needed to make a TCP check.
|
||||
TcpCheck tcp_check = 6;
|
||||
}
|
||||
|
||||
// How often, in seconds, the Uptime check is performed.
|
||||
// Currently, the only supported values are `60s` (1 minute), `300s`
|
||||
// (5 minutes), `600s` (10 minutes), and `900s` (15 minutes). Optional,
|
||||
// defaults to `60s`.
|
||||
google.protobuf.Duration period = 7;
|
||||
|
||||
// The maximum amount of time to wait for the request to complete (must be
|
||||
// between 1 and 60 seconds). Required.
|
||||
google.protobuf.Duration timeout = 8;
|
||||
|
||||
// The content that is expected to appear in the data returned by the target
|
||||
// server against which the check is run. Currently, only the first entry
|
||||
// in the `content_matchers` list is supported, and additional entries will
|
||||
// be ignored. This field is optional and should only be specified if a
|
||||
// content match is required as part of the/ Uptime check.
|
||||
repeated ContentMatcher content_matchers = 9;
|
||||
|
||||
// The type of checkers to use to execute the Uptime check.
|
||||
CheckerType checker_type = 17;
|
||||
|
||||
// The list of regions from which the check will be run.
|
||||
// Some regions contain one location, and others contain more than one.
|
||||
// If this field is specified, enough regions must be provided to include a
|
||||
// minimum of 3 locations. Not specifying this field will result in Uptime
|
||||
// checks running from all available regions.
|
||||
repeated UptimeCheckRegion selected_regions = 10;
|
||||
|
||||
// If this is `true`, then checks are made only from the 'internal_checkers'.
|
||||
// If it is `false`, then checks are made only from the 'selected_regions'.
|
||||
// It is an error to provide 'selected_regions' when is_internal is `true`,
|
||||
// or to provide 'internal_checkers' when is_internal is `false`.
|
||||
bool is_internal = 15 [deprecated = true];
|
||||
|
||||
// The internal checkers that this check will egress from. If `is_internal` is
|
||||
// `true` and this list is empty, the check will egress from all the
|
||||
// InternalCheckers configured for the project that owns this
|
||||
// `UptimeCheckConfig`.
|
||||
repeated InternalChecker internal_checkers = 14 [deprecated = true];
|
||||
|
||||
// User-supplied key/value data to be used for organizing and
|
||||
// identifying the `UptimeCheckConfig` objects.
|
||||
//
|
||||
// The field can contain up to 64 entries. Each key and value is limited to
|
||||
// 63 Unicode characters or 128 bytes, whichever is smaller. Labels and
|
||||
// values can contain only lowercase letters, numerals, underscores, and
|
||||
// dashes. Keys must begin with a letter.
|
||||
map<string, string> user_labels = 20;
|
||||
}
|
||||
|
||||
// Contains the region, location, and list of IP
|
||||
// addresses where checkers in the location run from.
|
||||
message UptimeCheckIp {
|
||||
// A broad region category in which the IP address is located.
|
||||
UptimeCheckRegion region = 1;
|
||||
|
||||
// A more specific location within the region that typically encodes
|
||||
// a particular city/town/metro (and its containing state/province or country)
|
||||
// within the broader umbrella region category.
|
||||
string location = 2;
|
||||
|
||||
// The IP address from which the Uptime check originates. This is a fully
|
||||
// specified IP address (not an IP address range). Most IP addresses, as of
|
||||
// this publication, are in IPv4 format; however, one should not rely on the
|
||||
// IP addresses being in IPv4 format indefinitely, and should support
|
||||
// interpreting this field in either IPv4 or IPv6 format.
|
||||
string ip_address = 3;
|
||||
}
|
||||
|
||||
// The regions from which an Uptime check can be run.
|
||||
enum UptimeCheckRegion {
|
||||
// Default value if no region is specified. Will result in Uptime checks
|
||||
// running from all regions.
|
||||
REGION_UNSPECIFIED = 0;
|
||||
|
||||
// Allows checks to run from locations within the United States of America.
|
||||
USA = 1;
|
||||
|
||||
// Allows checks to run from locations within the continent of Europe.
|
||||
EUROPE = 2;
|
||||
|
||||
// Allows checks to run from locations within the continent of South
|
||||
// America.
|
||||
SOUTH_AMERICA = 3;
|
||||
|
||||
// Allows checks to run from locations within the Asia Pacific area (ex:
|
||||
// Singapore).
|
||||
ASIA_PACIFIC = 4;
|
||||
|
||||
// Allows checks to run from locations within the western United States of
|
||||
// America
|
||||
USA_OREGON = 5;
|
||||
|
||||
// Allows checks to run from locations within the central United States of
|
||||
// America
|
||||
USA_IOWA = 6;
|
||||
|
||||
// Allows checks to run from locations within the eastern United States of
|
||||
// America
|
||||
USA_VIRGINIA = 7;
|
||||
}
|
||||
|
||||
// The supported resource types that can be used as values of
|
||||
// `group_resource.resource_type`.
|
||||
// `INSTANCE` includes `gce_instance` and `aws_ec2_instance` resource types.
|
||||
// The resource types `gae_app` and `uptime_url` are not valid here because
|
||||
// group checks on App Engine modules and URLs are not allowed.
|
||||
enum GroupResourceType {
|
||||
// Default value (not valid).
|
||||
RESOURCE_TYPE_UNSPECIFIED = 0;
|
||||
|
||||
// A group of instances from Google Cloud Platform (GCP) or
|
||||
// Amazon Web Services (AWS).
|
||||
INSTANCE = 1;
|
||||
|
||||
// A group of Amazon ELB load balancers.
|
||||
AWS_ELB_LOAD_BALANCER = 2;
|
||||
}
|
||||
259
google/monitoring/v3/uptime_service.proto
Normal file
259
google/monitoring/v3/uptime_service.proto
Normal file
|
|
@ -0,0 +1,259 @@
|
|||
// Copyright 2024 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.v3;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/monitoring/v3/uptime.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
|
||||
option csharp_namespace = "Google.Cloud.Monitoring.V3";
|
||||
option go_package = "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb;monitoringpb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "UptimeServiceProto";
|
||||
option java_package = "com.google.monitoring.v3";
|
||||
option php_namespace = "Google\\Cloud\\Monitoring\\V3";
|
||||
option ruby_package = "Google::Cloud::Monitoring::V3";
|
||||
|
||||
// The UptimeCheckService API is used to manage (list, create, delete, edit)
|
||||
// Uptime check configurations in the Cloud Monitoring product. An Uptime
|
||||
// check is a piece of configuration that determines which resources and
|
||||
// services to monitor for availability. These configurations can also be
|
||||
// configured interactively by navigating to the [Cloud console]
|
||||
// (https://console.cloud.google.com), selecting the appropriate project,
|
||||
// clicking on "Monitoring" on the left-hand side to navigate to Cloud
|
||||
// Monitoring, and then clicking on "Uptime".
|
||||
service UptimeCheckService {
|
||||
option (google.api.default_host) = "monitoring.googleapis.com";
|
||||
option (google.api.oauth_scopes) =
|
||||
"https://www.googleapis.com/auth/cloud-platform,"
|
||||
"https://www.googleapis.com/auth/monitoring,"
|
||||
"https://www.googleapis.com/auth/monitoring.read";
|
||||
|
||||
// Lists the existing valid Uptime check configurations for the project
|
||||
// (leaving out any invalid configurations).
|
||||
rpc ListUptimeCheckConfigs(ListUptimeCheckConfigsRequest)
|
||||
returns (ListUptimeCheckConfigsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{parent=projects/*}/uptimeCheckConfigs"
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
|
||||
// Gets a single Uptime check configuration.
|
||||
rpc GetUptimeCheckConfig(GetUptimeCheckConfigRequest)
|
||||
returns (UptimeCheckConfig) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/{name=projects/*/uptimeCheckConfigs/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Creates a new Uptime check configuration.
|
||||
rpc CreateUptimeCheckConfig(CreateUptimeCheckConfigRequest)
|
||||
returns (UptimeCheckConfig) {
|
||||
option (google.api.http) = {
|
||||
post: "/v3/{parent=projects/*}/uptimeCheckConfigs"
|
||||
body: "uptime_check_config"
|
||||
};
|
||||
option (google.api.method_signature) = "parent,uptime_check_config";
|
||||
}
|
||||
|
||||
// Updates an Uptime check configuration. You can either replace the entire
|
||||
// configuration with a new one or replace only certain fields in the current
|
||||
// configuration by specifying the fields to be updated via `updateMask`.
|
||||
// Returns the updated configuration.
|
||||
rpc UpdateUptimeCheckConfig(UpdateUptimeCheckConfigRequest)
|
||||
returns (UptimeCheckConfig) {
|
||||
option (google.api.http) = {
|
||||
patch: "/v3/{uptime_check_config.name=projects/*/uptimeCheckConfigs/*}"
|
||||
body: "uptime_check_config"
|
||||
};
|
||||
option (google.api.method_signature) = "uptime_check_config";
|
||||
}
|
||||
|
||||
// Deletes an Uptime check configuration. Note that this method will fail
|
||||
// if the Uptime check configuration is referenced by an alert policy or
|
||||
// other dependent configs that would be rendered invalid by the deletion.
|
||||
rpc DeleteUptimeCheckConfig(DeleteUptimeCheckConfigRequest)
|
||||
returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/v3/{name=projects/*/uptimeCheckConfigs/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Returns the list of IP addresses that checkers run from.
|
||||
rpc ListUptimeCheckIps(ListUptimeCheckIpsRequest)
|
||||
returns (ListUptimeCheckIpsResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/v3/uptimeCheckIps"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// The protocol for the `ListUptimeCheckConfigs` request.
|
||||
message ListUptimeCheckConfigsRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) whose
|
||||
// Uptime check configurations are listed. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/UptimeCheckConfig"
|
||||
}
|
||||
];
|
||||
|
||||
// If provided, this field specifies the criteria that must be met by
|
||||
// uptime checks to be included in the response.
|
||||
//
|
||||
// For more details, see [Filtering
|
||||
// syntax](https://cloud.google.com/monitoring/api/v3/sorting-and-filtering#filter_syntax).
|
||||
string filter = 2;
|
||||
|
||||
// The maximum number of results to return in a single response. The server
|
||||
// may further constrain the maximum number of results returned in a single
|
||||
// page. If the page_size is <=0, the server will decide the number of results
|
||||
// to be returned.
|
||||
int32 page_size = 3;
|
||||
|
||||
// If this field is not empty then it must contain the `nextPageToken` value
|
||||
// returned by a previous call to this method. Using this field causes the
|
||||
// method to return more results from the previous method call.
|
||||
string page_token = 4;
|
||||
}
|
||||
|
||||
// The protocol for the `ListUptimeCheckConfigs` response.
|
||||
message ListUptimeCheckConfigsResponse {
|
||||
// The returned Uptime check configurations.
|
||||
repeated UptimeCheckConfig uptime_check_configs = 1;
|
||||
|
||||
// This field represents the pagination token to retrieve the next page of
|
||||
// results. If the value is empty, it means no further results for the
|
||||
// request. To retrieve the next page of results, the value of the
|
||||
// next_page_token is passed to the subsequent List method call (in the
|
||||
// request message's page_token field).
|
||||
string next_page_token = 2;
|
||||
|
||||
// The total number of Uptime check configurations for the project,
|
||||
// irrespective of any pagination.
|
||||
int32 total_size = 3;
|
||||
}
|
||||
|
||||
// The protocol for the `GetUptimeCheckConfig` request.
|
||||
message GetUptimeCheckConfigRequest {
|
||||
// Required. The Uptime check configuration to retrieve. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/UptimeCheckConfig"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The protocol for the `CreateUptimeCheckConfig` request.
|
||||
message CreateUptimeCheckConfigRequest {
|
||||
// Required. The
|
||||
// [project](https://cloud.google.com/monitoring/api/v3#project_name) in which
|
||||
// to create the Uptime check. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "monitoring.googleapis.com/UptimeCheckConfig"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The new Uptime check configuration.
|
||||
UptimeCheckConfig uptime_check_config = 2
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The protocol for the `UpdateUptimeCheckConfig` request.
|
||||
message UpdateUptimeCheckConfigRequest {
|
||||
// Optional. If present, only the listed fields in the current Uptime check
|
||||
// configuration are updated with values from the new configuration. If this
|
||||
// field is empty, then the current configuration is completely replaced with
|
||||
// the new configuration.
|
||||
google.protobuf.FieldMask update_mask = 2;
|
||||
|
||||
// Required. If an `updateMask` has been specified, this field gives
|
||||
// the values for the set of fields mentioned in the `updateMask`. If an
|
||||
// `updateMask` has not been given, this Uptime check configuration replaces
|
||||
// the current configuration. If a field is mentioned in `updateMask` but
|
||||
// the corresponding field is omitted in this partial Uptime check
|
||||
// configuration, it has the effect of deleting/clearing the field from the
|
||||
// configuration on the server.
|
||||
//
|
||||
// The following fields can be updated: `display_name`,
|
||||
// `http_check`, `tcp_check`, `timeout`, `content_matchers`, and
|
||||
// `selected_regions`.
|
||||
UptimeCheckConfig uptime_check_config = 3
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// The protocol for the `DeleteUptimeCheckConfig` request.
|
||||
message DeleteUptimeCheckConfigRequest {
|
||||
// Required. The Uptime check configuration to delete. The format is:
|
||||
//
|
||||
// projects/[PROJECT_ID_OR_NUMBER]/uptimeCheckConfigs/[UPTIME_CHECK_ID]
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "monitoring.googleapis.com/UptimeCheckConfig"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// The protocol for the `ListUptimeCheckIps` request.
|
||||
message ListUptimeCheckIpsRequest {
|
||||
// The maximum number of results to return in a single response. The server
|
||||
// may further constrain the maximum number of results returned in a single
|
||||
// page. If the page_size is <=0, the server will decide the number of results
|
||||
// to be returned.
|
||||
// NOTE: this field is not yet implemented
|
||||
int32 page_size = 2;
|
||||
|
||||
// If this field is not empty then it must contain the `nextPageToken` value
|
||||
// returned by a previous call to this method. Using this field causes the
|
||||
// method to return more results from the previous method call.
|
||||
// NOTE: this field is not yet implemented
|
||||
string page_token = 3;
|
||||
}
|
||||
|
||||
// The protocol for the `ListUptimeCheckIps` response.
|
||||
message ListUptimeCheckIpsResponse {
|
||||
// The returned list of IP addresses (including region and location) that the
|
||||
// checkers run from.
|
||||
repeated UptimeCheckIp uptime_check_ips = 1;
|
||||
|
||||
// This field represents the pagination token to retrieve the next page of
|
||||
// results. If the value is empty, it means no further results for the
|
||||
// request. To retrieve the next page of results, the value of the
|
||||
// next_page_token is passed to the subsequent List method call (in the
|
||||
// request message's page_token field).
|
||||
// NOTE: this field is not yet implemented
|
||||
string next_page_token = 2;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue