| // Copyright 2016 Google Inc. |
| // |
| // 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.devtools.clouderrorreporting.v1beta1; |
| |
| import "google/api/annotations.proto"; |
| import "google/devtools/clouderrorreporting/v1beta1/common.proto"; |
| import "google/protobuf/duration.proto"; |
| import "google/protobuf/timestamp.proto"; |
| |
| option csharp_namespace = "Google.Cloud.ErrorReporting.V1Beta1"; |
| option go_package = "google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1;clouderrorreporting"; |
| option java_multiple_files = true; |
| option java_outer_classname = "ErrorStatsServiceProto"; |
| option java_package = "com.google.devtools.clouderrorreporting.v1beta1"; |
| |
| |
| // An API for retrieving and managing error statistics as well as data for |
| // individual events. |
| service ErrorStatsService { |
| // Lists the specified groups. |
| rpc ListGroupStats(ListGroupStatsRequest) returns (ListGroupStatsResponse) { |
| option (google.api.http) = { get: "/v1beta1/{project_name=projects/*}/groupStats" }; |
| } |
| |
| // Lists the specified events. |
| rpc ListEvents(ListEventsRequest) returns (ListEventsResponse) { |
| option (google.api.http) = { get: "/v1beta1/{project_name=projects/*}/events" }; |
| } |
| |
| // Deletes all error events of a given project. |
| rpc DeleteEvents(DeleteEventsRequest) returns (DeleteEventsResponse) { |
| option (google.api.http) = { delete: "/v1beta1/{project_name=projects/*}/events" }; |
| } |
| } |
| |
| // Specifies a set of `ErrorGroupStats` to return. |
| message ListGroupStatsRequest { |
| // [Required] The resource name of the Google Cloud Platform project. Written |
| // as <code>projects/</code> plus the |
| // <a href="https://support.google.com/cloud/answer/6158840">Google Cloud |
| // Platform project ID</a>. |
| // |
| // Example: <code>projects/my-project-123</code>. |
| string project_name = 1; |
| |
| // [Optional] List all <code>ErrorGroupStats</code> with these IDs. |
| repeated string group_id = 2; |
| |
| // [Optional] List only <code>ErrorGroupStats</code> which belong to a service |
| // context that matches the filter. |
| // Data for all service contexts is returned if this field is not specified. |
| ServiceContextFilter service_filter = 3; |
| |
| // [Optional] List data for the given time range. |
| // If not set a default time range is used. The field time_range_begin |
| // in the response will specify the beginning of this time range. |
| // Only <code>ErrorGroupStats</code> with a non-zero count in the given time |
| // range are returned, unless the request contains an explicit group_id list. |
| // If a group_id list is given, also <code>ErrorGroupStats</code> with zero |
| // occurrences are returned. |
| QueryTimeRange time_range = 5; |
| |
| // [Optional] The preferred duration for a single returned `TimedCount`. |
| // If not set, no timed counts are returned. |
| google.protobuf.Duration timed_count_duration = 6; |
| |
| // [Optional] The alignment of the timed counts to be returned. |
| // Default is `ALIGNMENT_EQUAL_AT_END`. |
| TimedCountAlignment alignment = 7; |
| |
| // [Optional] Time where the timed counts shall be aligned if rounded |
| // alignment is chosen. Default is 00:00 UTC. |
| google.protobuf.Timestamp alignment_time = 8; |
| |
| // [Optional] The sort order in which the results are returned. |
| // Default is `COUNT_DESC`. |
| ErrorGroupOrder order = 9; |
| |
| // [Optional] The maximum number of results to return per response. |
| // Default is 20. |
| int32 page_size = 11; |
| |
| // [Optional] A `next_page_token` provided by a previous response. To view |
| // additional results, pass this token along with the identical query |
| // parameters as the first request. |
| string page_token = 12; |
| } |
| |
| // Contains a set of requested error group stats. |
| message ListGroupStatsResponse { |
| // The error group stats which match the given request. |
| repeated ErrorGroupStats error_group_stats = 1; |
| |
| // If non-empty, more results are available. |
| // Pass this token, along with the same query parameters as the first |
| // request, to view the next page of results. |
| string next_page_token = 2; |
| |
| // The timestamp specifies the start time to which the request was restricted. |
| // The start time is set based on the requested time range. It may be adjusted |
| // to a later time if a project has exceeded the storage quota and older data |
| // has been deleted. |
| google.protobuf.Timestamp time_range_begin = 4; |
| } |
| |
| // Data extracted for a specific group based on certain filter criteria, |
| // such as a given time period and/or service filter. |
| message ErrorGroupStats { |
| // Group data that is independent of the filter criteria. |
| ErrorGroup group = 1; |
| |
| // Approximate total number of events in the given group that match |
| // the filter criteria. |
| int64 count = 2; |
| |
| // Approximate number of affected users in the given group that |
| // match the filter criteria. |
| // Users are distinguished by data in the `ErrorContext` of the |
| // individual error events, such as their login name or their remote |
| // IP address in case of HTTP requests. |
| // The number of affected users can be zero even if the number of |
| // errors is non-zero if no data was provided from which the |
| // affected user could be deduced. |
| // Users are counted based on data in the request |
| // context that was provided in the error report. If more users are |
| // implicitly affected, such as due to a crash of the whole service, |
| // this is not reflected here. |
| int64 affected_users_count = 3; |
| |
| // Approximate number of occurrences over time. |
| // Timed counts returned by ListGroups are guaranteed to be: |
| // |
| // - Inside the requested time interval |
| // - Non-overlapping, and |
| // - Ordered by ascending time. |
| repeated TimedCount timed_counts = 4; |
| |
| // Approximate first occurrence that was ever seen for this group |
| // and which matches the given filter criteria, ignoring the |
| // time_range that was specified in the request. |
| google.protobuf.Timestamp first_seen_time = 5; |
| |
| // Approximate last occurrence that was ever seen for this group and |
| // which matches the given filter criteria, ignoring the time_range |
| // that was specified in the request. |
| google.protobuf.Timestamp last_seen_time = 6; |
| |
| // Service contexts with a non-zero error count for the given filter |
| // criteria. This list can be truncated if multiple services are affected. |
| // Refer to `num_affected_services` for the total count. |
| repeated ServiceContext affected_services = 7; |
| |
| // The total number of services with a non-zero error count for the given |
| // filter criteria. |
| int32 num_affected_services = 8; |
| |
| // An arbitrary event that is chosen as representative for the whole group. |
| // The representative event is intended to be used as a quick preview for |
| // the whole group. Events in the group are usually sufficiently similar |
| // to each other such that showing an arbitrary representative provides |
| // insight into the characteristics of the group as a whole. |
| ErrorEvent representative = 9; |
| } |
| |
| // The number of errors in a given time period. |
| // All numbers are approximate since the error events are sampled |
| // before counting them. |
| message TimedCount { |
| // Approximate number of occurrences in the given time period. |
| int64 count = 1; |
| |
| // Start of the time period to which `count` refers (included). |
| google.protobuf.Timestamp start_time = 2; |
| |
| // End of the time period to which `count` refers (excluded). |
| google.protobuf.Timestamp end_time = 3; |
| } |
| |
| // Specifies a set of error events to return. |
| message ListEventsRequest { |
| // [Required] The resource name of the Google Cloud Platform project. Written |
| // as `projects/` plus the |
| // [Google Cloud Platform project |
| // ID](https://support.google.com/cloud/answer/6158840). |
| // Example: `projects/my-project-123`. |
| string project_name = 1; |
| |
| // [Required] The group for which events shall be returned. |
| string group_id = 2; |
| |
| // [Optional] List only ErrorGroups which belong to a service context that |
| // matches the filter. |
| // Data for all service contexts is returned if this field is not specified. |
| ServiceContextFilter service_filter = 3; |
| |
| // [Optional] List only data for the given time range. |
| // If not set a default time range is used. The field time_range_begin |
| // in the response will specify the beginning of this time range. |
| QueryTimeRange time_range = 4; |
| |
| // [Optional] The maximum number of results to return per response. |
| int32 page_size = 6; |
| |
| // [Optional] A `next_page_token` provided by a previous response. |
| string page_token = 7; |
| } |
| |
| // Contains a set of requested error events. |
| message ListEventsResponse { |
| // The error events which match the given request. |
| repeated ErrorEvent error_events = 1; |
| |
| // If non-empty, more results are available. |
| // Pass this token, along with the same query parameters as the first |
| // request, to view the next page of results. |
| string next_page_token = 2; |
| |
| // The timestamp specifies the start time to which the request was restricted. |
| google.protobuf.Timestamp time_range_begin = 4; |
| } |
| |
| // Requests might be rejected or the resulting timed count durations might be |
| // adjusted for lower durations. |
| message QueryTimeRange { |
| // The supported time ranges. |
| enum Period { |
| // Do not use. |
| PERIOD_UNSPECIFIED = 0; |
| |
| // Retrieve data for the last hour. |
| // Recommended minimum timed count duration: 1 min. |
| PERIOD_1_HOUR = 1; |
| |
| // Retrieve data for the last 6 hours. |
| // Recommended minimum timed count duration: 10 min. |
| PERIOD_6_HOURS = 2; |
| |
| // Retrieve data for the last day. |
| // Recommended minimum timed count duration: 1 hour. |
| PERIOD_1_DAY = 3; |
| |
| // Retrieve data for the last week. |
| // Recommended minimum timed count duration: 6 hours. |
| PERIOD_1_WEEK = 4; |
| |
| // Retrieve data for the last 30 days. |
| // Recommended minimum timed count duration: 1 day. |
| PERIOD_30_DAYS = 5; |
| } |
| |
| // Restricts the query to the specified time range. |
| Period period = 1; |
| } |
| |
| // Specifies criteria for filtering a subset of service contexts. |
| // The fields in the filter correspond to the fields in `ServiceContext`. |
| // Only exact, case-sensitive matches are supported. |
| // If a field is unset or empty, it matches arbitrary values. |
| message ServiceContextFilter { |
| // [Optional] The exact value to match against |
| // [`ServiceContext.service`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.service). |
| string service = 2; |
| |
| // [Optional] The exact value to match against |
| // [`ServiceContext.version`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.version). |
| string version = 3; |
| |
| // [Optional] The exact value to match against |
| // [`ServiceContext.resource_type`](/error-reporting/reference/rest/v1beta1/ServiceContext#FIELDS.resource_type). |
| string resource_type = 4; |
| } |
| |
| // Deletes all events in the project. |
| message DeleteEventsRequest { |
| // [Required] The resource name of the Google Cloud Platform project. Written |
| // as `projects/` plus the |
| // [Google Cloud Platform project |
| // ID](https://support.google.com/cloud/answer/6158840). |
| // Example: `projects/my-project-123`. |
| string project_name = 1; |
| } |
| |
| // Response message for deleting error events. |
| message DeleteEventsResponse { |
| |
| } |
| |
| // Specifies how the time periods of error group counts are aligned. |
| enum TimedCountAlignment { |
| // No alignment specified. |
| ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0; |
| |
| // The time periods shall be consecutive, have width equal to the |
| // requested duration, and be aligned at the `alignment_time` provided in |
| // the request. |
| // The `alignment_time` does not have to be inside the query period but |
| // even if it is outside, only time periods are returned which overlap |
| // with the query period. |
| // A rounded alignment will typically result in a |
| // different size of the first or the last time period. |
| ALIGNMENT_EQUAL_ROUNDED = 1; |
| |
| // The time periods shall be consecutive, have width equal to the |
| // requested duration, and be aligned at the end of the requested time |
| // period. This can result in a different size of the |
| // first time period. |
| ALIGNMENT_EQUAL_AT_END = 2; |
| } |
| |
| // A sorting order of error groups. |
| enum ErrorGroupOrder { |
| // No group order specified. |
| GROUP_ORDER_UNSPECIFIED = 0; |
| |
| // Total count of errors in the given time window in descending order. |
| COUNT_DESC = 1; |
| |
| // Timestamp when the group was last seen in the given time window |
| // in descending order. |
| LAST_SEEN_DESC = 2; |
| |
| // Timestamp when the group was created in descending order. |
| CREATED_DESC = 3; |
| |
| // Number of affected users in the given time window in descending order. |
| AFFECTED_USERS_DESC = 4; |
| } |