datawire_mdk 2.0.22 → 2.0.23

Sign up to get free protection for your applications and to get access to all the features.
data/lib/mdk.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Quark 1.0.452 run at 2016-10-24 14:33:24.783025
1
+ # Quark 1.0.452 run at 2016-10-26 12:53:21.596699
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk; Mdk; end
@@ -10,6 +10,7 @@ require_relative 'mdk_discovery' # 0 () ()
10
10
  require_relative 'quark' # 0 () ()
11
11
  require_relative 'mdk_protocol' # 0 () ()
12
12
  require_relative 'mdk_tracing' # 0 () ()
13
+ require_relative 'mdk_metrics' # 0 () ()
13
14
  require_relative 'quark/concurrent' # 0 ('quark',) ()
14
15
  require_relative 'mdk_introspection' # 0 () ()
15
16
  require_relative 'mdk_discovery/protocol' # 0 ('mdk_discovery',) ()
@@ -549,7 +550,7 @@ Session.unlazy_statics
549
550
 
550
551
  def self.MDKImpl; MDKImpl; end
551
552
  class MDKImpl < ::DatawireQuarkCore::QuarkObject
552
- attr_accessor :logger, :_reflection_hack, :_runtime, :_wsclient, :_openclose, :_disco, :_discoSource, :_tracer, :procUUID, :_running, :_defaultTimeout
553
+ attr_accessor :logger, :_reflection_hack, :_runtime, :_wsclient, :_openclose, :_disco, :_discoSource, :_tracer, :_metrics, :procUUID, :_running, :_defaultTimeout
553
554
  extend ::DatawireQuarkCore::Static
554
555
 
555
556
  static mdk_MDKImpl_ref: -> { nil }
@@ -566,10 +567,13 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
566
567
  if (!((runtime).dependencies.hasService("failurepolicy_factory")))
567
568
  (runtime).dependencies.registerService("failurepolicy_factory", self.getFailurePolicy(runtime))
568
569
  end
570
+ if ((runtime).dependencies.hasService("tracer"))
571
+ @_tracer = ::DatawireQuarkCore.cast((@_runtime).dependencies.getService("tracer")) { ::Quark.mdk_tracing.Tracer }
572
+ end
569
573
  @_disco = ::Quark.mdk_discovery.Discovery.new(runtime)
570
574
  @_wsclient = self.getWSClient(runtime)
571
575
  if ((@_wsclient) != (nil))
572
- @_openclose = ::Quark.mdk_protocol.OpenCloseSubscriber.new(@_wsclient)
576
+ @_openclose = ::Quark.mdk_protocol.OpenCloseSubscriber.new(@_wsclient, @procUUID)
573
577
  end
574
578
  env = runtime.getEnvVarsService()
575
579
  discoFactory = self.getDiscoveryFactory(env)
@@ -578,8 +582,10 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
578
582
  (runtime).dependencies.registerService("discovery_registrar", @_discoSource)
579
583
  end
580
584
  if ((@_wsclient) != (nil))
581
- @_tracer = ::Quark.mdk_tracing.Tracer.new(runtime, @_wsclient)
582
- @_tracer.initContext()
585
+ if ((@_tracer) == (nil))
586
+ @_tracer = ::Quark.mdk_tracing.Tracer.new(runtime, @_wsclient)
587
+ end
588
+ @_metrics = ::Quark.mdk_metrics.MetricsClient.new(@_wsclient)
583
589
  end
584
590
 
585
591
  nil
@@ -668,6 +674,7 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
668
674
  (@_runtime).dispatcher.startActor(@_wsclient)
669
675
  (@_runtime).dispatcher.startActor(@_openclose)
670
676
  (@_runtime).dispatcher.startActor(@_tracer)
677
+ (@_runtime).dispatcher.startActor(@_metrics)
671
678
  end
672
679
  (@_runtime).dispatcher.startActor(@_disco)
673
680
  (@_runtime).dispatcher.startActor(@_discoSource)
@@ -788,6 +795,9 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
788
795
  if ((name) == ("_tracer"))
789
796
  return (self)._tracer
790
797
  end
798
+ if ((name) == ("_metrics"))
799
+ return (self)._metrics
800
+ end
791
801
  if ((name) == ("procUUID"))
792
802
  return (self).procUUID
793
803
  end
@@ -828,6 +838,9 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
828
838
  if ((name) == ("_tracer"))
