google-cloud-error_reporting 0.24.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|