591 lines
24 KiB
Ruby
591 lines
24 KiB
Ruby
# Copyright 2015 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.
|
|
|
|
require 'date'
|
|
require 'google/apis/core/base_service'
|
|
require 'google/apis/core/json_representation'
|
|
require 'google/apis/core/hashable'
|
|
require 'google/apis/errors'
|
|
|
|
module Google
|
|
module Apis
|
|
module ClouderrorreportingV1beta1
|
|
|
|
# Data extracted for a specific group based on certain filter criteria,
|
|
# such as a given time period and/or service filter.
|
|
class ErrorGroupStats
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Description of a group of similar error events.
|
|
# Corresponds to the JSON property `group`
|
|
# @return [Google::Apis::ClouderrorreportingV1beta1::ErrorGroup]
|
|
attr_accessor :group
|
|
|
|
# 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.
|
|
# Corresponds to the JSON property `firstSeenTime`
|
|
# @return [String]
|
|
attr_accessor :first_seen_time
|
|
|
|
# Approximate total number of events in the given group that match
|
|
# the filter criteria.
|
|
# Corresponds to the JSON property `count`
|
|
# @return [String]
|
|
attr_accessor :count
|
|
|
|
# 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.
|
|
# Corresponds to the JSON property `affectedUsersCount`
|
|
# @return [String]
|
|
attr_accessor :affected_users_count
|
|
|
|
# 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.
|
|
# Corresponds to the JSON property `lastSeenTime`
|
|
# @return [String]
|
|
attr_accessor :last_seen_time
|
|
|
|
# The total number of services with a non-zero error count for the given
|
|
# filter criteria.
|
|
# Corresponds to the JSON property `numAffectedServices`
|
|
# @return [Fixnum]
|
|
attr_accessor :num_affected_services
|
|
|
|
# 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.
|
|
# Corresponds to the JSON property `affectedServices`
|
|
# @return [Array<Google::Apis::ClouderrorreportingV1beta1::ServiceContext>]
|
|
attr_accessor :affected_services
|
|
|
|
# An error event which is returned by the Error Reporting system.
|
|
# Corresponds to the JSON property `representative`
|
|
# @return [Google::Apis::ClouderrorreportingV1beta1::ErrorEvent]
|
|
attr_accessor :representative
|
|
|
|
# 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.
|
|
# Corresponds to the JSON property `timedCounts`
|
|
# @return [Array<Google::Apis::ClouderrorreportingV1beta1::TimedCount>]
|
|
attr_accessor :timed_counts
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@group = args[:group] if args.key?(:group)
|
|
@first_seen_time = args[:first_seen_time] if args.key?(:first_seen_time)
|
|
@count = args[:count] if args.key?(:count)
|
|
@affected_users_count = args[:affected_users_count] if args.key?(:affected_users_count)
|
|
@last_seen_time = args[:last_seen_time] if args.key?(:last_seen_time)
|
|
@num_affected_services = args[:num_affected_services] if args.key?(:num_affected_services)
|
|
@affected_services = args[:affected_services] if args.key?(:affected_services)
|
|
@representative = args[:representative] if args.key?(:representative)
|
|
@timed_counts = args[:timed_counts] if args.key?(:timed_counts)
|
|
end
|
|
end
|
|
|
|
# Contains a set of requested error events.
|
|
class ListEventsResponse
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The timestamp specifies the start time to which the request was restricted.
|
|
# Corresponds to the JSON property `timeRangeBegin`
|
|
# @return [String]
|
|
attr_accessor :time_range_begin
|
|
|
|
# The error events which match the given request.
|
|
# Corresponds to the JSON property `errorEvents`
|
|
# @return [Array<Google::Apis::ClouderrorreportingV1beta1::ErrorEvent>]
|
|
attr_accessor :error_events
|
|
|
|
# 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.
|
|
# Corresponds to the JSON property `nextPageToken`
|
|
# @return [String]
|
|
attr_accessor :next_page_token
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@time_range_begin = args[:time_range_begin] if args.key?(:time_range_begin)
|
|
@error_events = args[:error_events] if args.key?(:error_events)
|
|
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
end
|
|
end
|
|
|
|
# The number of errors in a given time period.
|
|
# All numbers are approximate since the error events are sampled
|
|
# before counting them.
|
|
class TimedCount
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# End of the time period to which `count` refers (excluded).
|
|
# Corresponds to the JSON property `endTime`
|
|
# @return [String]
|
|
attr_accessor :end_time
|
|
|
|
# Approximate number of occurrences in the given time period.
|
|
# Corresponds to the JSON property `count`
|
|
# @return [String]
|
|
attr_accessor :count
|
|
|
|
# Start of the time period to which `count` refers (included).
|
|
# Corresponds to the JSON property `startTime`
|
|
# @return [String]
|
|
attr_accessor :start_time
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@end_time = args[:end_time] if args.key?(:end_time)
|
|
@count = args[:count] if args.key?(:count)
|
|
@start_time = args[:start_time] if args.key?(:start_time)
|
|
end
|
|
end
|
|
|
|
# Description of a group of similar error events.
|
|
class ErrorGroup
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The group resource name.
|
|
# Example: <code>projects/my-project-123/groups/my-groupid</code>
|
|
# Corresponds to the JSON property `name`
|
|
# @return [String]
|
|
attr_accessor :name
|
|
|
|
# Group IDs are unique for a given project. If the same kind of error
|
|
# occurs in different service contexts, it will receive the same group ID.
|
|
# Corresponds to the JSON property `groupId`
|
|
# @return [String]
|
|
attr_accessor :group_id
|
|
|
|
# Associated tracking issues.
|
|
# Corresponds to the JSON property `trackingIssues`
|
|
# @return [Array<Google::Apis::ClouderrorreportingV1beta1::TrackingIssue>]
|
|
attr_accessor :tracking_issues
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@name = args[:name] if args.key?(:name)
|
|
@group_id = args[:group_id] if args.key?(:group_id)
|
|
@tracking_issues = args[:tracking_issues] if args.key?(:tracking_issues)
|
|
end
|
|
end
|
|
|
|
# Describes a running service that sends errors.
|
|
# Its version changes over time and multiple versions can run in parallel.
|
|
class ServiceContext
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Represents the source code version that the developer provided,
|
|
# which could represent a version label or a Git SHA-1 hash, for example.
|
|
# For App Engine standard environment, the version is set to the version of
|
|
# the app.
|
|
# Corresponds to the JSON property `version`
|
|
# @return [String]
|
|
attr_accessor :version
|
|
|
|
# An identifier of the service, such as the name of the
|
|
# executable, job, or Google App Engine service name. This field is expected
|
|
# to have a low number of values that are relatively stable over time, as
|
|
# opposed to `version`, which can be changed whenever new code is deployed.
|
|
# Contains the service name for error reports extracted from Google
|
|
# App Engine logs or `default` if the App Engine default service is used.
|
|
# Corresponds to the JSON property `service`
|
|
# @return [String]
|
|
attr_accessor :service
|
|
|
|
# Type of the MonitoredResource. List of possible values:
|
|
# https://cloud.google.com/monitoring/api/resources
|
|
# Value is set automatically for incoming errors and must not be set when
|
|
# reporting errors.
|
|
# Corresponds to the JSON property `resourceType`
|
|
# @return [String]
|
|
attr_accessor :resource_type
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@version = args[:version] if args.key?(:version)
|
|
@service = args[:service] if args.key?(:service)
|
|
@resource_type = args[:resource_type] if args.key?(:resource_type)
|
|
end
|
|
end
|
|
|
|
# Indicates a location in the source code of the service for which errors are
|
|
# reported. `functionName` must be provided by the application when reporting
|
|
# an error, unless the error report contains a `message` with a supported
|
|
# exception stack trace. All fields are optional for the later case.
|
|
class SourceLocation
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# Human-readable name of a function or method.
|
|
# The value can include optional context like the class or package name.
|
|
# For example, `my.package.MyClass.method` in case of Java.
|
|
# Corresponds to the JSON property `functionName`
|
|
# @return [String]
|
|
attr_accessor :function_name
|
|
|
|
# The source code filename, which can include a truncated relative
|
|
# path, or a full path from a production machine.
|
|
# Corresponds to the JSON property `filePath`
|
|
# @return [String]
|
|
attr_accessor :file_path
|
|
|
|
# 1-based. 0 indicates that the line number is unknown.
|
|
# Corresponds to the JSON property `lineNumber`
|
|
# @return [Fixnum]
|
|
attr_accessor :line_number
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@function_name = args[:function_name] if args.key?(:function_name)
|
|
@file_path = args[:file_path] if args.key?(:file_path)
|
|
@line_number = args[:line_number] if args.key?(:line_number)
|
|
end
|
|
end
|
|
|
|
# Response for reporting an individual error event.
|
|
# Data may be added to this message in the future.
|
|
class ReportErrorEventResponse
|
|
include Google::Apis::Core::Hashable
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
end
|
|
end
|
|
|
|
# HTTP request data that is related to a reported error.
|
|
# This data should be provided by the application when reporting an error,
|
|
# unless the
|
|
# error report has been generated automatically from Google App Engine logs.
|
|
class HttpRequestContext
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# The referrer information that is provided with the request.
|
|
# Corresponds to the JSON property `referrer`
|
|
# @return [String]
|
|
attr_accessor :referrer
|
|
|
|
# The user agent information that is provided with the request.
|
|
# Corresponds to the JSON property `userAgent`
|
|
# @return [String]
|
|
attr_accessor :user_agent
|
|
|
|
# The URL of the request.
|
|
# Corresponds to the JSON property `url`
|
|
# @return [String]
|
|
attr_accessor :url
|
|
|
|
# The HTTP response status code for the request.
|
|
# Corresponds to the JSON property `responseStatusCode`
|
|
# @return [Fixnum]
|
|
attr_accessor :response_status_code
|
|
|
|
# The type of HTTP request, such as `GET`, `POST`, etc.
|
|
# Corresponds to the JSON property `method`
|
|
# @return [String]
|
|
attr_accessor :method_prop
|
|
|
|
# The IP address from which the request originated.
|
|
# This can be IPv4, IPv6, or a token which is derived from the
|
|
# IP address, depending on the data that has been provided
|
|
# in the error report.
|
|
# Corresponds to the JSON property `remoteIp`
|
|
# @return [String]
|
|
attr_accessor :remote_ip
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@referrer = args[:referrer] if args.key?(:referrer)
|
|
@user_agent = args[:user_agent] if args.key?(:user_agent)
|
|
@url = args[:url] if args.key?(:url)
|
|
@response_status_code = args[:response_status_code] if args.key?(:response_status_code)
|
|
@method_prop = args[:method_prop] if args.key?(:method_prop)
|
|
@remote_ip = args[:remote_ip] if args.key?(:remote_ip)
|
|
end
|
|
end
|
|
|
|
# Contains a set of requested error group stats.
|
|
class ListGroupStatsResponse
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# 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.
|
|
# Corresponds to the JSON property `timeRangeBegin`
|
|
# @return [String]
|
|
attr_accessor :time_range_begin
|
|
|
|
# The error group stats which match the given request.
|
|
# Corresponds to the JSON property `errorGroupStats`
|
|
# @return [Array<Google::Apis::ClouderrorreportingV1beta1::ErrorGroupStats>]
|
|
attr_accessor :error_group_stats
|
|
|
|
# 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.
|
|
# Corresponds to the JSON property `nextPageToken`
|
|
# @return [String]
|
|
attr_accessor :next_page_token
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@time_range_begin = args[:time_range_begin] if args.key?(:time_range_begin)
|
|
@error_group_stats = args[:error_group_stats] if args.key?(:error_group_stats)
|
|
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
end
|
|
end
|
|
|
|
# Response message for deleting error events.
|
|
class DeleteEventsResponse
|
|
include Google::Apis::Core::Hashable
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
end
|
|
end
|
|
|
|
# An error event which is returned by the Error Reporting system.
|
|
class ErrorEvent
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# A description of the context in which an error occurred.
|
|
# This data should be provided by the application when reporting an error,
|
|
# unless the
|
|
# error report has been generated automatically from Google App Engine logs.
|
|
# Corresponds to the JSON property `context`
|
|
# @return [Google::Apis::ClouderrorreportingV1beta1::ErrorContext]
|
|
attr_accessor :context
|
|
|
|
# The stack trace that was reported or logged by the service.
|
|
# Corresponds to the JSON property `message`
|
|
# @return [String]
|
|
attr_accessor :message
|
|
|
|
# Describes a running service that sends errors.
|
|
# Its version changes over time and multiple versions can run in parallel.
|
|
# Corresponds to the JSON property `serviceContext`
|
|
# @return [Google::Apis::ClouderrorreportingV1beta1::ServiceContext]
|
|
attr_accessor :service_context
|
|
|
|
# Time when the event occurred as provided in the error report.
|
|
# If the report did not contain a timestamp, the time the error was received
|
|
# by the Error Reporting system is used.
|
|
# Corresponds to the JSON property `eventTime`
|
|
# @return [String]
|
|
attr_accessor :event_time
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@context = args[:context] if args.key?(:context)
|
|
@message = args[:message] if args.key?(:message)
|
|
@service_context = args[:service_context] if args.key?(:service_context)
|
|
@event_time = args[:event_time] if args.key?(:event_time)
|
|
end
|
|
end
|
|
|
|
# An error event which is reported to the Error Reporting system.
|
|
class ReportedErrorEvent
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# A description of the context in which an error occurred.
|
|
# This data should be provided by the application when reporting an error,
|
|
# unless the
|
|
# error report has been generated automatically from Google App Engine logs.
|
|
# Corresponds to the JSON property `context`
|
|
# @return [Google::Apis::ClouderrorreportingV1beta1::ErrorContext]
|
|
attr_accessor :context
|
|
|
|
# [Required] The error message.
|
|
# If no `context.reportLocation` is provided, the message must contain a
|
|
# header (typically consisting of the exception type name and an error
|
|
# message) and an exception stack trace in one of the supported programming
|
|
# languages and formats.
|
|
# Supported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go.
|
|
# Supported stack trace formats are:
|
|
# * **Java**: Must be the return value of [`Throwable.printStackTrace()`](https:/
|
|
# /docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%
|
|
# 29).
|
|
# * **Python**: Must be the return value of [`traceback.format_exc()`](https://
|
|
# docs.python.org/2/library/traceback.html#traceback.format_exc).
|
|
# * **JavaScript**: Must be the value of [`error.stack`](https://github.com/v8/
|
|
# v8/wiki/Stack-Trace-API)
|
|
# as returned by V8.
|
|
# * **Ruby**: Must contain frames returned by [`Exception.backtrace`](https://
|
|
# ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace).
|
|
# * **C#**: Must be the return value of [`Exception.ToString()`](https://msdn.
|
|
# microsoft.com/en-us/library/system.exception.tostring.aspx).
|
|
# * **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)`
|
|
# and contain the result of [`(string)$exception`](http://php.net/manual/en/
|
|
# exception.tostring.php).
|
|
# * **Go**: Must be the return value of [`runtime.Stack()`](https://golang.org/
|
|
# pkg/runtime/debug/#Stack).
|
|
# Corresponds to the JSON property `message`
|
|
# @return [String]
|
|
attr_accessor :message
|
|
|
|
# Describes a running service that sends errors.
|
|
# Its version changes over time and multiple versions can run in parallel.
|
|
# Corresponds to the JSON property `serviceContext`
|
|
# @return [Google::Apis::ClouderrorreportingV1beta1::ServiceContext]
|
|
attr_accessor :service_context
|
|
|
|
# [Optional] Time when the event occurred.
|
|
# If not provided, the time when the event was received by the
|
|
# Error Reporting system will be used.
|
|
# Corresponds to the JSON property `eventTime`
|
|
# @return [String]
|
|
attr_accessor :event_time
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@context = args[:context] if args.key?(:context)
|
|
@message = args[:message] if args.key?(:message)
|
|
@service_context = args[:service_context] if args.key?(:service_context)
|
|
@event_time = args[:event_time] if args.key?(:event_time)
|
|
end
|
|
end
|
|
|
|
# A description of the context in which an error occurred.
|
|
# This data should be provided by the application when reporting an error,
|
|
# unless the
|
|
# error report has been generated automatically from Google App Engine logs.
|
|
class ErrorContext
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# HTTP request data that is related to a reported error.
|
|
# This data should be provided by the application when reporting an error,
|
|
# unless the
|
|
# error report has been generated automatically from Google App Engine logs.
|
|
# Corresponds to the JSON property `httpRequest`
|
|
# @return [Google::Apis::ClouderrorreportingV1beta1::HttpRequestContext]
|
|
attr_accessor :http_request
|
|
|
|
# The user who caused or was affected by the crash.
|
|
# This can be a user ID, an email address, or an arbitrary token that
|
|
# uniquely identifies the user.
|
|
# When sending an error report, leave this field empty if the user was not
|
|
# logged in. In this case the
|
|
# Error Reporting system will use other data, such as remote IP address, to
|
|
# distinguish affected users. See `affected_users_count` in
|
|
# `ErrorGroupStats`.
|
|
# Corresponds to the JSON property `user`
|
|
# @return [String]
|
|
attr_accessor :user
|
|
|
|
# Indicates a location in the source code of the service for which errors are
|
|
# reported. `functionName` must be provided by the application when reporting
|
|
# an error, unless the error report contains a `message` with a supported
|
|
# exception stack trace. All fields are optional for the later case.
|
|
# Corresponds to the JSON property `reportLocation`
|
|
# @return [Google::Apis::ClouderrorreportingV1beta1::SourceLocation]
|
|
attr_accessor :report_location
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@http_request = args[:http_request] if args.key?(:http_request)
|
|
@user = args[:user] if args.key?(:user)
|
|
@report_location = args[:report_location] if args.key?(:report_location)
|
|
end
|
|
end
|
|
|
|
# Information related to tracking the progress on resolving the error.
|
|
class TrackingIssue
|
|
include Google::Apis::Core::Hashable
|
|
|
|
# A URL pointing to a related entry in an issue tracking system.
|
|
# Example: https://github.com/user/project/issues/4
|
|
# Corresponds to the JSON property `url`
|
|
# @return [String]
|
|
attr_accessor :url
|
|
|
|
def initialize(**args)
|
|
update!(**args)
|
|
end
|
|
|
|
# Update properties of this object
|
|
def update!(**args)
|
|
@url = args[:url] if args.key?(:url)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|