829
839
  (self)._tracer = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_tracing.Tracer }
830
840
  end
841
+ if ((name) == ("_metrics"))
842
+ (self)._metrics = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_metrics.MetricsClient }
843
+ end
831
844
  if ((name) == ("procUUID"))
832
845
  (self).procUUID = ::DatawireQuarkCore.cast(value) { ::String }
833
846
  end
@@ -851,6 +864,7 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
851
864
  self._disco = nil
852
865
  self._discoSource = nil
853
866
  self._tracer = nil
867
+ self._metrics = nil
854
868
  self.procUUID = ::Quark.quark.concurrent.Context.runtime().uuid()
855
869
  self._running = false
856
870
  self._defaultTimeout = nil
@@ -919,7 +933,7 @@ TLSInit.unlazy_statics
919
933
 
920
934
  def self.SessionImpl; SessionImpl; end
921
935
  class SessionImpl < ::DatawireQuarkCore::QuarkObject
922
- attr_accessor :_mdk, :_resolved, :_context, :_experimental
936
+ attr_accessor :_mdk, :_resolved, :_interactionReports, :_context, :_experimental
923
937
  extend ::DatawireQuarkCore::Static
924
938
 
925
939
  static _levels: -> { {"CRITICAL" => 0, "ERROR" => 1, "WARN" => 2, "INFO" => 3, "DEBUG" => 4} }
@@ -927,6 +941,7 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
927
941
  static mdk_SessionImpl_ref: -> { nil }
928
942
  static quark_List_quark_List_mdk_discovery_Node___ref: -> { nil }
929
943
  static quark_List_mdk_discovery_Node__ref: -> { nil }
944
+ static quark_List_mdk_metrics_InteractionEvent__ref: -> { nil }
930
945
  static quark_List_quark_Map_quark_String_quark_String___ref: -> { nil }
931
946
  static quark_List_quark_String__ref: -> { nil }
932
947
  static quark_Map_quark_String_quark_int__ref: -> { nil }
@@ -947,6 +962,7 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
947
962
  ctx = ::Quark.mdk_protocol.SharedContext.decode(encodedContext)
948
963
  @_context = ctx.start_span()
949
964
  end
965
+ self.start_interaction()
950
966
 
951
967
  nil
952
968
  end
@@ -1064,8 +1080,7 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
1064
1080
  return
1065
1081
  end
1066
1082
  ::Quark.mdk.SessionImpl._inLogging.setValue(true)
1067
- (@_mdk)._tracer.setContext(@_context)
1068
- (@_mdk)._tracer.log((@_mdk).procUUID, level, category, text)
1083
+ (@_mdk)._tracer.log(@_context, (@_mdk).procUUID, level, category, text)
1069
1084
  ::Quark.mdk.SessionImpl._inLogging.setValue(false)
1070
1085
  end
1071
1086
 
@@ -1183,6 +1198,11 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
1183
1198
 
1184
1199
  def start_interaction()
1185
1200
 
1201
+ interactionReport = ::Quark.mdk_metrics.InteractionEvent.new()
1202
+ (interactionReport).node = (@_mdk).procUUID
1203
+ (interactionReport).timestamp = ((1000.0) * ((@_mdk)._runtime.getTimeService().time())).round()
1204
+ (interactionReport).session = (@_context).traceId
1205
+ (@_interactionReports) << (interactionReport)
1186
1206
  (@_resolved) << (::DatawireQuarkCore::List.new([]))
1187
1207
 
1188
1208
  nil
@@ -1215,6 +1235,7 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
1215
1235
  idx = (idx) + (1)
1216
1236
  (involved) << (node.toString())
1217
1237
  node.failure()
1238
+ (@_interactionReports)[((@_interactionReports).size) - (1)].addNode(node, false)
1218
1239
  end
1219
1240
  text = ((("involved: ") + ((involved).join(", "))) + ("\n\n")) + (message)
1220
1241
  self.error("interaction failure", text)
@@ -1226,12 +1247,17 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
1226
1247
 
1227
1248
  nodes = self._current_interaction()
1228
1249
  (@_resolved).delete_at(((@_resolved).size) - (1))
1250
+ report = (@_interactionReports).delete_at(((@_interactionReports).size) - (1))
1229
1251
  idx = 0
1230
1252
  while ((idx) < ((nodes).size)) do
1231
1253
  node = (nodes)[idx]
