stackdriver-core 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/LICENSE +2 -2
- data/lib/stackdriver-core.rb +2 -2
- data/lib/stackdriver/core.rb +3 -3
- data/lib/stackdriver/core/async_actor.rb +5 -6
- data/lib/stackdriver/core/configuration.rb +6 -109
- data/lib/stackdriver/core/trace_context.rb +22 -24
- data/lib/stackdriver/core/version.rb +3 -3
- metadata +21 -8
- data/lib/google/cloud/configuration.rb +0 -63
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6c6ef552f209b36ad5abc3ccbad6df179289ce5632b031fe33380aeea6dd695d
|
4
|
+
data.tar.gz: 4cfb1f1ff935e105789df3d93420cf788a08acf7939b6c7b5f1fc8eca4083b86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af74f8cd44085dad4f62c112ad2c0d7ef041583e04f4b4d575a16c01b6308258b98ab91468b9a7fec9305dfa0433bf063c3c7ecf3bb7c7ed19a2c9a4ea35bc94
|
7
|
+
data.tar.gz: 82d6b7a67de239556611a318aa979deba3efeba24bc300b68ca000e4837ab98395afa52b9535a04b52cab676730c2ceb0b209627b280f77b470fda6ad049a079
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Apache License
|
2
2
|
Version 2.0, January 2004
|
3
|
-
|
3
|
+
https://www.apache.org/licenses/
|
4
4
|
|
5
5
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
6
6
|
|
@@ -192,7 +192,7 @@
|
|
192
192
|
you may not use this file except in compliance with the License.
|
193
193
|
You may obtain a copy of the License at
|
194
194
|
|
195
|
-
|
195
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
196
196
|
|
197
197
|
Unless required by applicable law or agreed to in writing, software
|
198
198
|
distributed under the License is distributed on an "AS IS" BASIS,
|
data/lib/stackdriver-core.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
# Copyright 2016 Google
|
1
|
+
# Copyright 2016 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
5
5
|
# You may obtain a copy of the License at
|
6
6
|
#
|
7
|
-
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
8
|
#
|
9
9
|
# Unless required by applicable law or agreed to in writing, software
|
10
10
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
data/lib/stackdriver/core.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
# Copyright 2016 Google
|
1
|
+
# Copyright 2016 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
5
5
|
# You may obtain a copy of the License at
|
6
6
|
#
|
7
|
-
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
8
|
#
|
9
9
|
# Unless required by applicable law or agreed to in writing, software
|
10
10
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
@@ -13,7 +13,7 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
|
16
|
-
require "
|
16
|
+
require "stackdriver/core/configuration"
|
17
17
|
require "stackdriver/core/async_actor"
|
18
18
|
require "stackdriver/core/configuration"
|
19
19
|
require "stackdriver/core/trace_context"
|
@@ -1,10 +1,10 @@
|
|
1
|
-
# Copyright 2017 Google
|
1
|
+
# Copyright 2017 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
5
5
|
# You may obtain a copy of the License at
|
6
6
|
#
|
7
|
-
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
8
|
#
|
9
9
|
# Unless required by applicable law or agreed to in writing, software
|
10
10
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
@@ -228,7 +228,7 @@ module Stackdriver
|
|
228
228
|
# This should be the main task job that will be run asynchronously and
|
229
229
|
# repeatly.
|
230
230
|
def run_backgrounder
|
231
|
-
|
231
|
+
raise "#{self.class} class should override #run_backgrounder method"
|
232
232
|
end
|
233
233
|
|
234
234
|
##
|
@@ -302,7 +302,7 @@ module Stackdriver
|
|
302
302
|
# to run async_run_job. Also make calls register_for_cleanup on the
|
303
303
|
# async job to make sure it exits properly.
|
304
304
|
def ensure_thread
|
305
|
-
|
305
|
+
raise "async_actor not initialized" if @startup_lock.nil?
|
306
306
|
@startup_lock.synchronize do
|
307
307
|
if (@thread.nil? || !@thread.alive?) && @async_state != :stopped
|
308
308
|
@lock_cond = new_cond
|
@@ -352,8 +352,7 @@ module Stackdriver
|
|
352
352
|
# @private Default abstract definition of this function that's a no-op.
|
353
353
|
# The extending classes can override this method to handle state changing
|
354
354
|
# logic.
|
355
|
-
def on_async_state_change
|
356
|
-
end
|
355
|
+
def on_async_state_change; end
|
357
356
|
end
|
358
357
|
end
|
359
358
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
# Copyright 2017 Google
|
1
|
+
# Copyright 2017 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
5
5
|
# You may obtain a copy of the License at
|
6
6
|
#
|
7
|
-
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
8
|
#
|
9
9
|
# Unless required by applicable law or agreed to in writing, software
|
10
10
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
@@ -13,115 +13,12 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
|
16
|
+
require "google/cloud/config"
|
17
|
+
|
16
18
|
module Stackdriver
|
17
19
|
module Core
|
18
20
|
##
|
19
|
-
#
|
20
|
-
|
21
|
-
# predefined category keys, then only allows getting and setting these
|
22
|
-
# predefined options.
|
23
|
-
#
|
24
|
-
# @example
|
25
|
-
# nested_categories = [:cat1, {cat2: [:cat3]}]
|
26
|
-
# config = Stackdriver::Core::Configuration.new nested_categories
|
27
|
-
#
|
28
|
-
# config.opt1 #=> nil
|
29
|
-
# config.opt1 = true #=> true
|
30
|
-
# config.opt1 #=> true
|
31
|
-
#
|
32
|
-
# config.cat1 #=> <Stackdriver::Core::Configuration>
|
33
|
-
# config.cat2.cat3 #=> <Stackdriver::Core::Configuration>
|
34
|
-
#
|
35
|
-
class Configuration
|
36
|
-
##
|
37
|
-
# Constructs a new instance of Configuration object.
|
38
|
-
#
|
39
|
-
# @param [Symbol, Array<Symbol, Hash>, Hash<Symbol, (Array, Hash)>]
|
40
|
-
# categories A Symbol, or nested Array and Hash of sub configuration
|
41
|
-
# categories. A single symbol, or symbols in array, will be key(s) to
|
42
|
-
# next level of categories. Nested hash represent sub categories with
|
43
|
-
# further nested sub categories.
|
44
|
-
#
|
45
|
-
def initialize categories = {}
|
46
|
-
@configs = {}
|
47
|
-
|
48
|
-
add_options categories
|
49
|
-
end
|
50
|
-
|
51
|
-
##
|
52
|
-
# Add nested sub configuration categories to a Configuration object
|
53
|
-
#
|
54
|
-
# @param [Symbol, Array<Symbol, Hash>, Hash<Symbol, (Array, Hash)>]
|
55
|
-
# categories A Symbol, or nested Array and Hash of sub configuration
|
56
|
-
# categories. A single symbol, or symbols in array, will be key(s) to
|
57
|
-
# next level of categories. Nested hash represent sub categories with
|
58
|
-
# further nested sub categories.
|
59
|
-
#
|
60
|
-
# @example
|
61
|
-
# config = Stackdriver::Core::Configuration.new
|
62
|
-
# config.cat1 #=> nil
|
63
|
-
# config.add_options {cat1: [:cat2]}
|
64
|
-
# config.cat1 #=> <Stackdriver::Core::Configuration>
|
65
|
-
# config.cat1.cat2 #=> <Stackdriver::Core::Configuration>
|
66
|
-
#
|
67
|
-
def add_options categories
|
68
|
-
categories = [categories].flatten(1)
|
69
|
-
categories.each do |sub_key|
|
70
|
-
case sub_key
|
71
|
-
when Symbol
|
72
|
-
self[sub_key] = self.class.new
|
73
|
-
when Hash
|
74
|
-
sub_key.each do |k, v|
|
75
|
-
self[k] = self.class.new v
|
76
|
-
end
|
77
|
-
else
|
78
|
-
fail ArgumentError \
|
79
|
-
"Configuration option can only be Symbol or Hash"
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
##
|
85
|
-
# Assign an option with `key` to value, while forcing `key` to be a
|
86
|
-
# Symbol.
|
87
|
-
def []= key, value
|
88
|
-
@configs[key.to_sym] = value
|
89
|
-
end
|
90
|
-
|
91
|
-
##
|
92
|
-
# Get the option with `key`, while forcing `key` to be a Symbol.
|
93
|
-
def [] key
|
94
|
-
@configs[key.to_sym]
|
95
|
-
end
|
96
|
-
|
97
|
-
##
|
98
|
-
# Delete the option with `key`, while forcing `key` to be a Symbol.
|
99
|
-
def delete key
|
100
|
-
@configs.delete key.to_sym
|
101
|
-
end
|
102
|
-
|
103
|
-
##
|
104
|
-
# Check if the Configuration object has this option
|
105
|
-
#
|
106
|
-
# @param [Symbol] key The key to check for.
|
107
|
-
#
|
108
|
-
# @return [Boolean] True if the inquired key is a valid option for this
|
109
|
-
# Configuration object. False otherwise.
|
110
|
-
#
|
111
|
-
def option? key
|
112
|
-
@configs.key? key.to_sym
|
113
|
-
end
|
114
|
-
|
115
|
-
##
|
116
|
-
# @private Dynamic getters and setters
|
117
|
-
def method_missing mid, *args
|
118
|
-
method_string = mid.to_s
|
119
|
-
if method_string.chomp!("=")
|
120
|
-
self[method_string] = args.first
|
121
|
-
else
|
122
|
-
self[mid]
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
21
|
+
# Keep this for backwards compatibility
|
22
|
+
Configuration = Google::Cloud::Config
|
126
23
|
end
|
127
24
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
# Copyright 2016 Google
|
1
|
+
# Copyright 2016 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
5
5
|
# You may obtain a copy of the License at
|
6
6
|
#
|
7
|
-
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
8
|
#
|
9
9
|
# Unless required by applicable law or agreed to in writing, software
|
10
10
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
@@ -29,11 +29,11 @@ module Stackdriver
|
|
29
29
|
class TraceContext
|
30
30
|
##
|
31
31
|
# @private
|
32
|
-
HEADER_RACK_KEY = "HTTP_X_CLOUD_TRACE_CONTEXT"
|
32
|
+
HEADER_RACK_KEY = "HTTP_X_CLOUD_TRACE_CONTEXT".freeze
|
33
33
|
|
34
34
|
##
|
35
35
|
# @private
|
36
|
-
MEMO_RACK_KEY = "google.cloud.trace_context"
|
36
|
+
MEMO_RACK_KEY = "google.cloud.trace_context".freeze
|
37
37
|
|
38
38
|
##
|
39
39
|
# @private
|
@@ -70,11 +70,11 @@ module Stackdriver
|
|
70
70
|
def initialize trace_id: nil, is_new: nil, span_id: nil, sampled: nil,
|
71
71
|
capture_stack: false
|
72
72
|
@trace_id = trace_id || new_random_trace_id
|
73
|
-
if is_new.nil?
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
73
|
+
@is_new = if is_new.nil?
|
74
|
+
!trace_id
|
75
|
+
else
|
76
|
+
is_new ? true : false
|
77
|
+
end
|
78
78
|
@span_id = span_id ? span_id.to_i : nil
|
79
79
|
@sampled = sampled
|
80
80
|
if @sampled.nil?
|
@@ -145,7 +145,7 @@ module Stackdriver
|
|
145
145
|
sampled? == other.sampled? &&
|
146
146
|
capture_stack? == other.capture_stack?
|
147
147
|
end
|
148
|
-
|
148
|
+
alias == eql?
|
149
149
|
|
150
150
|
##
|
151
151
|
# Generate standard hash code for this object.
|
@@ -206,7 +206,7 @@ module Stackdriver
|
|
206
206
|
end
|
207
207
|
str
|
208
208
|
end
|
209
|
-
|
209
|
+
alias to_s to_string
|
210
210
|
|
211
211
|
##
|
212
212
|
# Attempts to parse the given string as a trace context representation.
|
@@ -226,21 +226,19 @@ module Stackdriver
|
|
226
226
|
#
|
227
227
|
def self.parse_string str
|
228
228
|
match = %r|^(\w{32})(/(\d+))?(;o=(\d+))?|.match str
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
sampled = options & 1 != 0
|
237
|
-
capture_stack = options & 2 != 0
|
238
|
-
end
|
239
|
-
new trace_id: trace_id, span_id: span_id, sampled: sampled,
|
240
|
-
capture_stack: capture_stack
|
229
|
+
return unless match
|
230
|
+
|
231
|
+
trace_id = match[1]
|
232
|
+
span_id = match[3] ? match[3].to_i : nil
|
233
|
+
options = match[5] ? match[5].to_i : nil
|
234
|
+
if options.nil?
|
235
|
+
sampled = capture_stack = nil
|
241
236
|
else
|
242
|
-
|
237
|
+
sampled = options & 1 != 0
|
238
|
+
capture_stack = options & 2 != 0
|
243
239
|
end
|
240
|
+
new trace_id: trace_id, span_id: span_id, sampled: sampled,
|
241
|
+
capture_stack: capture_stack
|
244
242
|
end
|
245
243
|
|
246
244
|
##
|
@@ -1,10 +1,10 @@
|
|
1
|
-
# Copyright 2016 Google
|
1
|
+
# Copyright 2016 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
5
5
|
# You may obtain a copy of the License at
|
6
6
|
#
|
7
|
-
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
8
|
#
|
9
9
|
# Unless required by applicable law or agreed to in writing, software
|
10
10
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
@@ -15,6 +15,6 @@
|
|
15
15
|
|
16
16
|
module Stackdriver
|
17
17
|
module Core
|
18
|
-
VERSION = "1.
|
18
|
+
VERSION = "1.3.0".freeze
|
19
19
|
end
|
20
20
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stackdriver-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Azuma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: google-cloud-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.2'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: minitest
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,16 +98,16 @@ dependencies:
|
|
84
98
|
name: rubocop
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- - "
|
101
|
+
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
103
|
+
version: 0.50.0
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- - "
|
108
|
+
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
110
|
+
version: 0.50.0
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: simplecov
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -147,7 +161,6 @@ files:
|
|
147
161
|
- ".yardopts"
|
148
162
|
- LICENSE
|
149
163
|
- README.md
|
150
|
-
- lib/google/cloud/configuration.rb
|
151
164
|
- lib/stackdriver-core.rb
|
152
165
|
- lib/stackdriver/core.rb
|
153
166
|
- lib/stackdriver/core/async_actor.rb
|
@@ -174,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
187
|
version: '0'
|
175
188
|
requirements: []
|
176
189
|
rubyforge_project:
|
177
|
-
rubygems_version: 2.6
|
190
|
+
rubygems_version: 2.7.6
|
178
191
|
signing_key:
|
179
192
|
specification_version: 4
|
180
193
|
summary: Internal shared library for Ruby Stackdriver integration
|
@@ -1,63 +0,0 @@
|
|
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
|
-
require "stackdriver/core/configuration"
|
17
|
-
|
18
|
-
module Google
|
19
|
-
module Cloud
|
20
|
-
##
|
21
|
-
# @private Defines Google::Cloud.configure method. This will be the root
|
22
|
-
# configuration object shared by Stackdriver instrumentation libraries'
|
23
|
-
# configurations.
|
24
|
-
module Configuration
|
25
|
-
##
|
26
|
-
# @private The shared Configuration object that all the Stackdriver
|
27
|
-
# instrumentation libraries will build on top of.
|
28
|
-
@@config = ::Stackdriver::Core::Configuration.new
|
29
|
-
|
30
|
-
##
|
31
|
-
# Configure the default parameter for Google::Cloud. The values defined on
|
32
|
-
# this top level will be shared across all Stackdriver instrumentation
|
33
|
-
# libraries (Debugger, ErrorReporting, Logging, and Trace). These other
|
34
|
-
# libraries may also add sub configuration options under this.
|
35
|
-
#
|
36
|
-
# Possible configuration parameters:
|
37
|
-
# * project_id: The Google Cloud Project ID. Automatically discovered
|
38
|
-
# when running from GCP environments.
|
39
|
-
# * keyfile: The service account JSON file path. Automatically
|
40
|
-
# discovered when running from GCP environments.
|
41
|
-
# * use_debugger: Explicitly enable or disable Stackdriver Debugger
|
42
|
-
# instrumentation
|
43
|
-
# * use_error_reporting: Explicitly enable or disable Stackdriver Error
|
44
|
-
# Reporting instrumentation
|
45
|
-
# * use_logging: Explicitly enable or disable Stackdriver Logging
|
46
|
-
# instrumentation
|
47
|
-
# * use_trace: Explicitly enable or disable Stackdriver
|
48
|
-
#
|
49
|
-
# @return [Stackdriver::Core::Configuration] The configuration object
|
50
|
-
# the Google::Cloud module uses.
|
51
|
-
#
|
52
|
-
def configure
|
53
|
-
yield @@config if block_given?
|
54
|
-
|
55
|
-
@@config
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
# Immediately extend Google::Cloud::Configuration#configure
|
60
|
-
# into Google::Cloud.configure
|
61
|
-
extend Configuration
|
62
|
-
end
|
63
|
-
end
|