google-cloud-logging 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +18 -0
  3. data/AUTHENTICATION.md +178 -0
  4. data/CHANGELOG.md +407 -0
  5. data/CODE_OF_CONDUCT.md +40 -0
  6. data/CONTRIBUTING.md +188 -0
  7. data/INSTRUMENTATION.md +71 -0
  8. data/LICENSE +201 -0
  9. data/LOGGING.md +32 -0
  10. data/OVERVIEW.md +321 -0
  11. data/TROUBLESHOOTING.md +31 -0
  12. data/lib/google-cloud-logging.rb +161 -0
  13. data/lib/google/cloud/logging.rb +188 -0
  14. data/lib/google/cloud/logging/async_writer.rb +513 -0
  15. data/lib/google/cloud/logging/convert.rb +70 -0
  16. data/lib/google/cloud/logging/credentials.rb +44 -0
  17. data/lib/google/cloud/logging/entry.rb +528 -0
  18. data/lib/google/cloud/logging/entry/http_request.rb +167 -0
  19. data/lib/google/cloud/logging/entry/list.rb +178 -0
  20. data/lib/google/cloud/logging/entry/operation.rb +91 -0
  21. data/lib/google/cloud/logging/entry/source_location.rb +85 -0
  22. data/lib/google/cloud/logging/errors.rb +101 -0
  23. data/lib/google/cloud/logging/log/list.rb +156 -0
  24. data/lib/google/cloud/logging/logger.rb +633 -0
  25. data/lib/google/cloud/logging/metric.rb +168 -0
  26. data/lib/google/cloud/logging/metric/list.rb +170 -0
  27. data/lib/google/cloud/logging/middleware.rb +307 -0
  28. data/lib/google/cloud/logging/project.rb +838 -0
  29. data/lib/google/cloud/logging/rails.rb +232 -0
  30. data/lib/google/cloud/logging/resource.rb +85 -0
  31. data/lib/google/cloud/logging/resource_descriptor.rb +137 -0
  32. data/lib/google/cloud/logging/resource_descriptor/list.rb +175 -0
  33. data/lib/google/cloud/logging/service.rb +239 -0
  34. data/lib/google/cloud/logging/sink.rb +315 -0
  35. data/lib/google/cloud/logging/sink/list.rb +168 -0
  36. data/lib/google/cloud/logging/version.rb +22 -0
  37. metadata +304 -0