1232
1254
  node.success()
1255
+ report.addNode(node, true)
1233
1256
  idx = (idx) + (1)
1234
1257
  end
1258
+ if (((@_mdk)._metrics) != (nil))
1259
+ (@_mdk)._metrics.sendInteraction(report)
1260
+ end
1235
1261
 
1236
1262
  nil
1237
1263
  end
@@ -1266,6 +1292,9 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
1266
1292
  if ((name) == ("_resolved"))
1267
1293
  return (self)._resolved
1268
1294
  end
1295
+ if ((name) == ("_interactionReports"))
1296
+ return (self)._interactionReports
1297
+ end
1269
1298
  if ((name) == ("_context"))
1270
1299
  return (self)._context
1271
1300
  end
@@ -1291,6 +1320,9 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
1291
1320
  if ((name) == ("_resolved"))
1292
1321
  (self)._resolved = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::List }
1293
1322
  end
1323
+ if ((name) == ("_interactionReports"))
1324
+ (self)._interactionReports = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::List }
1325
+ end
1294
1326
  if ((name) == ("_context"))
1295
1327
  (self)._context = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.SharedContext }
1296
1328
  end
@@ -1304,7 +1336,8 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
1304
1336
  def __init_fields__()
1305
1337
 
1306
1338
  self._mdk = nil
1307
- self._resolved = ::DatawireQuarkCore::List.new([::DatawireQuarkCore::List.new([])])
1339
+ self._resolved = ::DatawireQuarkCore::List.new([])
1340
+ self._interactionReports = ::DatawireQuarkCore::List.new([])
1308
1341
  self._context = nil
1309
1342
  self._experimental = false
1310
1343
 
