rookout 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +12 -0
  3. data/bin/rookout +30 -0
  4. data/lib/rookout.rb +18 -0
  5. data/lib/rookout/augs/actions/action.rb +11 -0
  6. data/lib/rookout/augs/actions/action_run_processor.rb +29 -0
  7. data/lib/rookout/augs/aug.rb +121 -0
  8. data/lib/rookout/augs/aug_factory.rb +69 -0
  9. data/lib/rookout/augs/aug_rate_limiter.rb +96 -0
  10. data/lib/rookout/augs/augs_manager.rb +77 -0
  11. data/lib/rookout/augs/conditions/condition.rb +15 -0
  12. data/lib/rookout/augs/locations/location.rb +11 -0
  13. data/lib/rookout/augs/locations/location_file_line.rb +26 -0
  14. data/lib/rookout/com_ws/agent_com_ws.rb +221 -0
  15. data/lib/rookout/com_ws/backoff.rb +35 -0
  16. data/lib/rookout/com_ws/command_handler.rb +22 -0
  17. data/lib/rookout/com_ws/git.rb +53 -0
  18. data/lib/rookout/com_ws/information.rb +85 -0
  19. data/lib/rookout/com_ws/output.rb +135 -0
  20. data/lib/rookout/com_ws/token_bucket.rb +36 -0
  21. data/lib/rookout/config.rb +55 -0
  22. data/lib/rookout/exceptions.rb +140 -0
  23. data/lib/rookout/interface.rb +140 -0
  24. data/lib/rookout/logger.rb +158 -0
  25. data/lib/rookout/processor/namespace_serializer.rb +26 -0
  26. data/lib/rookout/processor/namespaces/container_namespace.rb +45 -0
  27. data/lib/rookout/processor/namespaces/frame_namespace.rb +65 -0
  28. data/lib/rookout/processor/namespaces/namespace.rb +28 -0
  29. data/lib/rookout/processor/namespaces/noop_namespace.rb +32 -0
  30. data/lib/rookout/processor/namespaces/ruby_object_namespace.rb +97 -0
  31. data/lib/rookout/processor/namespaces/ruby_object_serializer.rb +208 -0
  32. data/lib/rookout/processor/namespaces/ruby_utils_namespace.rb +65 -0
  33. data/lib/rookout/processor/namespaces/stack_namespace.rb +30 -0
  34. data/lib/rookout/processor/namespaces/traceback_namespace.rb +40 -0
  35. data/lib/rookout/processor/operations/operation.rb +11 -0
  36. data/lib/rookout/processor/operations/set_operation.rb +48 -0
  37. data/lib/rookout/processor/paths/arithmetic_path.rb +84 -0
  38. data/lib/rookout/processor/paths/canopy/actions.rb +184 -0
  39. data/lib/rookout/processor/paths/canopy/consts.rb +82 -0
  40. data/lib/rookout/processor/paths/canopy/maps.rb +2837 -0
  41. data/lib/rookout/processor/paths/canopy/markers.rb +186 -0
  42. data/lib/rookout/processor/paths/path.rb +15 -0
  43. data/lib/rookout/processor/processor.rb +34 -0
  44. data/lib/rookout/processor/processor_factory.rb +23 -0
  45. data/lib/rookout/processor/rook_error.rb +45 -0
  46. data/lib/rookout/protobuf/.gitignore +0 -0
  47. data/lib/rookout/protobuf/agent_info_pb.rb +68 -0
  48. data/lib/rookout/protobuf/controller_info_pb.rb +29 -0
  49. data/lib/rookout/protobuf/envelope_pb.rb +21 -0
  50. data/lib/rookout/protobuf/messages_pb.rb +189 -0
  51. data/lib/rookout/protobuf/variant_pb.rb +139 -0
  52. data/lib/rookout/rookout_singleton.rb +73 -0
  53. data/lib/rookout/services/position.rb +163 -0
  54. data/lib/rookout/services/tracer.rb +83 -0
  55. data/lib/rookout/trigger_services.rb +34 -0
  56. data/lib/rookout/user_warnings.rb +25 -0
  57. data/lib/rookout/version.rb +4 -0
  58. metadata +269 -0