@@ -0,0 +1,168 @@
1
+ # Copyright 2016 Google LLC
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
+ # https://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
+ require "delegate"
17
+
18
+ module Google
19
+ module Cloud
20
+ module Logging
21
+ class Sink
22
+ ##
23
+ # Sink::List is a special case Array with additional values.
24
+ class List < DelegateClass(::Array)
25
+ ##
26
+ # If not empty, indicates that there are more records that match
27
+ # the request and this value should be passed to continue.
28
+ attr_accessor :token
29
+
30
+ ##
31
+ # @private Create a new Sink::List with an array of Sink instances.
32
+ def initialize arr = []
33
+ super arr
34
+ end
35
+
36
+ ##
37
+ # Whether there is a next page of sinks.
38
+ #
39
+ # @return [Boolean]
40
+ #
41
+ # @example
42
+ # require "google/cloud/logging"
43
+ #
44
+ # logging = Google::Cloud::Logging.new
45
+ #
46
+ # sinks = logging.sinks
47
+ # if sinks.next?
48
+ # next_sinks = sinks.next
49
+ # end
50
+ #
51
+ def next?
52
+ !token.nil?
53
+ end
54
+
55
+ ##
56
+ # Retrieve the next page of sinks.
57
+ #
58
+ # @return [Sink::List]
59
+ #
60
+ # @example
61
+ # require "google/cloud/logging"
62
+ #
63
+ # logging = Google::Cloud::Logging.new
64
+ #
65
+ # sinks = logging.sinks
66
+ # if sinks.next?
67
+ # next_sinks = sinks.next
68
+ # end
69
+ #
70
+ def next
71
+ return nil unless next?
72
+ ensure_service!
73
+ list_grpc = @service.list_sinks token: token, max: @max
74
+ self.class.from_grpc list_grpc, @service, @max
75
+ end
76
+
77
+ ##
78
+ # Retrieves remaining results by repeatedly invoking {#next} until
79
+ # {#next?} returns `false`. Calls the given block once for each
80
+ # result, which is passed as the argument to the block.
81
+ #
82
+ # An Enumerator is returned if no block is given.
83
+ #
84
+ # This method will make repeated API calls until all remaining results
85
+ # are retrieved. (Unlike `#each`, for example, which merely iterates
86
+ # over the results returned by a single API call.) Use with caution.
87
+ #
88
+ # @param [Integer] request_limit The upper limit of API requests to
89
+ # make to load all sinks. Default is no limit.
90
+ # @yield [sink] The block for accessing each sink.
91
+ # @yieldparam [Sink] sink The sink object.
92
+ #
93
+ # @return [Enumerator]
94
+ #
95
+ # @example Iterating each sink by passing a block:
96
+ # require "google/cloud/logging"
97
+ #
98
+ # logging = Google::Cloud::Logging.new
99
+ # sinks = logging.sinks
100
+ #
101
+ # sinks.all do |sink|
102
+ # puts "#{sink.name}: #{sink.filter} -> #{sink.destination}"
103
+ # end
104
+ #
105
+ # @example Using the enumerator by not passing a block:
106
+ # require "google/cloud/logging"
107
+ #
108
+ # logging = Google::Cloud::Logging.new
109
+ # sinks = logging.sinks
110
+ #
111
+ # all_names = sinks.all.map do |sink|
112
+ # sink.name
113
+ # end
114
+ #
115
+ # @example Limit the number of API calls made:
116
+ # require "google/cloud/logging"
117
+ #
118
+ # logging = Google::Cloud::Logging.new
119
+ # sinks = logging.sinks
120
+ #
121
+ # sinks.all(request_limit: 10) do |sink|
122
+ # puts "#{sink.name}: #{sink.filter} -> #{sink.destination}"
123
+ # end
124
+ #
125
+ def all request_limit: nil
126
+ request_limit = request_limit.to_i if request_limit
127
+ unless block_given?
128
+ return enum_for :all, request_limit: request_limit
129
+ end
130
+ results = self
131
+ loop do
132
+ results.each { |r| yield r }
133
+ if request_limit
134
+ request_limit -= 1
135
+ break if request_limit < 0
136
+ end
137
+ break unless results.next?
138
+ results = results.next
139
+ end
140
+ end
141
+
142
+ ##
143
+ # @private New Sink::List from a
144
+ # Google::Cloud::Logging::V2::ListSinksResponse object.
145
+ def self.from_grpc grpc_list, service, max = nil
146
+ sinks = new(Array(grpc_list.sinks).map do |grpc|
147
+ Sink.from_grpc grpc, service
148
+ end)
149
+ token = grpc_list.next_page_token
150
+ token = nil if token == "".freeze
151
+ sinks.instance_variable_set :@token, token
152
+ sinks.instance_variable_set :@service, service
153
+ sinks.instance_variable_set :@max, max
154
+ sinks
155
+ end
156
+
157
+ protected
158
+
159
+ ##
160
+ # Raise an error unless an active service is available.
161
+ def ensure_service!
162
+ raise "Must have active service" unless @service
163
+ end
164
+ end
165
+ end
166
+ end
167
+ end
168
+ end
@@ -0,0 +1,22 @@
1
+ # Copyright 2016 Google LLC
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
+ # https://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 Logging
19
+ VERSION = "2.0.0".freeze
20
+ end
21
+ end
22
+ end
metadata ADDED
@@ -0,0 +1,304 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: google-cloud-logging
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Mike Moore
8
+ - Chris Smith
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2020-07-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: google-cloud-core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.5'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.5'
28
+ - !ruby/object:Gem::Dependency
29
+ name: google-cloud-logging-v2
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '0.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: stackdriver-core
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.3'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.3'
56
+ - !ruby/object:Gem::Dependency
57
+ name: concurrent-ruby
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.1'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.1'
70
+ - !ruby/object:Gem::Dependency
71
+ name: google-style
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: 1.24.0
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: 1.24.0
84
+ - !ruby/object:Gem::Dependency
85
+ name: minitest
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '5.14'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '5.14'
98
+ - !ruby/object:Gem::Dependency
99
+ name: minitest-autotest
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '1.0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '1.0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: minitest-focus
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '1.1'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '1.1'
126
+ - !ruby/object:Gem::Dependency
127
+ name: minitest-rg
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '5.2'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '5.2'
140
+ - !ruby/object:Gem::Dependency
141
+ name: autotest-suffix
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '1.1'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.1'
154
+ - !ruby/object:Gem::Dependency
155
+ name: redcarpet
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '3.0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '3.0'
168
+ - !ruby/object:Gem::Dependency
169
+ name: simplecov
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '0.9'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '0.9'
182
+ - !ruby/object:Gem::Dependency
183
+ name: yard
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '0.9'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: '0.9'
196
+ - !ruby/object:Gem::Dependency
197
+ name: yard-doctest
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: 0.1.13
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: 0.1.13
210
+ - !ruby/object:Gem::Dependency
211
+ name: railties
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - "~>"
215
+ - !ruby/object:Gem::Version
216
+ version: '5.0'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - "~>"
222
+ - !ruby/object:Gem::Version
223
+ version: '5.0'
224
+ - !ruby/object:Gem::Dependency
225
+ name: rack
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0.1'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0.1'
238
+ description: google-cloud-logging is the official library for Stackdriver Logging.
239
+ email:
240
+ - mike@blowmage.com
241
+ - quartzmo@gmail.com
242
+ executables: []
243
+ extensions: []
244
+ extra_rdoc_files: []
245
+ files:
246
+ - ".yardopts"
247
+ - AUTHENTICATION.md
248
+ - CHANGELOG.md
249
+ - CODE_OF_CONDUCT.md
250
+ - CONTRIBUTING.md
251
+ - INSTRUMENTATION.md
252
+ - LICENSE
253
+ - LOGGING.md
254
+ - OVERVIEW.md
255
+ - TROUBLESHOOTING.md
256
+ - lib/google-cloud-logging.rb
257
+ - lib/google/cloud/logging.rb
258
+ - lib/google/cloud/logging/async_writer.rb
259
+ - lib/google/cloud/logging/convert.rb
260
+ - lib/google/cloud/logging/credentials.rb
261
+ - lib/google/cloud/logging/entry.rb
262
+ - lib/google/cloud/logging/entry/http_request.rb
263
+ - lib/google/cloud/logging/entry/list.rb
264
+ - lib/google/cloud/logging/entry/operation.rb
265
+ - lib/google/cloud/logging/entry/source_location.rb
266
+ - lib/google/cloud/logging/errors.rb
267
+ - lib/google/cloud/logging/log/list.rb
268
+ - lib/google/cloud/logging/logger.rb
269
+ - lib/google/cloud/logging/metric.rb
270
+ - lib/google/cloud/logging/metric/list.rb
271
+ - lib/google/cloud/logging/middleware.rb
272
+ - lib/google/cloud/logging/project.rb
273
+ - lib/google/cloud/logging/rails.rb
274
+ - lib/google/cloud/logging/resource.rb
275
+ - lib/google/cloud/logging/resource_descriptor.rb
276
+ - lib/google/cloud/logging/resource_descriptor/list.rb
277
+ - lib/google/cloud/logging/service.rb
278
+ - lib/google/cloud/logging/sink.rb
279
+ - lib/google/cloud/logging/sink/list.rb
280
+ - lib/google/cloud/logging/version.rb
281
+ homepage: https://github.com/googleapis/google-cloud-ruby/tree/master/google-cloud-logging
282
+ licenses:
283
+ - Apache-2.0
284
+ metadata: {}
285
+ post_install_message:
286
+ rdoc_options: []
287
+ require_paths:
288
+ - lib
289
+ required_ruby_version: !ruby/object:Gem::Requirement
290
+ requirements:
291
+ - - ">="
292
+ - !ruby/object:Gem::Version
293
+ version: '2.4'
294
+ required_rubygems_version: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: '0'
299
+ requirements: []
300
+ rubygems_version: 3.1.3
301
+ signing_key:
302
+ specification_version: 4
303
+ summary: API Client library for Stackdriver Logging
304
+ test_files: []