data/lib/mdk_discovery.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Quark 1.0.452 run at 2016-10-24 14:33:24.783025
1
+ # Quark 1.0.452 run at 2016-10-26 12:53:21.596699
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_discovery; MdkDiscovery; end
@@ -1,4 +1,4 @@
1
- # Quark 1.0.452 run at 2016-10-24 14:33:24.783025
1
+ # Quark 1.0.452 run at 2016-10-26 12:53:21.596699
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_discovery; MdkDiscovery; end
@@ -1,4 +1,4 @@
1
- # Quark 1.0.452 run at 2016-10-24 14:33:24.783025
1
+ # Quark 1.0.452 run at 2016-10-26 12:53:21.596699
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_discovery; MdkDiscovery; end
@@ -1,4 +1,4 @@
1
- # Quark 1.0.452 run at 2016-10-24 14:33:24.783025
1
+ # Quark 1.0.452 run at 2016-10-26 12:53:21.596699
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_introspection; MdkIntrospection; end
@@ -1,4 +1,4 @@
1
- # Quark 1.0.452 run at 2016-10-24 14:33:24.783025
1
+ # Quark 1.0.452 run at 2016-10-26 12:53:21.596699
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_introspection; MdkIntrospection; end
@@ -1,4 +1,4 @@
1
- # Quark 1.0.452 run at 2016-10-24 14:33:24.783025
1
+ # Quark 1.0.452 run at 2016-10-26 12:53:21.596699
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_introspection; MdkIntrospection; end
@@ -0,0 +1,333 @@
1
+ # Quark 1.0.452 run at 2016-10-26 12:53:21.596699
2
+ module Quark
3
+ require "quark"
4
+ def self.mdk_metrics; MdkMetrics; end
5
+ module MdkMetrics
6
+ require "datawire-quark-core"
7
+ require_relative 'quark/reflect' # 0 ('quark',) ()
8
+ require_relative 'mdk_protocol' # 0 () ()
9
+ require_relative 'quark/concurrent' # 0 ('quark',) ()
10
+ require_relative 'mdk_discovery' # 0 () ()
11
+ require_relative 'mdk_runtime/actors' # 0 ('mdk_runtime',) ()
12
+
13
+
14
+ def self.InteractionEvent; InteractionEvent; end
15
+ ##
16
+ # Wire protocol message for reporting interaction results to MCP.
17
+
18
+ class InteractionEvent < ::Quark.mdk_protocol.Serializable
19
+ attr_accessor :timestamp, :uuid, :session, :node, :results
20
+ extend ::DatawireQuarkCore::Static
21
+
22
+ static _json_type: -> { "interaction_event" }
23
+ static mdk_metrics_InteractionEvent_ref: -> { nil }
24
+
25
+
26
+
27
+ def initialize()
28
+
29
+ super()
30
+
31
+ nil
32
+ end
33
+
34
+
35
+
36
+
37
+ def getTimestamp()
38
+
39
+ return (self).timestamp
40
+
41
+ nil
42
+ end
43
+
44
+ ##
45
+ # Add the result of communicating with a specific node.
46
+
47
+ def addNode(destination, success)
48
+
49
+ value = 0
50
+ if (success)
51
+ value = 1
52
+ end
53
+ ((self).results)[::DatawireQuarkCore.cast(((destination).properties)["datawire_nodeId"]) { ::String }] = (value)
54
+
55
+ nil
56
+ end
57
+
58
+ def _getClass()
59
+
60
+ return "mdk_metrics.InteractionEvent"
61
+
62
+ nil
63
+ end
64
+
65
+ def _getField(name)
66
+
67
+ if ((name) == ("_json_type"))
68
+ return ::Quark.mdk_metrics.InteractionEvent._json_type
69
+ end
70
+ if ((name) == ("timestamp"))
71
+ return (self).timestamp
72
+ end
73
+ if ((name) == ("uuid"))
74
+ return (self).uuid
75
+ end
76
+ if ((name) == ("session"))
77
+ return (self).session
78
+ end
79
+ if ((name) == ("node"))
80
+ return (self).node
81
+ end
82
+ if ((name) == ("results"))
83
+ return (self).results
84
+ end
85
+ return nil
86
+
87
+ nil
88
+ end
89
+
90
+ def _setField(name, value)
91
+
92
+ if ((name) == ("_json_type"))
93
+ ::Quark.mdk_metrics.InteractionEvent._json_type = ::DatawireQuarkCore.cast(value) { ::String }
94
+ end
95
+ if ((name) == ("timestamp"))
96
+ (self).timestamp = ::DatawireQuarkCore.cast(value) { ::Integer }
97
+ end
98
+ if ((name) == ("uuid"))
99
+ (self).uuid = ::DatawireQuarkCore.cast(value) { ::String }
100
+ end
101
+ if ((name) == ("session"))
102
+ (self).session = ::DatawireQuarkCore.cast(value) { ::String }
103
+ end
104
+ if ((name) == ("node"))
105
+ (self).node = ::DatawireQuarkCore.cast(value) { ::String }
106
+ end
107
+ if ((name) == ("results"))
108
+ (self).results = ::DatawireQuarkCore.cast(value) { ::Hash }
109
+ end
110
+
111
+ nil
112
+ end
113
+
114
+ def __init_fields__()
115
+
116
+ super
117
+ self.timestamp = nil
118
+ self.uuid = ::Quark.quark.concurrent.Context.runtime().uuid()
119
+ self.session = nil
120
+ self.node = nil
121
+ self.results = {}
122
+
123
+ nil
124
+ end
125
+
126
+
127
+ end
128
+ InteractionEvent.unlazy_statics
129
+
130
+ def self.InteractionAck; InteractionAck; end
131
+ ##
132
+ # Wire protocol message for MCP to acknowledge InteractionEvent receipt.
133
+
134
+ class InteractionAck < ::Quark.mdk_protocol.Serializable
135
+ attr_accessor :sequence
136
+ extend ::DatawireQuarkCore::Static
137
+
138
+ static _json_type: -> { "interaction_ack" }
139
+ static mdk_metrics_InteractionAck_ref: -> { nil }
140
+
141
+
142
+
143
+ def initialize()
144
+
145
+ super()
146
+
147
+ nil
148
+ end
149
+
150
+
151
+
152
+
153
+ def _getClass()
154
+
155
+ return "mdk_metrics.InteractionAck"
156
+
157
+ nil
158
+ end
159
+
160
+ def _getField(name)
161
+
162
+ if ((name) == ("_json_type"))
163
+ return ::Quark.mdk_metrics.InteractionAck._json_type
164
+ end
165
+ if ((name) == ("sequence"))
166
+ return (self).sequence
167
+ end
168
+ return nil
169
+
170
+ nil
171
+ end
172
+
173
+ def _setField(name, value)
174
+
175
+ if ((name) == ("_json_type"))
176
+ ::Quark.mdk_metrics.InteractionAck._json_type = ::DatawireQuarkCore.cast(value) { ::String }
177
+ end
178
+ if ((name) == ("sequence"))
179
+ (self).sequence = ::DatawireQuarkCore.cast(value) { ::Integer }
180
+ end
181
+
182
+ nil
183
+ end
184
+
185
+ def __init_fields__()
186
+
187
+ super
188
+ self.sequence = nil
189
+
190
+ nil
191
+ end
192
+
193
+
194
+ end
195
+ InteractionAck.unlazy_statics
196
+
197
+ def self.MetricsClient; MetricsClient; end
198
+ ##
199
+ # Mini-protocol for sending metrics to MCP.
200
+
201
+ class MetricsClient < ::DatawireQuarkCore::QuarkObject
202
+ attr_accessor :_dispatcher, :_sock, :_sendWithAcks
203
+ extend ::DatawireQuarkCore::Static
204
+
205
+ static mdk_metrics_MetricsClient_ref: -> { nil }
206
+
207
+
208
+
209
+ def initialize(wsclient)
210
+
211
+ self.__init_fields__
212
+ wsclient.subscribe(self)
213
+
214
+ nil
215
+ end
216
+
217
+
218
+
219
+
220
+ ##
221
+ # Queue info about interaction to be sent to the MCP.
222
+
223
+ def sendInteraction(evt)
224
+
225
+ (self)._sendWithAcks.send(::Quark.mdk_metrics.InteractionEvent._json_type, evt)
226
+
227
+ nil
228
+ end
229
+
230
+ def onStart(dispatcher)
231
+
232
+ (self)._dispatcher = dispatcher
233
+
234
+ nil
235
+ end
236
+
237
+ def onStop()
238
+
239
+ nil
240
+
241
+ nil
242
+ end
243
+
244
+ def onMessage(origin, message)
245
+
246
+ ::Quark.mdk_protocol._subscriberDispatch(self, message)
247
+
248
+ nil
249
+ end
250
+
251
+ def onWSConnected(websock)
252
+
253
+ (self)._sock = websock
254
+ (self)._sendWithAcks.onConnected(self, (self)._dispatcher, websock)
255
+
256
+ nil
257
+ end
258
+
259
+ def onPump()
260
+
261
+ (self)._sendWithAcks.onPump(self, (self)._dispatcher, (self)._sock)
262
+
263
+ nil
264
+ end
265
+
266
+ def onMessageFromServer(message)
267
+
268
+ type = (::Quark.quark.reflect.QuarkClass.get(::DatawireQuarkCore._getClass(message))).id
269
+ if ((type) == ("metrics.InteractionAck"))
270
+ ack = ::DatawireQuarkCore.cast(message) { ::Quark.mdk_metrics.InteractionAck }
271
+ (self)._sendWithAcks.onAck((ack).sequence)
272
+ return
273
+ end
274
+
275
+ nil
276
+ end
277
+
278
+ def _getClass()
279
+
280
+ return "mdk_metrics.MetricsClient"
281
+
282
+ nil
283
+ end
284
+
285
+ def _getField(name)
286
+
287
+ if ((name) == ("_dispatcher"))
288
+ return (self)._dispatcher
289
+ end
290
+ if ((name) == ("_sock"))
291
+ return (self)._sock
292
+ end
293
+ if ((name) == ("_sendWithAcks"))
294
+ return (self)._sendWithAcks
295
+ end
296
+ return nil
297
+
298
+ nil
299
+ end
300
+
301
+ def _setField(name, value)
302
+
303
+ if ((name) == ("_dispatcher"))
304
+ (self)._dispatcher = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.MessageDispatcher }
305
+ end
306
+ if ((name) == ("_sock"))
307
+ (self)._sock = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
308
+ end
309
+ if ((name) == ("_sendWithAcks"))
310
+ (self)._sendWithAcks = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_protocol.SendWithAcks }
311
+ end
312
+
313
+ nil
314
+ end
315
+
316
+ def __init_fields__()
317
+
318
+ self._dispatcher = nil
319
+ self._sock = nil
320
+ self._sendWithAcks = ::Quark.mdk_protocol.SendWithAcks.new()
321
+
322
+ nil
323
+ end
324
+
325
+
326
+ end
327
+ MetricsClient.unlazy_statics
328
+
329
+
330
+ require_relative 'datawire_mdk_md' # 0 () ()
331
+
332
+ end # module MdkMetrics
333
+ end # module Quark