summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/logging/v2/logging_metrics.proto
diff options
context:
space:
mode:
authorn1c00o <git.n1c00o@gmail.com>2022-10-12 18:05:45 +0200
committern1c00o <git.n1c00o@gmail.com>2022-10-12 18:05:45 +0200
commit9bcf3fedd50bd6c8dfef1673482d9b61fab49cd0 (patch)
tree45f3b754ece09b90bde859bc6e7eae4d3c31a848 /third_party/googleapis/google/logging/v2/logging_metrics.proto
parent2e1a2ee3d6c12d8367cbbe005fe7dcf8d253d9ac (diff)
Revendor correctly googleapis
Diffstat (limited to 'third_party/googleapis/google/logging/v2/logging_metrics.proto')
-rw-r--r--third_party/googleapis/google/logging/v2/logging_metrics.proto322
1 files changed, 322 insertions, 0 deletions
diff --git a/third_party/googleapis/google/logging/v2/logging_metrics.proto b/third_party/googleapis/google/logging/v2/logging_metrics.proto
new file mode 100644
index 0000000..9bbbc42
--- /dev/null
+++ b/third_party/googleapis/google/logging/v2/logging_metrics.proto
@@ -0,0 +1,322 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.logging.v2;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/distribution.proto";
+import "google/api/field_behavior.proto";
+import "google/api/metric.proto";
+import "google/api/resource.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/timestamp.proto";
+
+option cc_enable_arenas = true;
+option csharp_namespace = "Google.Cloud.Logging.V2";
+option go_package = "google.golang.org/genproto/googleapis/logging/v2;logging";
+option java_multiple_files = true;
+option java_outer_classname = "LoggingMetricsProto";
+option java_package = "com.google.logging.v2";
+option php_namespace = "Google\\Cloud\\Logging\\V2";
+option ruby_package = "Google::Cloud::Logging::V2";
+
+// Service for configuring logs-based metrics.
+service MetricsServiceV2 {
+ option (google.api.default_host) = "logging.googleapis.com";
+ option (google.api.oauth_scopes) =
+ "https://www.googleapis.com/auth/cloud-platform,"
+ "https://www.googleapis.com/auth/cloud-platform.read-only,"
+ "https://www.googleapis.com/auth/logging.admin,"
+ "https://www.googleapis.com/auth/logging.read,"
+ "https://www.googleapis.com/auth/logging.write";
+
+ // Lists logs-based metrics.
+ rpc ListLogMetrics(ListLogMetricsRequest) returns (ListLogMetricsResponse) {
+ option (google.api.http) = {
+ get: "/v2/{parent=projects/*}/metrics"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Gets a logs-based metric.
+ rpc GetLogMetric(GetLogMetricRequest) returns (LogMetric) {
+ option (google.api.http) = {
+ get: "/v2/{metric_name=projects/*/metrics/*}"
+ };
+ option (google.api.method_signature) = "metric_name";
+ }
+
+ // Creates a logs-based metric.
+ rpc CreateLogMetric(CreateLogMetricRequest) returns (LogMetric) {
+ option (google.api.http) = {
+ post: "/v2/{parent=projects/*}/metrics"
+ body: "metric"
+ };
+ option (google.api.method_signature) = "parent,metric";
+ }
+
+ // Creates or updates a logs-based metric.
+ rpc UpdateLogMetric(UpdateLogMetricRequest) returns (LogMetric) {
+ option (google.api.http) = {
+ put: "/v2/{metric_name=projects/*/metrics/*}"
+ body: "metric"
+ };
+ option (google.api.method_signature) = "metric_name,metric";
+ }
+
+ // Deletes a logs-based metric.
+ rpc DeleteLogMetric(DeleteLogMetricRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v2/{metric_name=projects/*/metrics/*}"
+ };
+ option (google.api.method_signature) = "metric_name";
+ }
+}
+
+// Describes a logs-based metric. The value of the metric is the number of log
+// entries that match a logs filter in a given time interval.
+//
+// Logs-based metrics can also be used to extract values from logs and create a
+// distribution of the values. The distribution records the statistics of the
+// extracted values along with an optional histogram of the values as specified
+// by the bucket options.
+message LogMetric {
+ option (google.api.resource) = {
+ type: "logging.googleapis.com/LogMetric"
+ pattern: "projects/{project}/metrics/{metric}"
+ };
+
+ // Logging API version.
+ enum ApiVersion {
+ // Logging API v2.
+ V2 = 0;
+
+ // Logging API v1.
+ V1 = 1;
+ }
+
+ // Required. The client-assigned metric identifier.
+ // Examples: `"error_count"`, `"nginx/requests"`.
+ //
+ // Metric identifiers are limited to 100 characters and can include only the
+ // following characters: `A-Z`, `a-z`, `0-9`, and the special characters
+ // `_-.,+!*',()%/`. The forward-slash character (`/`) denotes a hierarchy of
+ // name pieces, and it cannot be the first character of the name.
+ //
+ // This field is the `[METRIC_ID]` part of a metric resource name in the
+ // format "projects/[PROJECT_ID]/metrics/[METRIC_ID]". Example: If the
+ // resource name of a metric is
+ // `"projects/my-project/metrics/nginx%2Frequests"`, this field's value is
+ // `"nginx/requests"`.
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. A description of this metric, which is used in documentation.
+ // The maximum length of the description is 8000 characters.
+ string description = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. An [advanced logs
+ // filter](https://cloud.google.com/logging/docs/view/advanced_filters) which
+ // is used to match log entries. Example:
+ //
+ // "resource.type=gae_app AND severity>=ERROR"
+ //
+ // The maximum length of the filter is 20000 characters.
+ string filter = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. If set to True, then this metric is disabled and it does not
+ // generate any points.
+ bool disabled = 12 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The metric descriptor associated with the logs-based metric.
+ // If unspecified, it uses a default metric descriptor with a DELTA metric
+ // kind, INT64 value type, with no labels and a unit of "1". Such a metric
+ // counts the number of log entries matching the `filter` expression.
+ //
+ // The `name`, `type`, and `description` fields in the `metric_descriptor`
+ // are output only, and is constructed using the `name` and `description`
+ // field in the LogMetric.
+ //
+ // To create a logs-based metric that records a distribution of log values, a
+ // DELTA metric kind with a DISTRIBUTION value type must be used along with
+ // a `value_extractor` expression in the LogMetric.
+ //
+ // Each label in the metric descriptor must have a matching label
+ // name as the key and an extractor expression as the value in the
+ // `label_extractors` map.
+ //
+ // The `metric_kind` and `value_type` fields in the `metric_descriptor` cannot
+ // be updated once initially configured. New labels can be added in the
+ // `metric_descriptor`, but existing labels cannot be modified except for
+ // their description.
+ google.api.MetricDescriptor metric_descriptor = 5 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A `value_extractor` is required when using a distribution
+ // logs-based metric to extract the values to record from a log entry.
+ // Two functions are supported for value extraction: `EXTRACT(field)` or
+ // `REGEXP_EXTRACT(field, regex)`. The argument are:
+ // 1. field: The name of the log entry field from which the value is to be
+ // extracted.
+ // 2. regex: A regular expression using the Google RE2 syntax
+ // (https://github.com/google/re2/wiki/Syntax) with a single capture
+ // group to extract data from the specified log entry field. The value
+ // of the field is converted to a string before applying the regex.
+ // It is an error to specify a regex that does not include exactly one
+ // capture group.
+ //
+ // The result of the extraction must be convertible to a double type, as the
+ // distribution always records double values. If either the extraction or
+ // the conversion to double fails, then those values are not recorded in the
+ // distribution.
+ //
+ // Example: `REGEXP_EXTRACT(jsonPayload.request, ".*quantity=(\d+).*")`
+ string value_extractor = 6 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A map from a label key string to an extractor expression which is
+ // used to extract data from a log entry field and assign as the label value.
+ // Each label key specified in the LabelDescriptor must have an associated
+ // extractor expression in this map. The syntax of the extractor expression
+ // is the same as for the `value_extractor` field.
+ //
+ // The extracted value is converted to the type defined in the label
+ // descriptor. If the either the extraction or the type conversion fails,
+ // the label will have a default value. The default value for a string
+ // label is an empty string, for an integer label its 0, and for a boolean
+ // label its `false`.
+ //
+ // Note that there are upper bounds on the maximum number of labels and the
+ // number of active time series that are allowed in a project.
+ map<string, string> label_extractors = 7 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The `bucket_options` are required when the logs-based metric is
+ // using a DISTRIBUTION value type and it describes the bucket boundaries
+ // used to create a histogram of the extracted values.
+ google.api.Distribution.BucketOptions bucket_options = 8 [(google.api.field_behavior) = OPTIONAL];
+
+ // Output only. The creation timestamp of the metric.
+ //
+ // This field may not be present for older metrics.
+ google.protobuf.Timestamp create_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Output only. The last update timestamp of the metric.
+ //
+ // This field may not be present for older metrics.
+ google.protobuf.Timestamp update_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+ // Deprecated. The API version that created or updated this metric.
+ // The v2 format is used by default and cannot be changed.
+ ApiVersion version = 4 [deprecated = true];
+}
+
+// The parameters to ListLogMetrics.
+message ListLogMetricsRequest {
+ // Required. The name of the project containing the metrics:
+ //
+ // "projects/[PROJECT_ID]"
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudresourcemanager.googleapis.com/Project"
+ }
+ ];
+
+ // Optional. If present, then retrieve the next batch of results from the
+ // preceding call to this method. `pageToken` must be the value of
+ // `nextPageToken` from the previous response. The values of other method
+ // parameters should be identical to those in the previous call.
+ string page_token = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The maximum number of results to return from this request.
+ // Non-positive values are ignored. The presence of `nextPageToken` in the
+ // response indicates that more results might be available.
+ int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Result returned from ListLogMetrics.
+message ListLogMetricsResponse {
+ // A list of logs-based metrics.
+ repeated LogMetric metrics = 1;
+
+ // If there might be more results than appear in this response, then
+ // `nextPageToken` is included. To get the next set of results, call this
+ // method again using the value of `nextPageToken` as `pageToken`.
+ string next_page_token = 2;
+}
+
+// The parameters to GetLogMetric.
+message GetLogMetricRequest {
+ // Required. The resource name of the desired metric:
+ //
+ // "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
+ string metric_name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "logging.googleapis.com/LogMetric"
+ }
+ ];
+}
+
+// The parameters to CreateLogMetric.
+message CreateLogMetricRequest {
+ // Required. The resource name of the project in which to create the metric:
+ //
+ // "projects/[PROJECT_ID]"
+ //
+ // The new metric must be provided in the request.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ child_type: "logging.googleapis.com/LogMetric"
+ }
+ ];
+
+ // Required. The new logs-based metric, which must not have an identifier that
+ // already exists.
+ LogMetric metric = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// The parameters to UpdateLogMetric.
+message UpdateLogMetricRequest {
+ // Required. The resource name of the metric to update:
+ //
+ // "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
+ //
+ // The updated metric must be provided in the request and it's
+ // `name` field must be the same as `[METRIC_ID]` If the metric
+ // does not exist in `[PROJECT_ID]`, then a new metric is created.
+ string metric_name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "logging.googleapis.com/LogMetric"
+ }
+ ];
+
+ // Required. The updated metric.
+ LogMetric metric = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// The parameters to DeleteLogMetric.
+message DeleteLogMetricRequest {
+ // Required. The resource name of the metric to delete:
+ //
+ // "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
+ string metric_name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "logging.googleapis.com/LogMetric"
+ }
+ ];
+}