eimer 0.1.1 → 0.2.0

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.
Files changed (156) hide show
  1. package/README.md +12 -6
  2. package/dist/cjs/eimer/Eimer.d.ts +9 -5
  3. package/dist/cjs/eimer/Eimer.d.ts.map +1 -1
  4. package/dist/cjs/eimer/Eimer.js +28 -10
  5. package/dist/cjs/eimer/Eimer.js.map +1 -1
  6. package/dist/cjs/eimer/EimerDependencies.d.ts +2 -0
  7. package/dist/cjs/eimer/EimerDependencies.d.ts.map +1 -1
  8. package/dist/cjs/eimer/EimerDependencies.js.map +1 -1
  9. package/dist/cjs/eimer/EimerMessage.d.ts +4 -1
  10. package/dist/cjs/eimer/EimerMessage.d.ts.map +1 -1
  11. package/dist/cjs/eimer/EimerMessage.js +3 -1
  12. package/dist/cjs/eimer/EimerMessage.js.map +1 -1
  13. package/dist/cjs/eimer/EimerMessageMeta.d.ts +17 -0
  14. package/dist/cjs/eimer/EimerMessageMeta.d.ts.map +1 -0
  15. package/dist/cjs/eimer/EimerMessageMeta.js +3 -0
  16. package/dist/cjs/eimer/EimerMessageMeta.js.map +1 -0
  17. package/dist/cjs/eimer/PayloadHandler.d.ts +2 -1
  18. package/dist/cjs/eimer/PayloadHandler.d.ts.map +1 -1
  19. package/dist/cjs/eimer/RpcHandler.d.ts +2 -1
  20. package/dist/cjs/eimer/RpcHandler.d.ts.map +1 -1
  21. package/dist/cjs/eimer/RpcManager.d.ts +4 -2
  22. package/dist/cjs/eimer/RpcManager.d.ts.map +1 -1
  23. package/dist/cjs/eimer/TraceContext.d.ts +13 -0
  24. package/dist/cjs/eimer/TraceContext.d.ts.map +1 -0
  25. package/dist/cjs/eimer/TraceContext.js +3 -0
  26. package/dist/cjs/eimer/TraceContext.js.map +1 -0
  27. package/dist/cjs/eimer/TraceSpan.d.ts +14 -0
  28. package/dist/cjs/eimer/TraceSpan.d.ts.map +1 -0
  29. package/dist/cjs/eimer/TraceSpan.js +3 -0
  30. package/dist/cjs/eimer/TraceSpan.js.map +1 -0
  31. package/dist/cjs/eimer/Tracer.d.ts +34 -0
  32. package/dist/cjs/eimer/Tracer.d.ts.map +1 -0
  33. package/dist/cjs/eimer/Tracer.js +3 -0
  34. package/dist/cjs/eimer/Tracer.js.map +1 -0
  35. package/dist/cjs/eimer/TracerBackend.d.ts +21 -0
  36. package/dist/cjs/eimer/TracerBackend.d.ts.map +1 -0
  37. package/dist/cjs/eimer/TracerBackend.js +3 -0
  38. package/dist/cjs/eimer/TracerBackend.js.map +1 -0
  39. package/dist/cjs/eimer/index.d.ts +5 -0
  40. package/dist/cjs/eimer/index.d.ts.map +1 -1
  41. package/dist/cjs/eimer/index.js +5 -0
  42. package/dist/cjs/eimer/index.js.map +1 -1
  43. package/dist/cjs/eimer/now.d.ts +12 -0
  44. package/dist/cjs/eimer/now.d.ts.map +1 -0
  45. package/dist/cjs/eimer/now.js +17 -0
  46. package/dist/cjs/eimer/now.js.map +1 -0
  47. package/dist/cjs/message-bus/EimerMessageBus.d.ts +3 -2
  48. package/dist/cjs/message-bus/EimerMessageBus.d.ts.map +1 -1
  49. package/dist/cjs/message-bus/EimerMessageBus.js +21 -3
  50. package/dist/cjs/message-bus/EimerMessageBus.js.map +1 -1
  51. package/dist/cjs/rpc/EimerRpcManager.d.ts +9 -6
  52. package/dist/cjs/rpc/EimerRpcManager.d.ts.map +1 -1
  53. package/dist/cjs/rpc/EimerRpcManager.js +31 -9
  54. package/dist/cjs/rpc/EimerRpcManager.js.map +1 -1
  55. package/dist/cjs/rpc/EimerRpcRequestMessage.d.ts +2 -1
  56. package/dist/cjs/rpc/EimerRpcRequestMessage.d.ts.map +1 -1
  57. package/dist/cjs/rpc/EimerRpcRequestMessage.js +2 -2
  58. package/dist/cjs/rpc/EimerRpcRequestMessage.js.map +1 -1
  59. package/dist/cjs/rpc/EimerRpcResponseMessage.d.ts +2 -1
  60. package/dist/cjs/rpc/EimerRpcResponseMessage.d.ts.map +1 -1
  61. package/dist/cjs/rpc/EimerRpcResponseMessage.js +2 -2
  62. package/dist/cjs/rpc/EimerRpcResponseMessage.js.map +1 -1
  63. package/dist/cjs/tracing/ConsoleLoggingTracerBackend.d.ts +53 -0
  64. package/dist/cjs/tracing/ConsoleLoggingTracerBackend.d.ts.map +1 -0
  65. package/dist/cjs/tracing/ConsoleLoggingTracerBackend.js +113 -0
  66. package/dist/cjs/tracing/ConsoleLoggingTracerBackend.js.map +1 -0
  67. package/dist/cjs/tracing/EimerLoggerTracerBackend.d.ts +12 -0
  68. package/dist/cjs/tracing/EimerLoggerTracerBackend.d.ts.map +1 -0
  69. package/dist/cjs/tracing/EimerLoggerTracerBackend.js +18 -0
  70. package/dist/cjs/tracing/EimerLoggerTracerBackend.js.map +1 -0
  71. package/dist/cjs/tracing/EimerNoopTracer.d.ts +17 -0
  72. package/dist/cjs/tracing/EimerNoopTracer.d.ts.map +1 -0
  73. package/dist/cjs/tracing/EimerNoopTracer.js +27 -0
  74. package/dist/cjs/tracing/EimerNoopTracer.js.map +1 -0
  75. package/dist/cjs/tracing/EimerPublishingTracerBackend.d.ts +17 -0
  76. package/dist/cjs/tracing/EimerPublishingTracerBackend.d.ts.map +1 -0
  77. package/dist/cjs/tracing/EimerPublishingTracerBackend.js +20 -0
  78. package/dist/cjs/tracing/EimerPublishingTracerBackend.js.map +1 -0
  79. package/dist/cjs/tracing/EimerTraceSubscriber.d.ts +17 -0
  80. package/dist/cjs/tracing/EimerTraceSubscriber.d.ts.map +1 -0
  81. package/dist/cjs/tracing/EimerTraceSubscriber.js +23 -0
  82. package/dist/cjs/tracing/EimerTraceSubscriber.js.map +1 -0
  83. package/dist/cjs/tracing/EimerTracer.d.ts +21 -0
  84. package/dist/cjs/tracing/EimerTracer.d.ts.map +1 -0
  85. package/dist/cjs/tracing/EimerTracer.js +59 -0
  86. package/dist/cjs/tracing/EimerTracer.js.map +1 -0
  87. package/dist/cjs/tracing/MemoryTracerBackend.d.ts +14 -0
  88. package/dist/cjs/tracing/MemoryTracerBackend.d.ts.map +1 -0
  89. package/dist/cjs/tracing/MemoryTracerBackend.js +24 -0
  90. package/dist/cjs/tracing/MemoryTracerBackend.js.map +1 -0
  91. package/dist/cjs/tracing/NoopTracer.d.ts +16 -0
  92. package/dist/cjs/tracing/NoopTracer.d.ts.map +1 -0
  93. package/dist/cjs/tracing/NoopTracer.js +27 -0
  94. package/dist/cjs/tracing/NoopTracer.js.map +1 -0
  95. package/dist/cjs/tracing/index.d.ts +9 -0
  96. package/dist/cjs/tracing/index.d.ts.map +1 -0
  97. package/dist/cjs/tracing/index.js +25 -0
  98. package/dist/cjs/tracing/index.js.map +1 -0
  99. package/dist/cjs/tracing/now.d.ts +9 -0
  100. package/dist/cjs/tracing/now.d.ts.map +1 -0
  101. package/dist/cjs/tracing/now.js +14 -0
  102. package/dist/cjs/tracing/now.js.map +1 -0
  103. package/dist/cjs/transports/EimerUtilityProcessTransport.d.ts +5 -2
  104. package/dist/cjs/transports/EimerUtilityProcessTransport.d.ts.map +1 -1
  105. package/dist/cjs/transports/EimerUtilityProcessTransport.js +29 -1
  106. package/dist/cjs/transports/EimerUtilityProcessTransport.js.map +1 -1
  107. package/dist/esm/eimer/Eimer.js +28 -10
  108. package/dist/esm/eimer/Eimer.js.map +1 -1
  109. package/dist/esm/eimer/EimerDependencies.js.map +1 -1
  110. package/dist/esm/eimer/EimerMessage.js +3 -1
  111. package/dist/esm/eimer/EimerMessage.js.map +1 -1
  112. package/dist/esm/eimer/EimerMessageMeta.js +2 -0
  113. package/dist/esm/eimer/EimerMessageMeta.js.map +1 -0
  114. package/dist/esm/eimer/TraceContext.js +2 -0
  115. package/dist/esm/eimer/TraceContext.js.map +1 -0
  116. package/dist/esm/eimer/TraceSpan.js +2 -0
  117. package/dist/esm/eimer/TraceSpan.js.map +1 -0
  118. package/dist/esm/eimer/Tracer.js +2 -0
  119. package/dist/esm/eimer/Tracer.js.map +1 -0
  120. package/dist/esm/eimer/TracerBackend.js +2 -0
  121. package/dist/esm/eimer/TracerBackend.js.map +1 -0
  122. package/dist/esm/eimer/index.js +5 -0
  123. package/dist/esm/eimer/index.js.map +1 -1
  124. package/dist/esm/eimer/now.js +14 -0
  125. package/dist/esm/eimer/now.js.map +1 -0
  126. package/dist/esm/message-bus/EimerMessageBus.js +21 -3
  127. package/dist/esm/message-bus/EimerMessageBus.js.map +1 -1
  128. package/dist/esm/rpc/EimerRpcManager.js +31 -9
  129. package/dist/esm/rpc/EimerRpcManager.js.map +1 -1
  130. package/dist/esm/rpc/EimerRpcRequestMessage.js +2 -2
  131. package/dist/esm/rpc/EimerRpcRequestMessage.js.map +1 -1
  132. package/dist/esm/rpc/EimerRpcResponseMessage.js +2 -2
  133. package/dist/esm/rpc/EimerRpcResponseMessage.js.map +1 -1
  134. package/dist/esm/tracing/ConsoleLoggingTracerBackend.js +109 -0
  135. package/dist/esm/tracing/ConsoleLoggingTracerBackend.js.map +1 -0
  136. package/dist/esm/tracing/EimerLoggerTracerBackend.js +14 -0
  137. package/dist/esm/tracing/EimerLoggerTracerBackend.js.map +1 -0
  138. package/dist/esm/tracing/EimerNoopTracer.js +23 -0
  139. package/dist/esm/tracing/EimerNoopTracer.js.map +1 -0
  140. package/dist/esm/tracing/EimerPublishingTracerBackend.js +16 -0
  141. package/dist/esm/tracing/EimerPublishingTracerBackend.js.map +1 -0
  142. package/dist/esm/tracing/EimerTraceSubscriber.js +19 -0
  143. package/dist/esm/tracing/EimerTraceSubscriber.js.map +1 -0
  144. package/dist/esm/tracing/EimerTracer.js +55 -0
  145. package/dist/esm/tracing/EimerTracer.js.map +1 -0
  146. package/dist/esm/tracing/MemoryTracerBackend.js +20 -0
  147. package/dist/esm/tracing/MemoryTracerBackend.js.map +1 -0
  148. package/dist/esm/tracing/NoopTracer.js +30 -0
  149. package/dist/esm/tracing/NoopTracer.js.map +1 -0
  150. package/dist/esm/tracing/index.js +9 -0
  151. package/dist/esm/tracing/index.js.map +1 -0
  152. package/dist/esm/tracing/now.js +11 -0
  153. package/dist/esm/tracing/now.js.map +1 -0
  154. package/dist/esm/transports/EimerUtilityProcessTransport.js +29 -1
  155. package/dist/esm/transports/EimerUtilityProcessTransport.js.map +1 -1
  156. package/package.json +15 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Eimer.js","sourceRoot":"","sources":["../../../src/eimer/Eimer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Eimer.js","sourceRoot":"","sources":["../../../src/eimer/Eimer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EimerDependencies.js","sourceRoot":"","sources":["../../../src/eimer/EimerDependencies.ts"],"names":[],"mappings":"AAgBC,CAAC"}