@@ -0,0 +1,34 @@
1
+ module Rookout
2
+ require_relative "services/tracer"
3
+ require_relative "services/position"
4
+
5
+ class TriggerServices
6
+ def initialize
7
+ super
8
+
9
+ @services = {}
10
+ end
11
+
12
+ def get_service name
13
+ @services[name]
14
+ end
15
+
16
+ def remove_aug aug_id
17
+ @services.each_value { |service| service.remove_aug aug_id }
18
+ end
19
+
20
+ def clear_augs aug_id
21
+ @services.each_value { |service| service.clear_augs aug_id }
22
+ end
23
+
24
+ def start
25
+ @services["tracer"] = Services::Tracer.new
26
+ @services["position"] = Services::PositionResolver.new @services["tracer"]
27
+ end
28
+
29
+ def close
30
+ @services.each_value(&:close)
31
+ @services = {}
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,25 @@
1
+ module Rookout
2
+ module UserWarnings
3
+ TLS_KEY = :ROOKOUT_USER_WARNINGS
4
+
5
+ def with aug, &block
6
+ thread = Thread.current
7
+ begin
8
+ thread[TLS_KEY] = aug
9
+ block.call
10
+ ensure
11
+ thread[:ROOKOUT_USER_WARNINGS] = nil
12
+ end
13
+ end
14
+
15
+ def notify_warning error
16
+ aug = Thread.current[TLS_KEY]
17
+ aug.notify_warning error unless aug.nil?
18
+ end
19
+
20
+ def notify_error error
21
+ aug = Thread.current[TLS_KEY]
22
+ aug.notify_error error unless aug.nil?
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,4 @@
1
+ module Rookout
2
+ VERSION = "0.1.0".freeze
3
+ COMMIT = "CommitGoesHere".freeze
4
+ end
metadata ADDED
@@ -0,0 +1,269 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rookout
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Liran Haimovitch
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-11-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: binding_of_caller
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: concurrent-ruby
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'
41
+ - !ruby/object:Gem::Dependency
42
+ name: kontena-websocket-client
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: google-protobuf
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.13.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.13.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: event_emitter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.2.6
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.6
83
+ - !ruby/object:Gem::Dependency
84
+ name: google-style
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.24.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.24.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: minitest
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '5.14'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '5.14'
111
+ - !ruby/object:Gem::Dependency
112
+ name: minitest-autotest
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: minitest-focus
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.1'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.1'
139
+ - !ruby/object:Gem::Dependency
140
+ name: minitest-rg
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '5.2'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '5.2'
153
+ - !ruby/object:Gem::Dependency
154
+ name: autotest-suffix
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '1.1'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '1.1'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rake-compiler
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '1.0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '1.0'
181
+ description: rookout is the Ruby SDK for the Rookout Debugging Platform
182
+ email:
183
+ - support@rookout.com
184
+ executables:
185
+ - rookout
186
+ extensions: []
187
+ extra_rdoc_files: []
188
+ files:
189
+ - LICENSE
190
+ - bin/rookout
191
+ - lib/rookout.rb
192
+ - lib/rookout/augs/actions/action.rb
193
+ - lib/rookout/augs/actions/action_run_processor.rb
194
+ - lib/rookout/augs/aug.rb
195
+ - lib/rookout/augs/aug_factory.rb
196
+ - lib/rookout/augs/aug_rate_limiter.rb
197
+ - lib/rookout/augs/augs_manager.rb
198
+ - lib/rookout/augs/conditions/condition.rb
199
+ - lib/rookout/augs/locations/location.rb
200
+ - lib/rookout/augs/locations/location_file_line.rb
201
+ - lib/rookout/com_ws/agent_com_ws.rb
202
+ - lib/rookout/com_ws/backoff.rb
203
+ - lib/rookout/com_ws/command_handler.rb
204
+ - lib/rookout/com_ws/git.rb
205
+ - lib/rookout/com_ws/information.rb
206
+ - lib/rookout/com_ws/output.rb
207
+ - lib/rookout/com_ws/token_bucket.rb
208
+ - lib/rookout/config.rb
209
+ - lib/rookout/exceptions.rb
210
+ - lib/rookout/interface.rb
211
+ - lib/rookout/logger.rb
212
+ - lib/rookout/processor/namespace_serializer.rb
213
+ - lib/rookout/processor/namespaces/container_namespace.rb
214
+ - lib/rookout/processor/namespaces/frame_namespace.rb
215
+ - lib/rookout/processor/namespaces/namespace.rb
216
+ - lib/rookout/processor/namespaces/noop_namespace.rb
217
+ - lib/rookout/processor/namespaces/ruby_object_namespace.rb
218
+ - lib/rookout/processor/namespaces/ruby_object_serializer.rb
219
+ - lib/rookout/processor/namespaces/ruby_utils_namespace.rb
220
+ - lib/rookout/processor/namespaces/stack_namespace.rb
221
+ - lib/rookout/processor/namespaces/traceback_namespace.rb
222
+ - lib/rookout/processor/operations/operation.rb
223
+ - lib/rookout/processor/operations/set_operation.rb
224
+ - lib/rookout/processor/paths/arithmetic_path.rb
225
+ - lib/rookout/processor/paths/canopy/actions.rb
226
+ - lib/rookout/processor/paths/canopy/consts.rb
227
+ - lib/rookout/processor/paths/canopy/maps.rb
228
+ - lib/rookout/processor/paths/canopy/markers.rb
229
+ - lib/rookout/processor/paths/path.rb
230
+ - lib/rookout/processor/processor.rb
231
+ - lib/rookout/processor/processor_factory.rb
232
+ - lib/rookout/processor/rook_error.rb
233
+ - lib/rookout/protobuf/.gitignore
234
+ - lib/rookout/protobuf/agent_info_pb.rb
235
+ - lib/rookout/protobuf/controller_info_pb.rb
236
+ - lib/rookout/protobuf/envelope_pb.rb
237
+ - lib/rookout/protobuf/messages_pb.rb
238
+ - lib/rookout/protobuf/variant_pb.rb
239
+ - lib/rookout/rookout_singleton.rb
240
+ - lib/rookout/services/position.rb
241
+ - lib/rookout/services/tracer.rb
242
+ - lib/rookout/trigger_services.rb
243
+ - lib/rookout/user_warnings.rb
244
+ - lib/rookout/version.rb
245
+ homepage: https://rookout.com
246
+ licenses:
247
+ - Proprietary
248
+ metadata:
249
+ homepage_uri: https://rookout.com
250
+ post_install_message:
251
+ rdoc_options: []
252
+ require_paths:
253
+ - lib
254
+ required_ruby_version: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '2.6'
259
+ required_rubygems_version: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - ">="
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
264
+ requirements: []
265
+ rubygems_version: 3.1.4
266
+ signing_key:
267
+ specification_version: 4
268
+ summary: rookout is the Ruby SDK for the Rookout Debugging Platform
269
+ test_files: []