google-cloud-error_reporting 0.24.0 → 0.25.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +87 -60
- data/lib/google-cloud-error_reporting.rb +93 -5
- data/lib/google/cloud/error_reporting.rb +238 -0
- data/lib/google/cloud/error_reporting/credentials.rb +41 -0
- data/lib/google/cloud/error_reporting/error_event.rb +313 -0
- data/lib/google/cloud/error_reporting/middleware.rb +84 -183
- data/lib/google/cloud/error_reporting/project.rb +224 -0
- data/lib/google/cloud/error_reporting/rails.rb +97 -127
- data/lib/google/cloud/error_reporting/service.rb +118 -0
- data/lib/google/cloud/error_reporting/version.rb +22 -0
- metadata +61 -13
@@ -0,0 +1,118 @@
|
|
1
|
+
# Copyright 2017 Google Inc. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0oud
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
|
16
|
+
require "google/cloud/errors"
|
17
|
+
require "google/cloud/error_reporting/version"
|
18
|
+
require "google/cloud/error_reporting/v1beta1"
|
19
|
+
require "google/gax/errors"
|
20
|
+
|
21
|
+
module Google
|
22
|
+
module Cloud
|
23
|
+
module ErrorReporting
|
24
|
+
##
|
25
|
+
# @private Represents the gRPC Error Reporting service, including all the
|
26
|
+
# API methods.
|
27
|
+
class Service
|
28
|
+
attr_accessor :project, :credentials, :host, :timeout, :client_config
|
29
|
+
|
30
|
+
##
|
31
|
+
# Creates a new Service instance.
|
32
|
+
def initialize project, credentials,
|
33
|
+
host: nil, timeout: nil, client_config: nil
|
34
|
+
@project = project
|
35
|
+
@credentials = credentials
|
36
|
+
@host = host || V1beta1::ReportErrorsServiceClient::SERVICE_ADDRESS
|
37
|
+
@timeout = timeout
|
38
|
+
@client_config = client_config || {}
|
39
|
+
end
|
40
|
+
|
41
|
+
def channel
|
42
|
+
require "grpc"
|
43
|
+
GRPC::Core::Channel.new host, nil, chan_creds
|
44
|
+
end
|
45
|
+
|
46
|
+
def chan_creds
|
47
|
+
require "grpc"
|
48
|
+
return credentials if insecure?
|
49
|
+
GRPC::Core::ChannelCredentials.new.compose \
|
50
|
+
GRPC::Core::CallCredentials.new credentials.client.updater_proc
|
51
|
+
end
|
52
|
+
|
53
|
+
def insecure?
|
54
|
+
credentials == :this_channel_is_insecure
|
55
|
+
end
|
56
|
+
|
57
|
+
def error_reporting
|
58
|
+
return mocked_error_reporting if mocked_error_reporting
|
59
|
+
@error_reporting ||= \
|
60
|
+
V1beta1::ReportErrorsServiceClient.new(
|
61
|
+
service_path: host,
|
62
|
+
channel: channel,
|
63
|
+
timeout: timeout,
|
64
|
+
client_config: client_config,
|
65
|
+
lib_name: "gccl",
|
66
|
+
lib_version: Google::Cloud::ErrorReporting::VERSION
|
67
|
+
)
|
68
|
+
end
|
69
|
+
attr_accessor :mocked_error_reporting
|
70
|
+
|
71
|
+
##
|
72
|
+
# Report a {Google::Cloud::ErrorReporting::ErrorEvent} to Stackdriver
|
73
|
+
# Error Reporting service.
|
74
|
+
#
|
75
|
+
# @example
|
76
|
+
# require "google/cloud/error_reporting"
|
77
|
+
#
|
78
|
+
# error_reporting = Google::Cloud::ErrorReporting.new
|
79
|
+
#
|
80
|
+
# error_event =
|
81
|
+
# error_reporting.error_event "Error Message with Backtrace",
|
82
|
+
# timestamp: Time.now,
|
83
|
+
# service_name: "my_app_name",
|
84
|
+
# service_version: "v8",
|
85
|
+
# user: "johndoh",
|
86
|
+
# file_path: "MyController.rb",
|
87
|
+
# line_number: 123,
|
88
|
+
# function_name: "index"
|
89
|
+
# error_reporting.report error_event
|
90
|
+
#
|
91
|
+
def report error_event
|
92
|
+
if error_event.message.nil? || error_event.message.empty?
|
93
|
+
fail ArgumentError, "Cannot report empty message"
|
94
|
+
end
|
95
|
+
|
96
|
+
error_event_grpc = error_event.to_grpc
|
97
|
+
|
98
|
+
execute do
|
99
|
+
error_reporting.report_error_event project_path, error_event_grpc
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
protected
|
104
|
+
|
105
|
+
def project_path
|
106
|
+
V1beta1::ReportErrorsServiceClient.project_path project
|
107
|
+
end
|
108
|
+
|
109
|
+
def execute
|
110
|
+
yield
|
111
|
+
rescue Google::Gax::GaxError => e
|
112
|
+
# GaxError wraps BadStatus, but exposes it as #cause
|
113
|
+
raise Google::Cloud::Error.from_error(e.cause)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Copyright 2017 Google Inc. All rights reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
|
16
|
+
module Google
|
17
|
+
module Cloud
|
18
|
+
module ErrorReporting
|
19
|
+
VERSION = "0.25.0".freeze
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-error_reporting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.25.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-cloud-core
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: stackdriver-core
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.1'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.1'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: google-gax
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,7 +123,7 @@ dependencies:
|
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: 0.35.1
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
126
|
+
name: railties
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
129
|
- - "~>"
|
@@ -123,33 +137,61 @@ dependencies:
|
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '4.0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
140
|
+
name: rack
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0.1'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.1'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: simplecov
|
127
155
|
requirement: !ruby/object:Gem::Requirement
|
128
156
|
requirements:
|
129
157
|
- - "~>"
|
130
158
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
159
|
+
version: '0.9'
|
132
160
|
type: :development
|
133
161
|
prerelease: false
|
134
162
|
version_requirements: !ruby/object:Gem::Requirement
|
135
163
|
requirements:
|
136
164
|
- - "~>"
|
137
165
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
166
|
+
version: '0.9'
|
139
167
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
168
|
+
name: yard
|
141
169
|
requirement: !ruby/object:Gem::Requirement
|
142
170
|
requirements:
|
143
|
-
- - "
|
171
|
+
- - "~>"
|
144
172
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0.
|
173
|
+
version: '0.9'
|
146
174
|
type: :development
|
147
175
|
prerelease: false
|
148
176
|
version_requirements: !ruby/object:Gem::Requirement
|
149
177
|
requirements:
|
150
|
-
- - "
|
178
|
+
- - "~>"
|
151
179
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0.
|
180
|
+
version: '0.9'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: yard-doctest
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "<="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 0.1.8
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "<="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 0.1.8
|
153
195
|
description: google-cloud-error_reporting is the official library for Stackdriver
|
154
196
|
Error Reporting.
|
155
197
|
email:
|
@@ -162,8 +204,13 @@ files:
|
|
162
204
|
- LICENSE
|
163
205
|
- README.md
|
164
206
|
- lib/google-cloud-error_reporting.rb
|
207
|
+
- lib/google/cloud/error_reporting.rb
|
208
|
+
- lib/google/cloud/error_reporting/credentials.rb
|
209
|
+
- lib/google/cloud/error_reporting/error_event.rb
|
165
210
|
- lib/google/cloud/error_reporting/middleware.rb
|
211
|
+
- lib/google/cloud/error_reporting/project.rb
|
166
212
|
- lib/google/cloud/error_reporting/rails.rb
|
213
|
+
- lib/google/cloud/error_reporting/service.rb
|
167
214
|
- lib/google/cloud/error_reporting/v1beta1.rb
|
168
215
|
- lib/google/cloud/error_reporting/v1beta1/doc/google/devtools/clouderrorreporting/v1beta1/common.rb
|
169
216
|
- lib/google/cloud/error_reporting/v1beta1/doc/google/devtools/clouderrorreporting/v1beta1/error_stats_service.rb
|
@@ -176,6 +223,7 @@ files:
|
|
176
223
|
- lib/google/cloud/error_reporting/v1beta1/error_stats_service_client_config.json
|
177
224
|
- lib/google/cloud/error_reporting/v1beta1/report_errors_service_client.rb
|
178
225
|
- lib/google/cloud/error_reporting/v1beta1/report_errors_service_client_config.json
|
226
|
+
- lib/google/cloud/error_reporting/version.rb
|
179
227
|
- lib/google/devtools/clouderrorreporting/v1beta1/common_pb.rb
|
180
228
|
- lib/google/devtools/clouderrorreporting/v1beta1/error_group_service_pb.rb
|
181
229
|
- lib/google/devtools/clouderrorreporting/v1beta1/error_group_service_services_pb.rb
|
@@ -183,7 +231,7 @@ files:
|
|
183
231
|
- lib/google/devtools/clouderrorreporting/v1beta1/error_stats_service_services_pb.rb
|
184
232
|
- lib/google/devtools/clouderrorreporting/v1beta1/report_errors_service_pb.rb
|
185
233
|
- lib/google/devtools/clouderrorreporting/v1beta1/report_errors_service_services_pb.rb
|
186
|
-
homepage:
|
234
|
+
homepage: https://github.com/GoogleCloudPlatform/google-cloud-ruby/tree/master/google-cloud-error_reporting
|
187
235
|
licenses:
|
188
236
|
- Apache-2.0
|
189
237
|
metadata: {}
|
@@ -203,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
203
251
|
version: '0'
|
204
252
|
requirements: []
|
205
253
|
rubyforge_project:
|
206
|
-
rubygems_version: 2.6.
|
254
|
+
rubygems_version: 2.6.12
|
207
255
|
signing_key:
|
208
256
|
specification_version: 4
|
209
257
|
summary: API Client library for Stackdriver Error Reporting
|