Module: Google::Cloud::ErrorReporting
- Defined in:
- lib/google/cloud/error_reporting.rb,
lib/google/cloud/error_reporting/rails.rb,
lib/google/cloud/error_reporting/project.rb,
lib/google/cloud/error_reporting/service.rb,
lib/google/cloud/error_reporting/version.rb,
lib/google/cloud/error_reporting/middleware.rb,
lib/google/cloud/error_reporting/credentials.rb,
lib/google/cloud/error_reporting/error_event.rb,
lib/google/cloud/error_reporting/v1beta1/credentials.rb,
lib/google/cloud/error_reporting/async_error_reporter.rb,
lib/google/cloud/error_reporting/v1beta1/error_group_service_client.rb,
lib/google/cloud/error_reporting/v1beta1/error_stats_service_client.rb,
lib/google/cloud/error_reporting/v1beta1/report_errors_service_client.rb
Overview
ErrorReporting
Stackdriver Error Reporting counts, analyzes and aggregates the crashes in your running cloud services. The Stackdriver Error Reporting Instrumentation client provides a simple way to report errors from your application.
For general information about Stackdriver Error Reporting, read Stackdriver Error Reporting Documentation.
The goal of google-cloud is to provide an API that is comfortable to Rubyists. Your authentication credentials are detected automatically in Google Cloud Platform environments such as Google Compute Engine, Google App Engine and Google Kubernetes Engine. In other environments you can configure authentication easily, either directly in your code or via environment variables. Read more about the options for connecting in the Authentication Guide.
Enabling Logging
To enable logging for this library, set the logger for the underlying
gRPC library. The
logger that you set may be a Ruby stdlib
Logger
as shown below, or a
Google::Cloud::Logging::Logger
that will write logs to Stackdriver
Logging. See
grpc/logconfig.rb
and the gRPC
spec_helper.rb
for additional information.
Configuring a Ruby stdlib logger:
require "logger"
module MyLogger
LOGGER = Logger.new $stderr, level: Logger::WARN
def logger
LOGGER
end
end
# Define a gRPC module-level logger method before grpc/logconfig.rb loads.
module GRPC
extend MyLogger
end
How to report errors
You can easily report exceptions from your applications to Stackdriver Error Reporting service:
require "google/cloud/error_reporting"
# Configure Stackdriver ErrorReporting instrumentation
Google::Cloud::ErrorReporting.configure do |config|
config.project_id = "my-project"
config.keyfile = "/path/to/keyfile.json"
end
# Insert a Rack Middleware to report unhanded exceptions
use Google::Cloud::ErrorReporting::Middleware
# Or explicitly submit exceptions
begin
fail "Boom!"
rescue => exception
Google::Cloud::ErrorReporting.report exception
end
See the Instrumentation Guide for more examples.
Defined Under Namespace
Modules: V1beta1 Classes: Credentials, ErrorEvent, Middleware, Project, Railtie
Constant Summary collapse
- VERSION =
"0.30.2".freeze
Class Method Summary collapse
-
.configure {|Google::Cloud.configure.error_reporting| ... } ⇒ Google::Cloud::Config
Configure the default Project client, allows the ErrorReporting.report public method to reuse these configured parameters.
-
.new(project_id: nil, credentials: nil, scope: nil, timeout: nil, client_config: nil, project: nil, keyfile: nil) ⇒ Google::Cloud::ErrorReporting::Project
Creates a new object for connecting to the Stackdriver Error Reporting service.
-
.report(exception, service_name: nil, service_version: nil) {|error_event| ... } ⇒ Object
Provides an easy-to-use interface to Report a Ruby exception object to Stackdriver ErrorReporting service.
Class Method Details
.configure {|Google::Cloud.configure.error_reporting| ... } ⇒ Google::Cloud::Config
Configure the default Project client, allows the report public method to reuse these configured parameters.
The following Stackdriver ErrorReporting configuration parameters are supported:
project_id
- (String) Google Cloud Platform project identifier for the Stackdriver Error Reporting service you are connecting to. (The parameterproject
is considered deprecated, but may also be used.)credentials
- (String, Hash, Google::Auth::Credentials) The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object. (See Credentials) (The parameterkeyfile
is considered deprecated, but may also be used.)scope
- (String, Array) The OAuth 2.0 scopes controlling the set of resources and operations that the connection can access. timeout
- (Integer) Default timeout to use in requests.client_config
- (Hash) A hash of values to override the default behavior of the API client.service_name
- (String) Name for the application.service_version
- (String) Version identifier for the application.ignore_classes
- (Array) Array of exception types that should not be reported.
See the Configuration Guide for full configuration parameters.
229 230 231 232 233 |
# File 'lib/google/cloud/error_reporting.rb', line 229 def self.configure yield Google::Cloud.configure.error_reporting if block_given? Google::Cloud.configure.error_reporting end |
.new(project_id: nil, credentials: nil, scope: nil, timeout: nil, client_config: nil, project: nil, keyfile: nil) ⇒ Google::Cloud::ErrorReporting::Project
Creates a new object for connecting to the Stackdriver Error Reporting service. Each call creates a new connection.
For more information on connecting to Google Cloud see the Authentication Guide.
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/google/cloud/error_reporting.rb', line 154 def self.new project_id: nil, credentials: nil, scope: nil, timeout: nil, client_config: nil, project: nil, keyfile: nil project_id ||= (project || ErrorReporting::Project.default_project_id) project_id = project_id.to_s raise ArgumentError, "project_id is missing" if project_id.empty? scope ||= configure.scope timeout ||= configure.timeout client_config ||= configure.client_config credentials ||= (keyfile || default_credentials(scope: scope)) unless credentials.is_a? Google::Auth::Credentials credentials = ErrorReporting::Credentials.new credentials, scope: scope end ErrorReporting::Project.new( ErrorReporting::Service.new( project_id, credentials, timeout: timeout, client_config: client_config ) ) end |
.report(exception, service_name: nil, service_version: nil) {|error_event| ... } ⇒ Object
Provides an easy-to-use interface to Report a Ruby exception object to Stackdriver ErrorReporting service. This method helps users to transform the Ruby exception into an Stackdriver ErrorReporting ErrorEvent gRPC structure, so users don't need to. This should be the prefered method to use when users wish to report captured exception in applications.
This public method creates a default Stackdriver ErrorReporting client and reuse that between calls. The default client is initialized with parameters defined in configure.
The error event can be customized before reporting. See the example below and ErrorEvent class for avaiable error event fields.
280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 |
# File 'lib/google/cloud/error_reporting.rb', line 280 def self.report exception, service_name: nil, service_version: nil return if Google::Cloud.configure.use_error_reporting == false service_name ||= Project.default_service_name service_version ||= Project.default_service_version error_event = ErrorEvent.from_exception(exception).tap do |event| event.service_name = service_name event.service_version = service_version end yield error_event if block_given? default_client.report error_event end |