julewire-core 1.0.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 (164) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +6 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +73 -0
  5. data/docs/advanced-configuration.md +66 -0
  6. data/docs/attribute-keys.md +74 -0
  7. data/docs/configuration.md +327 -0
  8. data/docs/context-and-propagation.md +353 -0
  9. data/docs/contracts.md +211 -0
  10. data/docs/development.md +49 -0
  11. data/docs/extensions-and-api.md +567 -0
  12. data/docs/health-schema.md +104 -0
  13. data/docs/instrumentation-cheatsheet.md +29 -0
  14. data/docs/internals.md +135 -0
  15. data/docs/outputs-and-lifecycle.md +206 -0
  16. data/docs/quickstart.md +133 -0
  17. data/docs/record-sources.md +17 -0
  18. data/docs/records-and-data-policy.md +230 -0
  19. data/docs/security-and-wire.md +45 -0
  20. data/docs/tail.md +91 -0
  21. data/exe/julewire +6 -0
  22. data/julewire-core.gemspec +41 -0
  23. data/lib/julewire/core/cli/doctor.rb +143 -0
  24. data/lib/julewire/core/cli/line_helpers.rb +77 -0
  25. data/lib/julewire/core/cli/log_formats/console_text.rb +25 -0
  26. data/lib/julewire/core/cli/log_formats/core_json_decoder.rb +46 -0
  27. data/lib/julewire/core/cli/log_formats/core_json_encoder.rb +21 -0
  28. data/lib/julewire/core/cli/log_formats/record_decoder.rb +39 -0
  29. data/lib/julewire/core/cli/log_formats.rb +123 -0
  30. data/lib/julewire/core/cli/tail.rb +153 -0
  31. data/lib/julewire/core/cli/transcode.rb +105 -0
  32. data/lib/julewire/core/cli.rb +73 -0
  33. data/lib/julewire/core/configuration.rb +99 -0
  34. data/lib/julewire/core/context_store.rb +384 -0
  35. data/lib/julewire/core/destinations/chaos_output.rb +91 -0
  36. data/lib/julewire/core/destinations/collection.rb +177 -0
  37. data/lib/julewire/core/destinations/definition.rb +125 -0
  38. data/lib/julewire/core/destinations/destination.rb +268 -0
  39. data/lib/julewire/core/destinations/registry.rb +81 -0
  40. data/lib/julewire/core/destinations/sink.rb +35 -0
  41. data/lib/julewire/core/destinations/synchronized_output.rb +57 -0
  42. data/lib/julewire/core/destinations/tail_sampling.rb +321 -0
  43. data/lib/julewire/core/destinations/write_step.rb +119 -0
  44. data/lib/julewire/core/destinations.rb +33 -0
  45. data/lib/julewire/core/diagnostics/callback_notifier.rb +63 -0
  46. data/lib/julewire/core/diagnostics/doctor.rb +114 -0
  47. data/lib/julewire/core/diagnostics/failure_snapshot.rb +39 -0
  48. data/lib/julewire/core/diagnostics/health.rb +144 -0
  49. data/lib/julewire/core/diagnostics/integration_health_store.rb +64 -0
  50. data/lib/julewire/core/diagnostics/internal_records.rb +61 -0
  51. data/lib/julewire/core/diagnostics/invalid_severity_reporter.rb +112 -0
  52. data/lib/julewire/core/diagnostics/meta_observer.rb +161 -0
  53. data/lib/julewire/core/diagnostics/process_integration_health.rb +26 -0
  54. data/lib/julewire/core/diagnostics/tail/renderer.rb +36 -0
  55. data/lib/julewire/core/diagnostics/tail.rb +168 -0
  56. data/lib/julewire/core/diagnostics.rb +8 -0
  57. data/lib/julewire/core/error.rb +7 -0
  58. data/lib/julewire/core/execution/boundary.rb +106 -0
  59. data/lib/julewire/core/execution/handle.rb +77 -0
  60. data/lib/julewire/core/execution/lineage.rb +192 -0
  61. data/lib/julewire/core/execution/measurement_handle.rb +28 -0
  62. data/lib/julewire/core/execution/no_current_error.rb +9 -0
  63. data/lib/julewire/core/execution/scope.rb +246 -0
  64. data/lib/julewire/core/execution/scope_fields.rb +76 -0
  65. data/lib/julewire/core/execution/scope_identity.rb +71 -0
  66. data/lib/julewire/core/execution/scope_snapshot.rb +92 -0
  67. data/lib/julewire/core/execution/summary_state.rb +206 -0
  68. data/lib/julewire/core/execution/view.rb +56 -0
  69. data/lib/julewire/core/facade_methods.rb +181 -0
  70. data/lib/julewire/core/fields/attribute_keys.rb +54 -0
  71. data/lib/julewire/core/fields/attributes_proxy.rb +11 -0
  72. data/lib/julewire/core/fields/bags.rb +123 -0
  73. data/lib/julewire/core/fields/carry_proxy.rb +22 -0
  74. data/lib/julewire/core/fields/context_proxy.rb +11 -0
  75. data/lib/julewire/core/fields/field_set.rb +78 -0
  76. data/lib/julewire/core/fields/field_stack.rb +269 -0
  77. data/lib/julewire/core/fields/internal/deletion.rb +68 -0
  78. data/lib/julewire/core/fields/internal.rb +87 -0
  79. data/lib/julewire/core/fields/lookup.rb +35 -0
  80. data/lib/julewire/core/fields/section_proxy.rb +88 -0
  81. data/lib/julewire/core/fields/stack_set.rb +69 -0
  82. data/lib/julewire/core/fields/static_labels.rb +43 -0
  83. data/lib/julewire/core/fields/summary_proxy.rb +62 -0
  84. data/lib/julewire/core/integration/configurable.rb +52 -0
  85. data/lib/julewire/core/integration/destination_health.rb +43 -0
  86. data/lib/julewire/core/integration/event_subscriber.rb +62 -0
  87. data/lib/julewire/core/integration/facade.rb +131 -0
  88. data/lib/julewire/core/integration/fork_hooks.rb +79 -0
  89. data/lib/julewire/core/integration/health.rb +41 -0
  90. data/lib/julewire/core/integration/ivar_state.rb +38 -0
  91. data/lib/julewire/core/integration/lifecycle.rb +22 -0
  92. data/lib/julewire/core/integration/scoped.rb +34 -0
  93. data/lib/julewire/core/integration/settings.rb +92 -0
  94. data/lib/julewire/core/integration/subscriber_install.rb +39 -0
  95. data/lib/julewire/core/integration/subscription.rb +29 -0
  96. data/lib/julewire/core/integration/values.rb +192 -0
  97. data/lib/julewire/core/lifecycle_error.rb +7 -0
  98. data/lib/julewire/core/local_storage.rb +91 -0
  99. data/lib/julewire/core/processing/level_threshold.rb +53 -0
  100. data/lib/julewire/core/processing/match.rb +74 -0
  101. data/lib/julewire/core/processing/pipeline.rb +360 -0
  102. data/lib/julewire/core/processing/processor_chain.rb +69 -0
  103. data/lib/julewire/core/processing/processor_registry.rb +115 -0
  104. data/lib/julewire/core/processing/processor_wrapper.rb +44 -0
  105. data/lib/julewire/core/processing/record_field_transform.rb +124 -0
  106. data/lib/julewire/core/processing/sampling.rb +109 -0
  107. data/lib/julewire/core/processing.rb +41 -0
  108. data/lib/julewire/core/propagation/carrier.rb +93 -0
  109. data/lib/julewire/core/propagation.rb +50 -0
  110. data/lib/julewire/core/records/console_formatter.rb +24 -0
  111. data/lib/julewire/core/records/deconstruct.rb +19 -0
  112. data/lib/julewire/core/records/display_message.rb +166 -0
  113. data/lib/julewire/core/records/draft.rb +576 -0
  114. data/lib/julewire/core/records/formatter.rb +14 -0
  115. data/lib/julewire/core/records/lazy_emit_input.rb +99 -0
  116. data/lib/julewire/core/records/metadata.rb +23 -0
  117. data/lib/julewire/core/records/public_projection.rb +51 -0
  118. data/lib/julewire/core/records/raw_input.rb +41 -0
  119. data/lib/julewire/core/records/record.rb +175 -0
  120. data/lib/julewire/core/records/severity.rb +44 -0
  121. data/lib/julewire/core/runtime.rb +515 -0
  122. data/lib/julewire/core/runtime_locator.rb +20 -0
  123. data/lib/julewire/core/runtime_registry.rb +48 -0
  124. data/lib/julewire/core/runtime_state.rb +39 -0
  125. data/lib/julewire/core/scheduling/deadline.rb +24 -0
  126. data/lib/julewire/core/scheduling/deadline_scheduler.rb +207 -0
  127. data/lib/julewire/core/scheduling/shared_scheduler.rb +48 -0
  128. data/lib/julewire/core/sentinel.rb +18 -0
  129. data/lib/julewire/core/serialization/backtrace_limiter.rb +50 -0
  130. data/lib/julewire/core/serialization/bounded_transform.rb +55 -0
  131. data/lib/julewire/core/serialization/bounded_traversal.rb +274 -0
  132. data/lib/julewire/core/serialization/deep_compact_empty.rb +67 -0
  133. data/lib/julewire/core/serialization/deep_freeze.rb +63 -0
  134. data/lib/julewire/core/serialization/encoding_sanitizer.rb +40 -0
  135. data/lib/julewire/core/serialization/exception_shape.rb +88 -0
  136. data/lib/julewire/core/serialization/json_encoder.rb +69 -0
  137. data/lib/julewire/core/serialization/serializer.rb +233 -0
  138. data/lib/julewire/core/serialization/serializer_pool.rb +21 -0
  139. data/lib/julewire/core/serialization/text_encoder.rb +147 -0
  140. data/lib/julewire/core/serialization/value_copy.rb +209 -0
  141. data/lib/julewire/core/serialization/value_traversal.rb +150 -0
  142. data/lib/julewire/core/testing/chaos/catalog.rb +72 -0
  143. data/lib/julewire/core/testing/chaos/core_runtime.rb +120 -0
  144. data/lib/julewire/core/testing/chaos/destination.rb +55 -0
  145. data/lib/julewire/core/testing/chaos/emitter.rb +20 -0
  146. data/lib/julewire/core/testing/chaos/raising_output.rb +42 -0
  147. data/lib/julewire/core/testing/chaos.rb +80 -0
  148. data/lib/julewire/core/testing/contracts/component.rb +162 -0
  149. data/lib/julewire/core/testing/contracts/deadline_scheduler.rb +59 -0
  150. data/lib/julewire/core/testing/contracts/integration.rb +166 -0
  151. data/lib/julewire/core/testing/contracts/integration_fields.rb +36 -0
  152. data/lib/julewire/core/testing/contracts/record_draft.rb +37 -0
  153. data/lib/julewire/core/testing/contracts/runtime.rb +178 -0
  154. data/lib/julewire/core/testing/contracts/wire.rb +60 -0
  155. data/lib/julewire/core/testing/contracts.rb +24 -0
  156. data/lib/julewire/core/testing/coverage.rb +58 -0
  157. data/lib/julewire/core/testing/test_reports.rb +78 -0
  158. data/lib/julewire/core/testing.rb +122 -0
  159. data/lib/julewire/core/validation.rb +69 -0
  160. data/lib/julewire/core/version.rb +7 -0
  161. data/lib/julewire/core.rb +80 -0
  162. data/lib/julewire/error.rb +5 -0
  163. data/lib/julewire-core.rb +3 -0
  164. metadata +237 -0