1
+ {"version":3,"file":"EimerDependencies.js","sourceRoot":"","sources":["../../../src/eimer/EimerDependencies.ts"],"names":[],"mappings":"AAkBC,CAAC"}
@@ -8,13 +8,15 @@ export class EimerMessage {
8
8
  * @param from nodeId that sent this message
9
9
  * @param topic topic this message was sent on
10
10
  * @param payload optional payload
11
+ * @param meta optional metadata
11
12
  */
12
- constructor(id, from, topic, payload) {
13
+ constructor(id, from, topic, payload, meta) {
13
14
  this.marker = 'EM.1';
14
15
  this.id = id;
15
16
  this.from = from;
16
17
  this.topic = topic;
17
18
  this.payload = payload;
19
+ this.meta = meta;
18
20
  }
19
21
  /**
20
22
  * User-defined Type Guard to ensure the message is an Eimer Request
@@ -1 +1 @@
1
- {"version":3,"file":"EimerMessage.js","sourceRoot":"","sources":["../../../src/eimer/EimerMessage.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,OAAO,YAAY;IAQrB;;;;;;OAMG;IACH,YACI,EAAa,EACb,IAAY,EACZ,KAAY,EACZ,OAAiB;QAjBL,WAAM,GAAuB,MAAM,CAAC;QAmBhD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,OAAY;QAC9B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3E,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;YAChG,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
1
+ {"version":3,"file":"EimerMessage.js","sourceRoot":"","sources":["../../../src/eimer/EimerMessage.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,OAAO,YAAY;IASrB;;;;;;;OAOG;IACH,YACI,EAAa,EACb,IAAY,EACZ,KAAY,EACZ,OAAiB,EACjB,IAAuB;QApBX,WAAM,GAAuB,MAAM,CAAC;QAsBhD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,OAAY;QAC9B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3E,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC;YAChG,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EimerMessageMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EimerMessageMeta.js","sourceRoot":"","sources":["../../../src/eimer/EimerMessageMeta.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TraceContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceContext.js","sourceRoot":"","sources":["../../../src/eimer/TraceContext.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TraceSpan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceSpan.js","sourceRoot":"","sources":["../../../src/eimer/TraceSpan.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Tracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracer.js","sourceRoot":"","sources":["../../../src/eimer/Tracer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TracerBackend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TracerBackend.js","sourceRoot":"","sources":["../../../src/eimer/TracerBackend.ts"],"names":[],"mappings":""}
@@ -1,6 +1,7 @@
1
1
  export * from './Eimer';
2
2
  export * from './EimerDependencies';
3
3
  export * from './EimerMessage';
4
+ export * from './EimerMessageMeta';
4
5
  export * from './EimerOptions';
5
6
  export * from './IdGenerator';
6
7
  export * from './Logger';
@@ -16,5 +17,9 @@ export * from './RpcManager';
16
17
  export * from './RpcMethod';
17
18
  export * from './StructuredCloneable';
18
19
  export * from './Topic';
20
+ export * from './TraceContext';
21
+ export * from './Tracer';
22
+ export * from './TracerBackend';
23
+ export * from './TraceSpan';
19
24
  export * from './Transport';
20
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/eimer/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/eimer/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A timestamp (milliseconds since the Unix epoch) suitable for hop/span
3
+ * timing: `performance.now()` is monotonic and higher-resolution than
4
+ * `Date.now()` (important for sub-millisecond IPC hops), and unaffected by
5
+ * wall-clock adjustments (NTP sync, sleep/resume) that can otherwise produce
6
+ * negative durations - but it's relative to each process's own start, so
7
+ * `performance.timeOrigin` is added back in to make it comparable across
8
+ * processes. `performance` is available as a global in the browser, and in
9
+ * Node (backed by `node:perf_hooks`) since Node 16 - no import needed.
10
+ */
11
+ export function now() {
12
+ return performance.timeOrigin + performance.now();
13
+ }
14
+ //# sourceMappingURL=now.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"now.js","sourceRoot":"","sources":["../../../src/eimer/now.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG;IACf,OAAO,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AACtD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { LogLevel } from '../eimer/LogLevel';
2
2
  import { EimerLogger } from '../logger/EimerLogger';
3
+ import { EimerNoopTracer } from '../tracing/EimerNoopTracer';
3
4
  export class EimerMessageBus {
4
5
  constructor(nodeId, options, dependencies) {
5
6
  this.handlers = new Map();
@@ -7,6 +8,7 @@ export class EimerMessageBus {
7
8
  this.seenMessages = new Set(); // @todo: only store the last X message ids and purge the rest
8
9
  this.nodeId = nodeId;
9
10
  this.logger = dependencies?.logger ?? new EimerLogger(options?.logLevel ?? LogLevel.DEBUG, options?.logModuleName ?? 'MessageBus', this.nodeId);
11
+ this.tracer = dependencies?.tracer ?? new EimerNoopTracer();
10
12
  }
11
13
  connectTransport(transport) {
12
14
  this.logger.debug('Connecting transport', { transport });
@@ -29,7 +31,7 @@ export class EimerMessageBus {
29
31
  });
30
32
  // Handle locally first
31
33
  this.handleMessage(message);
32
- // Forward to all transports
34
+ // Forward to all transports
33
35
  this.transports.forEach(transport => {
34
36
  try {
35
37
  transport.send(message);
@@ -103,14 +105,30 @@ export class EimerMessageBus {
103
105
  // Handle locally first (handleMessage will add to seenMessages)
104
106
  this.handleMessage(message);
105
107
  // Forward to all other transports (excluding the source transport to prevent loops)
106
- Array.from(this.transports).filter(otherTransport => otherTransport !== sourceTransport).forEach(otherTransport => {
108
+ const otherTransports = Array.from(this.transports).filter(otherTransport => otherTransport !== sourceTransport);
109
+ if (otherTransports.length === 0) {
110
+ return;
111
+ }
112
+ let forwardMessage = message;
113
+ if (message.meta?.collectEimerTraces && message.meta?.trace) {
114
+ const relayTrace = this.tracer.startSpan(message.topic, { isEimerTrace: true, node: this.nodeId, component: 'Eimer', op: 'forward' }, message.meta.trace);
115
+ // clone message before forwarding so trace data is kept independent
116
+ forwardMessage = {
117
+ ...message,
118
+ meta: { ...message.meta, trace: relayTrace }
119
+ };
120
+ }
121
+ otherTransports.forEach(otherTransport => {
107
122
  try {
108
- otherTransport.send(message);
123
+ otherTransport.send(forwardMessage);
109
124
  }
110
125
  catch (error) {
111
126
  this.logger.error('Error forwarding message through transport', { error });
112
127
  }
113
128
  });
129
+ if (message.meta?.collectEimerTraces && message.meta?.trace) {
130
+ this.tracer.endSpan(forwardMessage.meta?.trace?.spanId);
131
+ }
114
132
  }
115
133
  }
116
134
  //# sourceMappingURL=EimerMessageBus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EimerMessageBus.js","sourceRoot":"","sources":["../../../src/message-bus/EimerMessageBus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EimerMessageBus.js","sourceRoot":"","sources":["../../../src/message-bus/EimerMessageBus.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { EimerRpcResponsePayload } from './EimerRpcResponsePayload';
5
5
  import { LogLevel } from '../eimer/LogLevel';
6
6
  import { EimerIdGenerator } from '../id-generator/EimerIdGenerator';
7
7
  import { EimerLogger } from '../logger/EimerLogger';
8
+ import { EimerNoopTracer } from '../tracing/EimerNoopTracer';
8
9
  /**
9
10
  * Reference Implementation of `RpcManager`
10
11
  */
@@ -22,13 +23,14 @@ export class EimerRpcManager {
22
23
  // Stores unsubscriber functions of RPC Handlers, indexed by RPC method name
23
24
  this.unsubscriberFunctions = new Map();
24
25
  // Timeout for RPC calls, in milliseconds
25
- this.timeout = 1000;
26
+ this.timeoutMs = 1000;
26
27
  this.isSubscribedToResponses = false;
27
28
  this.nodeId = nodeId;
28
29
  this.messageBus = messageBus;
29
- this.timeout = (options?.timeout !== null && options?.timeout !== undefined) ? options?.timeout : 1000;
30
+ this.timeoutMs = (options?.timeoutMs !== null && options?.timeoutMs !== undefined) ? options?.timeoutMs : 1000;
30
31
  this.idGenerator = dependencies?.idGenerator ?? new EimerIdGenerator();
31
32
  this.logger = dependencies?.logger ?? new EimerLogger(options?.logLevel ?? LogLevel.DEBUG, options?.logModuleName ?? 'RpcManager', this.nodeId);
33
+ this.tracer = dependencies?.tracer ?? new EimerNoopTracer();
32
34
  }
33
35
  /**
34
36
  * Register a handler for an RPC method call
@@ -45,26 +47,33 @@ export class EimerRpcManager {
45
47
  * Call a remote method and await the response (or error)
46
48
  * @param method method name
47
49
  * @param params parameters for call
48
- * @param timeout timeout for call (in ms)
50
+ * @param timeoutMs timeout for call, in milliseconds
51
+ * @param meta optional metadata
49
52
  * @returns
50
53
  */
51
- async call(method, params, timeout) {
54
+ async call(method, params, timeoutMs, meta) {
52
55
  if (!this.isSubscribedToResponses) {
53
56
  this.messageBus.subscribe(EimerRpcResponseMessage.TOPIC_PREFIX, this.handleResponseMessage.bind(this));
54
57
  this.isSubscribedToResponses = true;
55
58
  }
56
59
  return new Promise((resolve, reject) => {
57
60
  const requestId = method + ':' + this.idGenerator.generateId();
61
+ if (meta?.collectEimerTraces && meta?.trace) {
62
+ meta.trace = this.tracer.startSpan(method, { isEimerTrace: true, node: this.nodeId, component: 'EimerRpcManager', op: 'call' }, meta.trace);
63
+ }
58
64
  const timeoutId = setTimeout(() => {
59
65
  this.pendingRequests.delete(requestId);
66
+ this.tracer.endSpan(meta?.trace?.spanId, { eimerRpcTimeout: true });
60
67
  reject(new Error(`RPC call of ${method} timed out`));
61
- }, timeout || this.timeout);
68
+ }, timeoutMs || this.timeoutMs);
62
69
  this.pendingRequests.set(requestId, {
63
70
  resolve: resolve,
64
71
  reject,
65
- timeout: timeoutId
72
+ timeout: timeoutId,
73
+ method,
74
+ meta
66
75
  });
67
- const requestMessage = new EimerRpcRequestMessage(this.idGenerator.generateId(), this.nodeId, `${EimerRpcRequestMessage.TOPIC_PREFIX}.${method}`, new EimerRpcRequestPayload(requestId, method, params));
76
+ const requestMessage = new EimerRpcRequestMessage(this.idGenerator.generateId(), this.nodeId, `${EimerRpcRequestMessage.TOPIC_PREFIX}.${method}`, new EimerRpcRequestPayload(requestId, method, params), meta);
68
77
  this.logger.debug('Publishing RPC request', { requestId, method, params, requestMessage });
69
78
  this.messageBus.publish(requestMessage);
70
79
  });
@@ -93,6 +102,9 @@ export class EimerRpcManager {
93
102
  }
94
103
  for (const request of this.pendingRequests.values()) {
95
104
  request.reject('RPC Manager shutdown');
105
+ if (request?.meta?.collectEimerTraces && request?.meta?.trace) {
106
+ this.tracer.endSpan(request.meta?.trace?.spanId, { eimerRpcShutdown: true });
107
+ }
96
108
  }
97
109
  this.messageBus.shutdown();
98
110
  }
@@ -115,6 +127,7 @@ export class EimerRpcManager {
115
127
  }
116
128
  clearTimeout(pendingRequest.timeout);
117
129
  this.pendingRequests.delete(payload.requestId);
130
+ this.tracer.endSpan(pendingRequest.meta?.trace?.spanId);
118
131
  if (payload.error) {
119
132
  this.logger.debug('Rejecting RPC response', { payload });
120
133
  pendingRequest.reject(payload.error);
@@ -140,17 +153,26 @@ export class EimerRpcManager {
140
153
  this.logger.warn('RPC Callback was called for non-existing handler', { requestId: requestPayload.requestId, method: requestPayload.method });
141
154
  return;
142
155
  }
156
+ let trace = requestMessage.meta?.trace;
157
+ if (requestMessage.meta?.collectEimerTraces && trace) {
158
+ trace = this.tracer.startSpan(requestPayload.method, { isEimerTrace: true, node: this.nodeId, component: 'EimerRpcManager', op: 'handleRequestMessage' }, trace);
159
+ }
143
160
  let responsePayload;
144
161
  try {
145
162
  this.logger.debug('Calling RPC Handler', { requestId: requestPayload.requestId, method: requestPayload.method, params: requestPayload.params });
146
- const result = await handler(requestPayload.params);
163
+ const result = await handler(requestPayload.params, trace ? { ...requestMessage.meta, trace } : requestMessage.meta);
147
164
  responsePayload = new EimerRpcResponsePayload(requestPayload.requestId, undefined, result);
148
165
  }
149
166
  catch (error) {
150
167
  this.logger.warn('RPC Handler threw error', { requestId: requestPayload.requestId, method: requestPayload.method, error });
151
168
  responsePayload = new EimerRpcResponsePayload(requestPayload.requestId, error, undefined);
152
169
  }
153
- const responseMessage = new EimerRpcResponseMessage(this.idGenerator.generateId(), this.nodeId, EimerRpcResponseMessage.TOPIC_PREFIX, responsePayload);
170
+ finally {
171
+ if (requestMessage.meta?.collectEimerTraces && trace) {
172
+ this.tracer.endSpan(trace?.spanId);
173
+ }
174
+ }
175
+ const responseMessage = new EimerRpcResponseMessage(this.idGenerator.generateId(), this.nodeId, EimerRpcResponseMessage.TOPIC_PREFIX, responsePayload, trace ? { ...requestMessage.meta, trace } : requestMessage.meta);
154
176
  this.logger.debug('Publishing RPC Response', { requestId: requestPayload.requestId, method: requestPayload.method, responseMessage });
155
177
  this.messageBus.publish(responseMessage);
156
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EimerRpcManager.js","sourceRoot":"","sources":["../../../src/rpc/EimerRpcManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EimerRpcManager.js","sourceRoot":"","sources":["../../../src/rpc/EimerRpcManager.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@ import { EimerMessage } from '../eimer/EimerMessage';
7
7
  * with its parameters/arguments.
8
8
  */
9
9
  export class EimerRpcRequestMessage extends EimerMessage {
10
- constructor(id, from, topic, payload) {
11
- super(id, from, topic, payload);
10
+ constructor(id, from, topic, payload, meta) {
11
+ super(id, from, topic, payload, meta);
12
12
  }
13
13
  /**
14
14
  * User-defined Type Guard to ensure the message is an RPC Request
@@ -1 +1 @@
1
- {"version":3,"file":"EimerRpcRequestMessage.js","sourceRoot":"","sources":["../../../src/rpc/EimerRpcRequestMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMrD;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IASpD,YACI,EAAa,EACb,IAAY,EACZ,KAAY,EACZ,OAA+B;QAE/B,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAqB;QACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/F,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AA/BD;;;GAGG;AACI,mCAAY,GAAS,mBAAmB,CAAC"}
1
+ {"version":3,"file":"EimerRpcRequestMessage.js","sourceRoot":"","sources":["../../../src/rpc/EimerRpcRequestMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAOrD;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IASpD,YACI,EAAa,EACb,IAAY,EACZ,KAAY,EACZ,OAA+B,EAC/B,IAAuB;QAEvB,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,OAAqB;QACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/F,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AAhCD;;;GAGG;AACI,mCAAY,GAAS,mBAAmB,CAAC"}
@@ -8,8 +8,8 @@ import { EimerMessage } from "../eimer/EimerMessage";
8
8
  * there was one.
9
9
  */
10
10
  export class EimerRpcResponseMessage extends EimerMessage {
11
- constructor(id, from, topic, payload) {
12
- super(id, from, topic, payload);
11
+ constructor(id, from, topic, payload, meta) {
12
+ super(id, from, topic, payload, meta);
13
13
  }
14
14
  /**
15
15
  * User-defined Type Guard to ensure the message is an RPC Response
@@ -1 +1 @@
1
- {"version":3,"file":"EimerRpcResponseMessage.js","sourceRoot":"","sources":["../../../src/rpc/EimerRpcResponseMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMrD;;;;;;GAMG;AACH,MAAM,OAAO,uBAAwB,SAAQ,YAAY;IAUrD,YACI,EAAa,EACb,IAAY,EACZ,KAAY,EACZ,OAAgC;QAEhC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,yBAAyB,CAAC,OAAqB;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjG,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AAhCD;;;;GAIG;AACI,oCAAY,GAAG,oBAAoB,CAAC"}
1
+ {"version":3,"file":"EimerRpcResponseMessage.js","sourceRoot":"","sources":["../../../src/rpc/EimerRpcResponseMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAOrD;;;;;;GAMG;AACH,MAAM,OAAO,uBAAwB,SAAQ,YAAY;IAUrD,YACI,EAAa,EACb,IAAY,EACZ,KAAY,EACZ,OAAgC,EAChC,IAAmC;QAEnC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,yBAAyB,CAAC,OAAqB;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjG,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;AAjCD;;;;GAIG;AACI,oCAAY,GAAG,oBAAoB,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * `TracerBackend` that accumulates spans per `traceId` and prints each trace
3
+ * as a nested `console.group()` tree once it goes quiet, rather than logging
4
+ * every span as it arrives. "Quiet" means no new span has been recorded for
5
+ * that `traceId` for `ttlMs`, measured against the `startedAt` of the most
6
+ * recently received span (not wall-clock arrival time), checked on a
7
+ * `sweepIntervalMs` interval.
8
+ *
9
+ * This is a heuristic: a trace that may not be complete but has not received
10
+ * new spans for longer than `ttlMs` will be printed.
11
+ * Any span for it that arrives afterwards is treated as the start of a new trace
12
+ * and printed as its own, separate group once it too goes quiet.
13
+ */
14
+ export class ConsoleLoggingTracerBackend {
15
+ constructor(options, consoleLike) {
16
+ this.pendingSpans = new Map();
17
+ this.lastStartedAt = new Map();
18
+ this.ttlMs = options?.ttlMs ?? 5000;
19
+ this.sweepIntervalMs = options?.sweepIntervalMs ?? 1000;
20
+ this.console = consoleLike ?? console;
21
+ }
22
+ handleSpan(span) {
23
+ const spans = this.pendingSpans.get(span.traceId) ?? [];
24
+ spans.push(span);
25
+ this.pendingSpans.set(span.traceId, spans);
26
+ this.lastStartedAt.set(span.traceId, span.startedAt);
27
+ this.ensureSweeping();
28
+ }
29
+ /**
30
+ * Immediately prints any accumulated traces and stops the sweep timer.
31
+ * Called via `Eimer.shutdown()` -> `Tracer.shutdown()` if this backend is
32
+ * plugged into that node's `Tracer`, so no accumulated spans are
33
+ * silently lost and no timer lingers past shutdown.
34
+ */
35
+ shutdown() {
36
+ this.stopSweeping();
37
+ for (const traceId of [...this.pendingSpans.keys()]) {
38
+ this.flush(traceId);
39
+ }
40
+ }
41
+ ensureSweeping() {
42
+ if (this.sweepTimer) {
43
+ return;
44
+ }
45
+ this.sweepTimer = setInterval(() => this.sweep(), this.sweepIntervalMs);
46
+ // Don't let an idle sweep timer keep a Node process alive.
47
+ this.sweepTimer.unref?.();
48
+ }
49
+ stopSweeping() {
50
+ if (this.sweepTimer) {
51
+ clearInterval(this.sweepTimer);
52
+ this.sweepTimer = undefined;
53
+ }
54
+ }
55
+ sweep() {
56
+ const now = Date.now();
57
+ for (const [traceId, startedAt] of this.lastStartedAt) {
58
+ if (now - startedAt >= this.ttlMs) {
59
+ this.flush(traceId);
60
+ }
61
+ }
62
+ if (this.pendingSpans.size === 0) {
63
+ this.stopSweeping();
64
+ }
65
+ }
66
+ flush(traceId) {
67
+ const spans = this.pendingSpans.get(traceId);
68
+ if (!spans) {
69
+ return;
70
+ }
71
+ this.pendingSpans.delete(traceId);
72
+ this.lastStartedAt.delete(traceId);
73
+ this.printTrace(traceId, spans);
74
+ }
75
+ printTrace(traceId, spans) {
76
+ const byParentSpanId = new Map();
77
+ const spanIds = new Set(spans.map(span => span.spanId));
78
+ for (const span of spans) {
79
+ // Parent spans recorded on other nodes may never reach this
80
+ // backend, so fall back to treating such spans as roots rather
81
+ // than dropping them.
82
+ const parentKey = span.parentSpanId && spanIds.has(span.parentSpanId) ? span.parentSpanId : undefined;
83
+ const siblings = byParentSpanId.get(parentKey) ?? [];
84
+ siblings.push(span);
85
+ byParentSpanId.set(parentKey, siblings);
86
+ }
87
+ const byStartedAt = (a, b) => a.startedAt - b.startedAt;
88
+ const printSpan = (span) => {
89
+ const children = (byParentSpanId.get(span.spanId) ?? []).sort(byStartedAt);
90
+ const label = `${span.name} (${span.durationMs.toFixed(2)}ms)`;
91
+ if (children.length === 0) {
92
+ this.console.log(label, span);
93
+ return;
94
+ }
95
+ this.console.group(label, span);
96
+ for (const child of children) {
97
+ printSpan(child);
98
+ }
99
+ this.console.groupEnd();
100
+ };
101
+ const roots = (byParentSpanId.get(undefined) ?? []).sort(byStartedAt);
102
+ this.console.group(`trace ${traceId} (${spans.length} span${spans.length === 1 ? '' : 's'})`);
103
+ for (const root of roots) {
104
+ printSpan(root);
105
+ }
106
+ this.console.groupEnd();
107
+ }
108
+ }
109
+ //# sourceMappingURL=ConsoleLoggingTracerBackend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleLoggingTracerBackend.js","sourceRoot":"","sources":["../../../src/tracing/ConsoleLoggingTracerBackend.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,2BAA2B;IASpC,YAAY,OAA4C,EAAE,WAA6B;QAJtE,iBAAY,GAA6B,IAAI,GAAG,EAAE,CAAC;QACnD,kBAAa,GAAwB,IAAI,GAAG,EAAE,CAAC;QAI5D,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAK,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,IAAK,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,IAAe;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACJ,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAEO,cAAc;QAClB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO;QACX,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACxE,2DAA2D;QAC1D,IAAI,CAAC,UAAqC,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1D,CAAC;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAChC,CAAC;IACL,CAAC;IAEO,KAAK;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACpD,IAAI,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAe;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO;QACX,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAEO,UAAU,CAAC,OAAe,EAAE,KAAkB;QAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAmC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAExD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,4DAA4D;YAC5D,+DAA+D;YAC/D,sBAAsB;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACtG,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,CAAY,EAAE,CAAY,EAAU,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAEtF,MAAM,SAAS,GAAG,CAAC,IAAe,EAAQ,EAAE;YACxC,MAAM,QAAQ,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC9B,OAAO;YACX,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC3B,SAAS,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,OAAO,KAAK,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC9F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;CACJ"}
@@ -0,0 +1,14 @@
1
+ import { LogLevel } from '../eimer/LogLevel';
2
+ import { EimerLogger } from '../logger/EimerLogger';
3
+ /**
4
+ * A `TracerBackend` that logs every recorded span via `Logger`
5
+ */
6
+ export class EimerLoggerTracerBackend {
7
+ constructor(logger) {
8
+ this.logger = logger ?? new EimerLogger(LogLevel.INFO, 'EimerLoggerTracerBackend');
9
+ }
10
+ handleSpan(span) {
11
+ this.logger.info(`${span.name} (${span.durationMs.toFixed(2)}ms)`, span);
12
+ }
13
+ }
14
+ //# sourceMappingURL=EimerLoggerTracerBackend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EimerLoggerTracerBackend.js","sourceRoot":"","sources":["../../../src/tracing/EimerLoggerTracerBackend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAGjC,YAAY,MAAe;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IACvF,CAAC;IAED,UAAU,CAAC,IAAe;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;CACJ"}
@@ -0,0 +1,23 @@
1
+ import { EimerIdGenerator } from '../id-generator/EimerIdGenerator';
2
+ /**
3
+ * `Tracer` that does nothing (except id generation)
4
+ * Saves a bunch of if-statements wherever a tracer is optional
5
+ */
6
+ export class EimerNoopTracer {
7
+ constructor(idGenerator) {
8
+ this.idGenerator = idGenerator ?? new EimerIdGenerator();
9
+ }
10
+ setBackend(_backend) {
11
+ // no-op
12
+ }
13
+ startSpan(_name, _metadata, parent) {
14
+ return { traceId: parent?.traceId ?? this.idGenerator.generateId(), spanId: this.idGenerator.generateId() };
15
+ }
16
+ endSpan(_tracedId, _metadata) {
17
+ // no-op
18
+ }
19
+ shutdown() {
20
+ // no-op
21
+ }
22
+ }
23
+ //# sourceMappingURL=EimerNoopTracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EimerNoopTracer.js","sourceRoot":"","sources":["../../../src/tracing/EimerNoopTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAQpE;;;GAGG;AACH,MAAM,OAAO,eAAe;IAGxB,YAAY,WAAyB;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,gBAAgB,EAAE,CAAC;IAC7D,CAAC;IAED,UAAU,CAAC,QAAwB;QAC/B,QAAQ;IACZ,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,SAAmC,EAAE,MAAqB;QAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC;IAChH,CAAC;IAED,OAAO,CAAC,SAAkB,EAAE,SAAmC;QAC3D,QAAQ;IACZ,CAAC;IAED,QAAQ;QACJ,QAAQ;IACZ,CAAC;CACJ"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * A `TracerBackend` that sends forwards spans through through an Eimer instance
3
+ *
4
+ * This backend only *sends* spans - it should be paired with `EimerTraceSubscriber`
5
+ * elsewhere on the Eimer mesh to *receive* and process the spans.
6
+ */
7
+ export class EimerPublishingTracerBackend {
8
+ constructor(eimer, topic = 'eimer.traces') {
9
+ this.eimer = eimer;
10
+ this.topic = topic;
11
+ }
12
+ handleSpan(span) {
13
+ this.eimer.publish(this.topic, span);
14
+ }
15
+ }
16
+ //# sourceMappingURL=EimerPublishingTracerBackend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EimerPublishingTracerBackend.js","sourceRoot":"","sources":["../../../src/tracing/EimerPublishingTracerBackend.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,OAAO,4BAA4B;IAIrC,YAAY,KAAY,EAAE,QAAe,cAAc;QACnD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,IAAe;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;CACJ"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The companion to `EimerPublishingTracerBackend`.
3
+ *
4
+ * Subscribes to the Eimer traces on `topic` and forwards every received
5
+ * `TraceSpan` into its configured `backend`
6
+ */
7
+ export class EimerTraceSubscriber {
8
+ constructor(eimer, backend, topic = 'eimer.traces') {
9
+ this.backend = backend;
10
+ this.unsubscribe = eimer.subscribe(topic, (payload) => {
11
+ this.backend.handleSpan(payload);
12
+ });
13
+ }
14
+ /** Stop receiving spans and unsubscribe from `topic`. */
15
+ stop() {
16
+ this.unsubscribe();
17
+ }
18
+ }
19
+ //# sourceMappingURL=EimerTraceSubscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EimerTraceSubscriber.js","sourceRoot":"","sources":["../../../src/tracing/EimerTraceSubscriber.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAI7B,YAAY,KAAY,EAAE,OAAsB,EAAE,QAAe,cAAc;QAC3E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YAClD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAoB,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,yDAAyD;IACzD,IAAI;QACA,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;CACJ"}