istox 0.1.152.1.test3 → 0.1.152.1.test4
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/Gemfile.lock +23 -8
- data/istox.gemspec +1 -0
- data/lib/istox/helpers/grpc_client.rb +1 -13
- data/lib/istox/helpers/xray/grpc_client_xray_interceptor.rb +18 -0
- data/lib/istox/helpers/xray/grpc_server_xray_interceptor.rb +21 -0
- data/lib/istox/helpers/xray/rabbitmq_publisher_interceptor.rb +10 -0
- data/lib/istox/helpers/xray/rabbitmq_subscriber_interceptor.rb +10 -0
- data/lib/istox/helpers/xray/xray_initializer.rb +35 -0
- data/lib/istox/version.rb +1 -1
- data/lib/istox.rb +7 -0
- metadata +21 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 22172b2aecd51d7190552627a94affb11786127c3a02d0895a36560d5a372380
|
|
4
|
+
data.tar.gz: 30f072330cb82b023aeb7e17110a0f96d0b419ea4ea6d63f111c4d32a594678d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e13df624678c8cdb47aee17427564aca8349cde04fdaf209eeb22a0de96cbcca77987738050ba31b32f2fc5b0182aca2506a0f012dffd7b205f4da1893ac5691
|
|
7
|
+
data.tar.gz: 7e00d3da3058aea3ab84fdf6da015a0fbf867101c66931fb40db0448604081f6c92939c372a18a7cfca34155bfae4cbc3e2b6ae356f395b23dc29ee903e7c461
|
data/Gemfile.lock
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
istox (0.1.152)
|
|
4
|
+
istox (0.1.152.1.test2)
|
|
5
5
|
awesome_print
|
|
6
|
+
aws-xray-sdk
|
|
6
7
|
binding_of_caller
|
|
7
8
|
bunny (>= 2.12.0)
|
|
8
9
|
graphlient
|
|
@@ -65,8 +66,20 @@ GEM
|
|
|
65
66
|
arel (9.0.0)
|
|
66
67
|
awesome_print (1.8.0)
|
|
67
68
|
aws-eventstream (1.1.0)
|
|
68
|
-
aws-
|
|
69
|
+
aws-partitions (1.318.0)
|
|
70
|
+
aws-sdk-core (3.96.1)
|
|
71
|
+
aws-eventstream (~> 1, >= 1.0.2)
|
|
72
|
+
aws-partitions (~> 1, >= 1.239.0)
|
|
73
|
+
aws-sigv4 (~> 1.1)
|
|
74
|
+
jmespath (~> 1.0)
|
|
75
|
+
aws-sdk-xray (1.4.0)
|
|
76
|
+
aws-sdk-core (~> 3)
|
|
77
|
+
aws-sigv4 (~> 1.0)
|
|
78
|
+
aws-sigv4 (1.1.3)
|
|
69
79
|
aws-eventstream (~> 1.0, >= 1.0.2)
|
|
80
|
+
aws-xray-sdk (0.11.4)
|
|
81
|
+
aws-sdk-xray (~> 1.4.0)
|
|
82
|
+
multi_json (~> 1)
|
|
70
83
|
binding_of_caller (0.8.0)
|
|
71
84
|
debug_inspector (>= 0.0.1)
|
|
72
85
|
builder (3.2.4)
|
|
@@ -98,18 +111,18 @@ GEM
|
|
|
98
111
|
ffi (1.12.2)
|
|
99
112
|
globalid (0.4.2)
|
|
100
113
|
activesupport (>= 4.2.0)
|
|
101
|
-
google-protobuf (3.
|
|
114
|
+
google-protobuf (3.12.1)
|
|
102
115
|
googleapis-common-protos-types (1.0.5)
|
|
103
116
|
google-protobuf (~> 3.11)
|
|
104
117
|
graphlient (0.3.7)
|
|
105
118
|
faraday
|
|
106
119
|
faraday_middleware
|
|
107
120
|
graphql-client
|
|
108
|
-
graphql (1.10.
|
|
121
|
+
graphql (1.10.10)
|
|
109
122
|
graphql-client (0.16.0)
|
|
110
123
|
activesupport (>= 3.0)
|
|
111
124
|
graphql (~> 1.8)
|
|
112
|
-
grpc (1.28.0
|
|
125
|
+
grpc (1.28.0)
|
|
113
126
|
google-protobuf (~> 3.11)
|
|
114
127
|
googleapis-common-protos-types (~> 1.0)
|
|
115
128
|
grpc-tools (1.28.0)
|
|
@@ -128,6 +141,7 @@ GEM
|
|
|
128
141
|
grpc (~> 1.10)
|
|
129
142
|
grpc-tools (~> 1.10)
|
|
130
143
|
slop (~> 4.6)
|
|
144
|
+
jmespath (1.4.0)
|
|
131
145
|
listen (3.0.8)
|
|
132
146
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
133
147
|
rb-inotify (~> 0.9, >= 0.9.7)
|
|
@@ -143,12 +157,13 @@ GEM
|
|
|
143
157
|
mini_mime (1.0.1)
|
|
144
158
|
mini_portile2 (2.4.0)
|
|
145
159
|
minitest (5.14.0)
|
|
160
|
+
multi_json (1.14.1)
|
|
146
161
|
multipart-post (2.1.1)
|
|
147
162
|
nio4r (2.3.1)
|
|
148
163
|
nokogiri (1.10.9)
|
|
149
164
|
mini_portile2 (~> 2.4.0)
|
|
150
165
|
oj (3.10.6)
|
|
151
|
-
ougai (1.8.
|
|
166
|
+
ougai (1.8.5)
|
|
152
167
|
oj (~> 3.10)
|
|
153
168
|
paranoia (2.4.2)
|
|
154
169
|
activerecord (>= 4.0, < 6.1)
|
|
@@ -185,7 +200,7 @@ GEM
|
|
|
185
200
|
rake (>= 0.8.7)
|
|
186
201
|
thor (>= 0.19.0, < 2.0)
|
|
187
202
|
rake (10.5.0)
|
|
188
|
-
rb-fsevent (0.10.
|
|
203
|
+
rb-fsevent (0.10.4)
|
|
189
204
|
rb-inotify (0.10.1)
|
|
190
205
|
ffi (~> 1.0)
|
|
191
206
|
redis (4.1.3)
|
|
@@ -243,7 +258,7 @@ GEM
|
|
|
243
258
|
tzinfo (1.2.6)
|
|
244
259
|
thread_safe (~> 0.1)
|
|
245
260
|
uniform_notifier (1.11.0)
|
|
246
|
-
vault (0.13.
|
|
261
|
+
vault (0.13.2)
|
|
247
262
|
aws-sigv4
|
|
248
263
|
websocket-driver (0.7.0)
|
|
249
264
|
websocket-extensions (>= 0.1.0)
|
data/istox.gemspec
CHANGED
|
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
|
|
|
31
31
|
spec.require_paths = ['lib']
|
|
32
32
|
|
|
33
33
|
spec.add_dependency 'awesome_print'
|
|
34
|
+
spec.add_dependency 'aws-xray-sdk'
|
|
34
35
|
spec.add_dependency 'binding_of_caller'
|
|
35
36
|
spec.add_dependency 'bunny', '>= 2.12.0'
|
|
36
37
|
spec.add_dependency 'graphlient'
|
|
@@ -3,8 +3,6 @@ require 'istox/helpers/logger'
|
|
|
3
3
|
module Istox
|
|
4
4
|
class GrpcClient
|
|
5
5
|
class << self
|
|
6
|
-
attr_accessor :client_metadata_hook
|
|
7
|
-
|
|
8
6
|
def add_host(host_type, url)
|
|
9
7
|
@@hosts = {} unless defined?(@@hosts)
|
|
10
8
|
|
|
@@ -50,7 +48,7 @@ module Istox
|
|
|
50
48
|
log.info "Calling method in grpc method: #{method.inspect}, params: #{keyword_args.inspect}"
|
|
51
49
|
t1 = Time.now
|
|
52
50
|
|
|
53
|
-
result = get_host(host_type, service).call(method, keyword_args
|
|
51
|
+
result = get_host(host_type, service).call(method, keyword_args)
|
|
54
52
|
log.info "Time taken for grpc execution: #{Time.now - t1} seconds"
|
|
55
53
|
|
|
56
54
|
return_values = ::Istox::CommonHelper.to_open_struct(result.message)
|
|
@@ -96,16 +94,6 @@ module Istox
|
|
|
96
94
|
channel_args: default_channel_options
|
|
97
95
|
}
|
|
98
96
|
end
|
|
99
|
-
|
|
100
|
-
def client_metadata
|
|
101
|
-
return {} if @client_metadata_hook.blank?
|
|
102
|
-
|
|
103
|
-
unless @client_metadata_hook.methods.include?(:inject_metadata)
|
|
104
|
-
raise StandardError, 'Unable to find method .inject_metadata, have you forgotten to define it in your hook?'
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
@client_metadata_hook.inject_metadata
|
|
108
|
-
end
|
|
109
97
|
end
|
|
110
98
|
end
|
|
111
99
|
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require 'istox/helpers/logger'
|
|
2
|
+
require 'aws-xray-sdk'
|
|
3
|
+
|
|
4
|
+
module Istox
|
|
5
|
+
module Xray
|
|
6
|
+
class GrpcClientXrayInterceptor < ::Gruf::Interceptors::ClientInterceptor
|
|
7
|
+
def call(request_context:)
|
|
8
|
+
XRay.recorder.begin_subsegment name: "GrpcRequest.#{request_context.method}"
|
|
9
|
+
|
|
10
|
+
request_context.metadata[:xray_trace_id] = XRay.recorder.current_segment.trace_id
|
|
11
|
+
|
|
12
|
+
yield
|
|
13
|
+
|
|
14
|
+
XRay.recorder.end_subsegment
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'istox/helpers/logger'
|
|
2
|
+
require 'aws-xray-sdk'
|
|
3
|
+
|
|
4
|
+
module Istox
|
|
5
|
+
module Xray
|
|
6
|
+
class GrpcServerXrayInterceptor < ::Gruf::Interceptors::ServerInterceptor
|
|
7
|
+
def call
|
|
8
|
+
meta = request.active_call.metadata
|
|
9
|
+
trace_id = (meta['xray_trace_id'] if meta.present? && meta.key?('xray_trace_id'))
|
|
10
|
+
|
|
11
|
+
XRay.recorder.begin_segment("GrpcHandler.#{request.method_key}", trace_id: trace_id)
|
|
12
|
+
|
|
13
|
+
result = yield # this returns the protobuf message
|
|
14
|
+
|
|
15
|
+
XRay.recorder.end_segment
|
|
16
|
+
|
|
17
|
+
result
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'istox/helpers/logger'
|
|
2
|
+
require 'istox/helpers/xray/grpc_client_xray_interceptor'
|
|
3
|
+
require 'istox/helpers/xray/grpc_server_xray_interceptor'
|
|
4
|
+
require 'istox/helpers/xray/rabbitmq_publisher_interceptor'
|
|
5
|
+
require 'istox/helpers/xray/rabbitmq_subscriber_interceptor'
|
|
6
|
+
require 'istox/helpers/logger'
|
|
7
|
+
require 'aws-xray-sdk'
|
|
8
|
+
|
|
9
|
+
module Istox
|
|
10
|
+
module Xray
|
|
11
|
+
class XrayInitializer
|
|
12
|
+
class << self
|
|
13
|
+
## input gruf config to enable gruf/grpc tracing, eg. Gruf.configure do |config|
|
|
14
|
+
## set enable_rabbitmq_trace to enable rabbitmq tracing
|
|
15
|
+
def init(service_name, gruf_config: nil, enable_rabbitmq_trace: nil)
|
|
16
|
+
Rails.application.config.xray = {
|
|
17
|
+
# default segment name generated by XRay middleware
|
|
18
|
+
daemon_address: ENV['AWS_XRAY_DAEMON_ADDRESS'],
|
|
19
|
+
name: service_name,
|
|
20
|
+
patch: %I[net_http aws_sdk],
|
|
21
|
+
# record db transactions as subsegments
|
|
22
|
+
active_record: true
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if gruf_config.present?
|
|
26
|
+
gruf_config.interceptors.use(::Istox::Xray::GrpcServerXrayInterceptor)
|
|
27
|
+
::Istox::GrpcClient.add_interceptors(::Istox::Xray::GrpcClientXrayInterceptor)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
return unless enable_rabbitmq_trace == true
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
data/lib/istox/version.rb
CHANGED
data/lib/istox.rb
CHANGED
|
@@ -35,6 +35,13 @@ module Istox
|
|
|
35
35
|
require 'istox/helpers/redis'
|
|
36
36
|
require 'istox/helpers/dlm'
|
|
37
37
|
require 'istox/helpers/remote_model_cache'
|
|
38
|
+
|
|
39
|
+
require 'istox/helpers/xray/grpc_client_xray_interceptor'
|
|
40
|
+
require 'istox/helpers/xray/grpc_server_xray_interceptor'
|
|
41
|
+
require 'istox/helpers/xray/rabbitmq_publisher_interceptor'
|
|
42
|
+
require 'istox/helpers/xray/rabbitmq_subscriber_interceptor'
|
|
43
|
+
require 'istox/helpers/xray/xray_initializer'
|
|
44
|
+
|
|
38
45
|
require 'istox/models/blockchain_receipt'
|
|
39
46
|
require 'istox/models/concerns/blockchain_receipt_query'
|
|
40
47
|
require 'istox/consumers/blockchain_status_handler'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: istox
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.152.1.
|
|
4
|
+
version: 0.1.152.1.test4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Siong Leng
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-05-
|
|
11
|
+
date: 2020-05-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: awesome_print
|
|
@@ -24,6 +24,20 @@ dependencies:
|
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: aws-xray-sdk
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
27
41
|
- !ruby/object:Gem::Dependency
|
|
28
42
|
name: binding_of_caller
|
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -452,6 +466,11 @@ files:
|
|
|
452
466
|
- lib/istox/helpers/result_handler.rb
|
|
453
467
|
- lib/istox/helpers/subscriber.rb
|
|
454
468
|
- lib/istox/helpers/vault.rb
|
|
469
|
+
- lib/istox/helpers/xray/grpc_client_xray_interceptor.rb
|
|
470
|
+
- lib/istox/helpers/xray/grpc_server_xray_interceptor.rb
|
|
471
|
+
- lib/istox/helpers/xray/rabbitmq_publisher_interceptor.rb
|
|
472
|
+
- lib/istox/helpers/xray/rabbitmq_subscriber_interceptor.rb
|
|
473
|
+
- lib/istox/helpers/xray/xray_initializer.rb
|
|
455
474
|
- lib/istox/interfaces/chainhub/transaction.rb
|
|
456
475
|
- lib/istox/models/blockchain_receipt.rb
|
|
457
476
|
- lib/istox/models/concerns/blockchain_receipt_query.rb
|