metadata ADDED
@@ -0,0 +1,237 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: julewire-core
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Alexander Grebennik
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: concurrent-ruby
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '1.3'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '1.3'
26
+ - !ruby/object:Gem::Dependency
27
+ name: zeitwerk
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.8.1
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 2.8.1
40
+ description: Provider-neutral records, execution context, processors, destinations,
41
+ and formatters for Julewire.
42
+ email:
43
+ - slbug@users.noreply.github.com
44
+ - sl.bug.sl@gmail.com
45
+ executables:
46
+ - julewire
47
+ extensions: []
48
+ extra_rdoc_files: []
49
+ files:
50
+ - CHANGELOG.md
51
+ - LICENSE.txt
52
+ - README.md
53
+ - docs/advanced-configuration.md
54
+ - docs/attribute-keys.md
55
+ - docs/configuration.md
56
+ - docs/context-and-propagation.md
57
+ - docs/contracts.md
58
+ - docs/development.md
59
+ - docs/extensions-and-api.md
60
+ - docs/health-schema.md
61
+ - docs/instrumentation-cheatsheet.md
62
+ - docs/internals.md
63
+ - docs/outputs-and-lifecycle.md
64
+ - docs/quickstart.md
65
+ - docs/record-sources.md
66
+ - docs/records-and-data-policy.md
67
+ - docs/security-and-wire.md
68
+ - docs/tail.md
69
+ - exe/julewire
70
+ - julewire-core.gemspec
71
+ - lib/julewire-core.rb
72
+ - lib/julewire/core.rb
73
+ - lib/julewire/core/cli.rb
74
+ - lib/julewire/core/cli/doctor.rb
75
+ - lib/julewire/core/cli/line_helpers.rb
76
+ - lib/julewire/core/cli/log_formats.rb
77
+ - lib/julewire/core/cli/log_formats/console_text.rb
78
+ - lib/julewire/core/cli/log_formats/core_json_decoder.rb
79
+ - lib/julewire/core/cli/log_formats/core_json_encoder.rb
80
+ - lib/julewire/core/cli/log_formats/record_decoder.rb
81
+ - lib/julewire/core/cli/tail.rb
82
+ - lib/julewire/core/cli/transcode.rb
83
+ - lib/julewire/core/configuration.rb
84
+ - lib/julewire/core/context_store.rb
85
+ - lib/julewire/core/destinations.rb
86
+ - lib/julewire/core/destinations/chaos_output.rb
87
+ - lib/julewire/core/destinations/collection.rb
88
+ - lib/julewire/core/destinations/definition.rb
89
+ - lib/julewire/core/destinations/destination.rb
90
+ - lib/julewire/core/destinations/registry.rb
91
+ - lib/julewire/core/destinations/sink.rb
92
+ - lib/julewire/core/destinations/synchronized_output.rb
93
+ - lib/julewire/core/destinations/tail_sampling.rb
94
+ - lib/julewire/core/destinations/write_step.rb
95
+ - lib/julewire/core/diagnostics.rb
96
+ - lib/julewire/core/diagnostics/callback_notifier.rb
97
+ - lib/julewire/core/diagnostics/doctor.rb
98
+ - lib/julewire/core/diagnostics/failure_snapshot.rb
99
+ - lib/julewire/core/diagnostics/health.rb
100
+ - lib/julewire/core/diagnostics/integration_health_store.rb
101
+ - lib/julewire/core/diagnostics/internal_records.rb
102
+ - lib/julewire/core/diagnostics/invalid_severity_reporter.rb
103
+ - lib/julewire/core/diagnostics/meta_observer.rb
104
+ - lib/julewire/core/diagnostics/process_integration_health.rb
105
+ - lib/julewire/core/diagnostics/tail.rb
106
+ - lib/julewire/core/diagnostics/tail/renderer.rb
107
+ - lib/julewire/core/error.rb
108
+ - lib/julewire/core/execution/boundary.rb
109
+ - lib/julewire/core/execution/handle.rb
110
+ - lib/julewire/core/execution/lineage.rb
111
+ - lib/julewire/core/execution/measurement_handle.rb
112
+ - lib/julewire/core/execution/no_current_error.rb
113
+ - lib/julewire/core/execution/scope.rb
114
+ - lib/julewire/core/execution/scope_fields.rb
115
+ - lib/julewire/core/execution/scope_identity.rb
116
+ - lib/julewire/core/execution/scope_snapshot.rb
117
+ - lib/julewire/core/execution/summary_state.rb
118
+ - lib/julewire/core/execution/view.rb
119
+ - lib/julewire/core/facade_methods.rb
120
+ - lib/julewire/core/fields/attribute_keys.rb
121
+ - lib/julewire/core/fields/attributes_proxy.rb
122
+ - lib/julewire/core/fields/bags.rb
123
+ - lib/julewire/core/fields/carry_proxy.rb
124
+ - lib/julewire/core/fields/context_proxy.rb
125
+ - lib/julewire/core/fields/field_set.rb
126
+ - lib/julewire/core/fields/field_stack.rb
127
+ - lib/julewire/core/fields/internal.rb
128
+ - lib/julewire/core/fields/internal/deletion.rb
129
+ - lib/julewire/core/fields/lookup.rb
130
+ - lib/julewire/core/fields/section_proxy.rb
131
+ - lib/julewire/core/fields/stack_set.rb
132
+ - lib/julewire/core/fields/static_labels.rb
133
+ - lib/julewire/core/fields/summary_proxy.rb
134
+ - lib/julewire/core/integration/configurable.rb
135
+ - lib/julewire/core/integration/destination_health.rb
136
+ - lib/julewire/core/integration/event_subscriber.rb
137
+ - lib/julewire/core/integration/facade.rb
138
+ - lib/julewire/core/integration/fork_hooks.rb
139
+ - lib/julewire/core/integration/health.rb
140
+ - lib/julewire/core/integration/ivar_state.rb
141
+ - lib/julewire/core/integration/lifecycle.rb
142
+ - lib/julewire/core/integration/scoped.rb
143
+ - lib/julewire/core/integration/settings.rb
144
+ - lib/julewire/core/integration/subscriber_install.rb
145
+ - lib/julewire/core/integration/subscription.rb
146
+ - lib/julewire/core/integration/values.rb
147
+ - lib/julewire/core/lifecycle_error.rb
148
+ - lib/julewire/core/local_storage.rb
149
+ - lib/julewire/core/processing.rb
150
+ - lib/julewire/core/processing/level_threshold.rb
151
+ - lib/julewire/core/processing/match.rb
152
+ - lib/julewire/core/processing/pipeline.rb
153
+ - lib/julewire/core/processing/processor_chain.rb
154
+ - lib/julewire/core/processing/processor_registry.rb
155
+ - lib/julewire/core/processing/processor_wrapper.rb
156
+ - lib/julewire/core/processing/record_field_transform.rb
157
+ - lib/julewire/core/processing/sampling.rb
158
+ - lib/julewire/core/propagation.rb
159
+ - lib/julewire/core/propagation/carrier.rb
160
+ - lib/julewire/core/records/console_formatter.rb
161
+ - lib/julewire/core/records/deconstruct.rb
162
+ - lib/julewire/core/records/display_message.rb
163
+ - lib/julewire/core/records/draft.rb
164
+ - lib/julewire/core/records/formatter.rb
165
+ - lib/julewire/core/records/lazy_emit_input.rb
166
+ - lib/julewire/core/records/metadata.rb
167
+ - lib/julewire/core/records/public_projection.rb
168
+ - lib/julewire/core/records/raw_input.rb
169
+ - lib/julewire/core/records/record.rb
170
+ - lib/julewire/core/records/severity.rb
171
+ - lib/julewire/core/runtime.rb
172
+ - lib/julewire/core/runtime_locator.rb
173
+ - lib/julewire/core/runtime_registry.rb
174
+ - lib/julewire/core/runtime_state.rb
175
+ - lib/julewire/core/scheduling/deadline.rb
176
+ - lib/julewire/core/scheduling/deadline_scheduler.rb
177
+ - lib/julewire/core/scheduling/shared_scheduler.rb
178
+ - lib/julewire/core/sentinel.rb
179
+ - lib/julewire/core/serialization/backtrace_limiter.rb
180
+ - lib/julewire/core/serialization/bounded_transform.rb
181
+ - lib/julewire/core/serialization/bounded_traversal.rb
182
+ - lib/julewire/core/serialization/deep_compact_empty.rb
183
+ - lib/julewire/core/serialization/deep_freeze.rb
184
+ - lib/julewire/core/serialization/encoding_sanitizer.rb
185
+ - lib/julewire/core/serialization/exception_shape.rb
186
+ - lib/julewire/core/serialization/json_encoder.rb
187
+ - lib/julewire/core/serialization/serializer.rb
188
+ - lib/julewire/core/serialization/serializer_pool.rb
189
+ - lib/julewire/core/serialization/text_encoder.rb
190
+ - lib/julewire/core/serialization/value_copy.rb
191
+ - lib/julewire/core/serialization/value_traversal.rb
192
+ - lib/julewire/core/testing.rb
193
+ - lib/julewire/core/testing/chaos.rb
194
+ - lib/julewire/core/testing/chaos/catalog.rb
195
+ - lib/julewire/core/testing/chaos/core_runtime.rb
196
+ - lib/julewire/core/testing/chaos/destination.rb
197
+ - lib/julewire/core/testing/chaos/emitter.rb
198
+ - lib/julewire/core/testing/chaos/raising_output.rb
199
+ - lib/julewire/core/testing/contracts.rb
200
+ - lib/julewire/core/testing/contracts/component.rb
201
+ - lib/julewire/core/testing/contracts/deadline_scheduler.rb
202
+ - lib/julewire/core/testing/contracts/integration.rb
203
+ - lib/julewire/core/testing/contracts/integration_fields.rb
204
+ - lib/julewire/core/testing/contracts/record_draft.rb
205
+ - lib/julewire/core/testing/contracts/runtime.rb
206
+ - lib/julewire/core/testing/contracts/wire.rb
207
+ - lib/julewire/core/testing/coverage.rb
208
+ - lib/julewire/core/testing/test_reports.rb
209
+ - lib/julewire/core/validation.rb
210
+ - lib/julewire/core/version.rb
211
+ - lib/julewire/error.rb
212
+ homepage: https://github.com/slbug/julewire
213
+ licenses:
214
+ - MIT
215
+ metadata:
216
+ homepage_uri: https://github.com/slbug/julewire
217
+ source_code_uri: https://github.com/slbug/julewire/tree/main/gems/core
218
+ changelog_uri: https://github.com/slbug/julewire/blob/main/gems/core/CHANGELOG.md
219
+ rubygems_mfa_required: 'true'
220
+ rdoc_options: []
221
+ require_paths:
222
+ - lib
223
+ required_ruby_version: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '3.4'
228
+ required_rubygems_version: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ requirements: []
234
+ rubygems_version: 4.0.14
235
+ specification_version: 4
236
+ summary: Execution-scoped structured logging core for Ruby applications.
237
+ test_files: []