@temporalio/core-bridge 1.13.1 → 1.14.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 (422) hide show
  1. package/Cargo.lock +350 -436
  2. package/Cargo.toml +14 -13
  3. package/{sdk-core/fsm/rustfsm_procmacro/LICENSE.txt → LICENSE} +5 -5
  4. package/README.md +0 -1
  5. package/bridge-macros/Cargo.toml +16 -0
  6. package/bridge-macros/src/derive_js_function.rs +126 -0
  7. package/bridge-macros/src/derive_tryfromjs.rs +138 -0
  8. package/bridge-macros/src/derive_tryintojs.rs +151 -0
  9. package/bridge-macros/src/lib.rs +42 -0
  10. package/lib/native.d.ts +23 -9
  11. package/package.json +6 -5
  12. package/releases/aarch64-apple-darwin/index.node +0 -0
  13. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  14. package/releases/x86_64-apple-darwin/index.node +0 -0
  15. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  16. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  17. package/sdk-core/.cargo/config.toml +78 -12
  18. package/sdk-core/.clippy.toml +1 -0
  19. package/sdk-core/.github/workflows/heavy.yml +2 -0
  20. package/sdk-core/.github/workflows/per-pr.yml +90 -21
  21. package/sdk-core/AGENTS.md +17 -19
  22. package/sdk-core/ARCHITECTURE.md +44 -48
  23. package/sdk-core/Cargo.toml +25 -7
  24. package/sdk-core/README.md +16 -15
  25. package/sdk-core/arch_docs/diagrams/TimerMachine_Coverage.puml +14 -0
  26. package/sdk-core/arch_docs/diagrams/deps.svg +102 -0
  27. package/sdk-core/arch_docs/diagrams/initial_event_history.png +0 -0
  28. package/sdk-core/arch_docs/sdks_intro.md +299 -0
  29. package/sdk-core/{client → crates/client}/Cargo.toml +15 -16
  30. package/sdk-core/{client → crates/client}/src/callback_based.rs +1 -2
  31. package/sdk-core/{client → crates/client}/src/lib.rs +594 -457
  32. package/sdk-core/{client → crates/client}/src/metrics.rs +32 -8
  33. package/sdk-core/crates/client/src/proxy.rs +209 -0
  34. package/sdk-core/{client → crates/client}/src/raw.rs +648 -328
  35. package/sdk-core/crates/client/src/replaceable.rs +253 -0
  36. package/sdk-core/crates/client/src/request_extensions.rs +40 -0
  37. package/sdk-core/{client → crates/client}/src/retry.rs +32 -22
  38. package/sdk-core/crates/client/src/worker/mod.rs +1468 -0
  39. package/sdk-core/{client → crates/client}/src/workflow_handle/mod.rs +24 -21
  40. package/sdk-core/{core-api → crates/common}/Cargo.toml +21 -12
  41. package/sdk-core/{sdk-core-protos → crates/common}/build.rs +10 -23
  42. package/sdk-core/crates/common/protos/api_cloud_upstream/VERSION +1 -0
  43. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/account/v1/message.proto +18 -0
  44. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/request_response.proto +38 -11
  45. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/cloudservice/v1/service.proto +21 -4
  46. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/operation/v1/message.proto +6 -6
  47. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/sink/v1/message.proto +22 -0
  48. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/create-release.yml +13 -0
  49. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/openapi/openapiv2.json +254 -5
  50. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/openapi/openapiv3.yaml +234 -5
  51. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/common/v1/message.proto +1 -1
  52. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/deployment/v1/message.proto +6 -0
  53. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/namespace/v1/message.proto +6 -2
  54. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +60 -2
  55. package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +30 -6
  56. package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +2 -0
  57. package/sdk-core/{core-api → crates/common}/src/envconfig.rs +155 -56
  58. package/sdk-core/{core-api → crates/common}/src/errors.rs +8 -1
  59. package/sdk-core/{fsm/rustfsm_trait/src/lib.rs → crates/common/src/fsm_trait.rs} +1 -27
  60. package/sdk-core/{core-api → crates/common}/src/lib.rs +92 -9
  61. package/sdk-core/{test-utils/src → crates/common/src/protos}/canned_histories.rs +5 -5
  62. package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/history_builder.rs +3 -3
  63. package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/history_info.rs +2 -2
  64. package/sdk-core/{sdk-core-protos/src/lib.rs → crates/common/src/protos/mod.rs} +43 -26
  65. package/sdk-core/crates/common/src/protos/test_utils.rs +89 -0
  66. package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/utilities.rs +14 -5
  67. package/sdk-core/{core-api → crates/common}/src/telemetry/metrics.rs +449 -51
  68. package/sdk-core/{core-api → crates/common}/src/telemetry.rs +16 -1
  69. package/sdk-core/{core-api → crates/common}/src/worker.rs +112 -18
  70. package/sdk-core/crates/common/tests/worker_task_types_test.rs +129 -0
  71. package/sdk-core/crates/macros/Cargo.toml +23 -0
  72. package/sdk-core/{fsm/rustfsm_procmacro → crates/macros}/src/lib.rs +12 -12
  73. package/sdk-core/{sdk → crates/sdk}/Cargo.toml +18 -12
  74. package/sdk-core/{sdk → crates/sdk}/src/activity_context.rs +9 -7
  75. package/sdk-core/{sdk → crates/sdk}/src/app_data.rs +1 -1
  76. package/sdk-core/{sdk → crates/sdk}/src/interceptors.rs +2 -5
  77. package/sdk-core/{sdk → crates/sdk}/src/lib.rs +43 -42
  78. package/sdk-core/{sdk → crates/sdk}/src/workflow_context/options.rs +12 -3
  79. package/sdk-core/{sdk → crates/sdk}/src/workflow_context.rs +21 -19
  80. package/sdk-core/{sdk → crates/sdk}/src/workflow_future.rs +2 -2
  81. package/sdk-core/crates/sdk-core/Cargo.toml +222 -0
  82. package/sdk-core/{core/benches/workflow_replay.rs → crates/sdk-core/benches/workflow_replay_bench.rs} +15 -10
  83. package/sdk-core/crates/sdk-core/machine_coverage/ActivityMachine_Coverage.puml +32 -0
  84. package/sdk-core/crates/sdk-core/machine_coverage/CancelExternalMachine_Coverage.puml +9 -0
  85. package/sdk-core/crates/sdk-core/machine_coverage/CancelWorkflowMachine_Coverage.puml +6 -0
  86. package/sdk-core/crates/sdk-core/machine_coverage/ChildWorkflowMachine_Coverage.puml +27 -0
  87. package/sdk-core/crates/sdk-core/machine_coverage/CompleteWorkflowMachine_Coverage.puml +6 -0
  88. package/sdk-core/crates/sdk-core/machine_coverage/ContinueAsNewWorkflowMachine_Coverage.puml +6 -0
  89. package/sdk-core/crates/sdk-core/machine_coverage/FailWorkflowMachine_Coverage.puml +6 -0
  90. package/sdk-core/crates/sdk-core/machine_coverage/LocalActivityMachine_Coverage.puml +23 -0
  91. package/sdk-core/crates/sdk-core/machine_coverage/ModifyWorkflowPropertiesMachine_Coverage.puml +5 -0
  92. package/sdk-core/crates/sdk-core/machine_coverage/PatchMachine_Coverage.puml +8 -0
  93. package/sdk-core/crates/sdk-core/machine_coverage/SignalExternalMachine_Coverage.puml +12 -0
  94. package/sdk-core/crates/sdk-core/machine_coverage/TimerMachine_Coverage.puml +13 -0
  95. package/sdk-core/crates/sdk-core/machine_coverage/UpdateMachine_Coverage.puml +19 -0
  96. package/sdk-core/crates/sdk-core/machine_coverage/UpsertSearchAttributesMachine_Coverage.puml +5 -0
  97. package/sdk-core/crates/sdk-core/machine_coverage/WorkflowTaskMachine_Coverage.puml +11 -0
  98. package/sdk-core/{core → crates/sdk-core}/src/abstractions.rs +62 -6
  99. package/sdk-core/crates/sdk-core/src/antithesis.rs +60 -0
  100. package/sdk-core/{core → crates/sdk-core}/src/core_tests/activity_tasks.rs +85 -250
  101. package/sdk-core/{core → crates/sdk-core}/src/core_tests/mod.rs +13 -16
  102. package/sdk-core/{core → crates/sdk-core}/src/core_tests/queries.rs +25 -24
  103. package/sdk-core/{core → crates/sdk-core}/src/core_tests/replay_flag.rs +11 -68
  104. package/sdk-core/{core → crates/sdk-core}/src/core_tests/updates.rs +21 -20
  105. package/sdk-core/{core → crates/sdk-core}/src/core_tests/workers.rs +242 -16
  106. package/sdk-core/{core → crates/sdk-core}/src/core_tests/workflow_cancels.rs +10 -7
  107. package/sdk-core/{core → crates/sdk-core}/src/core_tests/workflow_tasks.rs +150 -326
  108. package/sdk-core/{core → crates/sdk-core}/src/debug_client.rs +1 -1
  109. package/sdk-core/{core → crates/sdk-core}/src/ephemeral_server/mod.rs +18 -6
  110. package/sdk-core/{test-utils → crates/sdk-core}/src/histfetch.rs +9 -4
  111. package/sdk-core/{core → crates/sdk-core}/src/internal_flags.rs +15 -4
  112. package/sdk-core/{core → crates/sdk-core}/src/lib.rs +128 -72
  113. package/sdk-core/{core → crates/sdk-core}/src/pollers/mod.rs +13 -11
  114. package/sdk-core/{core → crates/sdk-core}/src/pollers/poll_buffer.rs +53 -18
  115. package/sdk-core/{core → crates/sdk-core}/src/protosext/mod.rs +14 -6
  116. package/sdk-core/{core → crates/sdk-core}/src/protosext/protocol_messages.rs +5 -12
  117. package/sdk-core/{core → crates/sdk-core}/src/replay/mod.rs +14 -11
  118. package/sdk-core/crates/sdk-core/src/retry_logic.rs +390 -0
  119. package/sdk-core/{core → crates/sdk-core}/src/telemetry/log_export.rs +2 -2
  120. package/sdk-core/{core → crates/sdk-core}/src/telemetry/metrics.rs +80 -33
  121. package/sdk-core/{core → crates/sdk-core}/src/telemetry/mod.rs +12 -6
  122. package/sdk-core/{core → crates/sdk-core}/src/telemetry/otel.rs +1 -1
  123. package/sdk-core/{core → crates/sdk-core}/src/telemetry/prometheus_meter.rs +14 -14
  124. package/sdk-core/{core → crates/sdk-core}/src/telemetry/prometheus_server.rs +2 -2
  125. package/sdk-core/{core/src/test_help/mod.rs → crates/sdk-core/src/test_help/integ_helpers.rs} +284 -329
  126. package/sdk-core/crates/sdk-core/src/test_help/mod.rs +13 -0
  127. package/sdk-core/crates/sdk-core/src/test_help/unit_helpers.rs +220 -0
  128. package/sdk-core/{core → crates/sdk-core}/src/worker/activities/activity_heartbeat_manager.rs +44 -8
  129. package/sdk-core/{core → crates/sdk-core}/src/worker/activities/local_activities.rs +33 -31
  130. package/sdk-core/{core → crates/sdk-core}/src/worker/activities.rs +31 -15
  131. package/sdk-core/{core → crates/sdk-core}/src/worker/client/mocks.rs +28 -15
  132. package/sdk-core/{core → crates/sdk-core}/src/worker/client.rs +275 -145
  133. package/sdk-core/crates/sdk-core/src/worker/heartbeat.rs +246 -0
  134. package/sdk-core/crates/sdk-core/src/worker/mod.rs +1462 -0
  135. package/sdk-core/{core → crates/sdk-core}/src/worker/nexus.rs +24 -12
  136. package/sdk-core/{core → crates/sdk-core}/src/worker/slot_provider.rs +18 -10
  137. package/sdk-core/{core → crates/sdk-core}/src/worker/tuner/fixed_size.rs +5 -1
  138. package/sdk-core/{core → crates/sdk-core}/src/worker/tuner/resource_based.rs +453 -57
  139. package/sdk-core/{core → crates/sdk-core}/src/worker/tuner.rs +179 -3
  140. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/driven_workflow.rs +1 -1
  141. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/history_update.rs +5 -267
  142. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/activity_state_machine.rs +147 -90
  143. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/cancel_external_state_machine.rs +8 -91
  144. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/cancel_nexus_op_state_machine.rs +14 -12
  145. package/sdk-core/crates/sdk-core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +97 -0
  146. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/child_workflow_state_machine.rs +32 -229
  147. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/complete_workflow_state_machine.rs +13 -8
  148. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +6 -50
  149. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/fail_workflow_state_machine.rs +6 -7
  150. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/local_activity_state_machine.rs +39 -584
  151. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/mod.rs +22 -17
  152. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +4 -74
  153. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/nexus_operation_state_machine.rs +118 -21
  154. package/sdk-core/crates/sdk-core/src/worker/workflow/machines/patch_state_machine.rs +273 -0
  155. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/signal_external_state_machine.rs +9 -151
  156. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/timer_state_machine.rs +27 -132
  157. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/transition_coverage.rs +1 -2
  158. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/update_state_machine.rs +19 -13
  159. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +25 -80
  160. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/workflow_machines/local_acts.rs +1 -1
  161. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/workflow_machines.rs +68 -72
  162. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/machines/workflow_task_state_machine.rs +13 -15
  163. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/managed_run.rs +55 -37
  164. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/mod.rs +171 -61
  165. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/run_cache.rs +10 -7
  166. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/wft_extraction.rs +4 -2
  167. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/wft_poller.rs +15 -4
  168. package/sdk-core/{core → crates/sdk-core}/src/worker/workflow/workflow_stream.rs +38 -19
  169. package/sdk-core/crates/sdk-core/tests/c_bridge_smoke_test.c +10 -0
  170. package/sdk-core/crates/sdk-core/tests/cloud_tests.rs +25 -0
  171. package/sdk-core/crates/sdk-core/tests/common/fake_grpc_server.rs +106 -0
  172. package/sdk-core/crates/sdk-core/tests/common/http_proxy.rs +134 -0
  173. package/sdk-core/{test-utils/src/lib.rs → crates/sdk-core/tests/common/mod.rs} +286 -334
  174. package/sdk-core/{test-utils/src → crates/sdk-core/tests/common}/workflows.rs +6 -4
  175. package/sdk-core/crates/sdk-core/tests/fsm_procmacro.rs +6 -0
  176. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/dupe_transitions_fail.rs +1 -3
  177. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/dupe_transitions_fail.stderr +12 -0
  178. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/dynamic_dest_pass.rs +2 -4
  179. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/forgot_name_fail.rs +1 -3
  180. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/forgot_name_fail.stderr +4 -4
  181. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/handler_arg_pass.rs +2 -4
  182. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/handler_pass.rs +2 -4
  183. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/medium_complex_pass.rs +2 -4
  184. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/no_handle_conversions_require_into_fail.rs +2 -4
  185. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/no_handle_conversions_require_into_fail.stderr +15 -0
  186. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/simple_pass.rs +2 -4
  187. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/struct_event_variant_fail.rs +1 -3
  188. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/struct_event_variant_fail.stderr +5 -0
  189. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/tuple_more_item_event_variant_fail.rs +1 -3
  190. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/tuple_more_item_event_variant_fail.stderr +5 -0
  191. package/sdk-core/{fsm/rustfsm_procmacro/tests/trybuild → crates/sdk-core/tests/fsm_trybuild}/tuple_zero_item_event_variant_fail.rs +1 -3
  192. package/sdk-core/crates/sdk-core/tests/fsm_trybuild/tuple_zero_item_event_variant_fail.stderr +5 -0
  193. package/sdk-core/{tests → crates/sdk-core/tests}/global_metric_tests.rs +22 -22
  194. package/sdk-core/{tests → crates/sdk-core/tests/heavy_tests}/fuzzy_workflow.rs +4 -4
  195. package/sdk-core/{tests → crates/sdk-core/tests}/heavy_tests.rs +25 -14
  196. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/activity_functions.rs +1 -1
  197. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/client_tests.rs +115 -123
  198. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/ephemeral_server_tests.rs +19 -15
  199. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/heartbeat_tests.rs +24 -20
  200. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/metrics_tests.rs +241 -67
  201. package/sdk-core/crates/sdk-core/tests/integ_tests/pagination_tests.rs +273 -0
  202. package/sdk-core/crates/sdk-core/tests/integ_tests/polling_tests.rs +513 -0
  203. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/queries_tests.rs +13 -11
  204. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/update_tests.rs +47 -29
  205. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/visibility_tests.rs +49 -27
  206. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_heartbeat_tests.rs +1061 -0
  207. package/sdk-core/crates/sdk-core/tests/integ_tests/worker_tests.rs +920 -0
  208. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/worker_versioning_tests.rs +58 -40
  209. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/activities.rs +268 -30
  210. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/appdata_propagation.rs +4 -4
  211. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +155 -0
  212. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +121 -0
  213. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +717 -0
  214. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +109 -0
  215. package/sdk-core/{core/src/core_tests → crates/sdk-core/tests/integ_tests/workflow_tests}/determinism.rs +108 -20
  216. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/eager.rs +10 -5
  217. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +2884 -0
  218. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +119 -0
  219. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/nexus.rs +174 -46
  220. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/patches.rs +740 -0
  221. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/replay.rs +78 -27
  222. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/resets.rs +46 -28
  223. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/signals.rs +294 -0
  224. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/stickyness.rs +9 -8
  225. package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/timers.rs +249 -0
  226. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/upsert_search_attrs.rs +72 -7
  227. package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests.rs +97 -33
  228. package/sdk-core/{tests → crates/sdk-core/tests}/main.rs +40 -25
  229. package/sdk-core/{tests → crates/sdk-core/tests}/manual_tests.rs +25 -15
  230. package/sdk-core/{tests → crates/sdk-core/tests}/runner.rs +23 -41
  231. package/sdk-core/{tests → crates/sdk-core/tests}/shared_tests/mod.rs +11 -6
  232. package/sdk-core/{tests → crates/sdk-core/tests}/shared_tests/priority.rs +6 -6
  233. package/sdk-core/crates/sdk-core-c-bridge/Cargo.toml +59 -0
  234. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/include/temporal-sdk-core-c-bridge.h +215 -44
  235. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/client.rs +515 -214
  236. package/sdk-core/crates/sdk-core-c-bridge/src/envconfig.rs +314 -0
  237. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/lib.rs +2 -1
  238. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/metric.rs +1 -1
  239. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/random.rs +4 -4
  240. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/runtime.rs +42 -28
  241. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/testing.rs +2 -5
  242. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/tests/context.rs +42 -41
  243. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/tests/mod.rs +38 -34
  244. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/tests/utils.rs +10 -11
  245. package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/src/worker.rs +427 -121
  246. package/sdk-core/docker-cgroup-tests.sh +24 -0
  247. package/sdk-core/{docker → etc/docker}/docker-compose-ci.yaml +9 -9
  248. package/sdk-core/{docker → etc/docker}/docker-compose-telem.yaml +11 -11
  249. package/sdk-core/{docker → etc/docker}/docker-compose.yaml +8 -8
  250. package/sdk-core/{integ-with-otel.sh → etc/integ-with-otel.sh} +1 -1
  251. package/sdk-core/etc/regen-depgraph.sh +2 -2
  252. package/src/client.rs +117 -49
  253. package/src/helpers/callbacks.rs +4 -4
  254. package/src/helpers/errors.rs +7 -1
  255. package/src/helpers/handles.rs +1 -0
  256. package/src/helpers/try_from_js.rs +5 -4
  257. package/src/lib.rs +3 -2
  258. package/src/logs.rs +1 -1
  259. package/src/metrics.rs +6 -3
  260. package/src/runtime.rs +41 -24
  261. package/src/testing.rs +3 -3
  262. package/src/worker.rs +77 -44
  263. package/ts/native.ts +26 -9
  264. package/LICENSE.md +0 -23
  265. package/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
  266. package/sdk-core/client/src/proxy.rs +0 -90
  267. package/sdk-core/client/src/worker_registry/mod.rs +0 -266
  268. package/sdk-core/core/Cargo.toml +0 -146
  269. package/sdk-core/core/src/core_tests/child_workflows.rs +0 -281
  270. package/sdk-core/core/src/core_tests/local_activities.rs +0 -1442
  271. package/sdk-core/core/src/retry_logic.rs +0 -224
  272. package/sdk-core/core/src/worker/heartbeat.rs +0 -231
  273. package/sdk-core/core/src/worker/mod.rs +0 -980
  274. package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -165
  275. package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -801
  276. package/sdk-core/core-c-bridge/Cargo.toml +0 -51
  277. package/sdk-core/etc/deps.svg +0 -162
  278. package/sdk-core/fsm/Cargo.toml +0 -21
  279. package/sdk-core/fsm/README.md +0 -3
  280. package/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
  281. package/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
  282. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
  283. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -15
  284. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
  285. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
  286. package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
  287. package/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
  288. package/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -21
  289. package/sdk-core/fsm/src/lib.rs +0 -2
  290. package/sdk-core/sdk-core-protos/Cargo.toml +0 -37
  291. package/sdk-core/sdk-core-protos/protos/api_cloud_upstream/VERSION +0 -1
  292. package/sdk-core/test-utils/Cargo.toml +0 -38
  293. package/sdk-core/test-utils/src/interceptors.rs +0 -46
  294. package/sdk-core/tests/cloud_tests.rs +0 -23
  295. package/sdk-core/tests/integ_tests/polling_tests.rs +0 -294
  296. package/sdk-core/tests/integ_tests/worker_tests.rs +0 -203
  297. package/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -74
  298. package/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -57
  299. package/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -246
  300. package/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -65
  301. package/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -85
  302. package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -908
  303. package/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -51
  304. package/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -206
  305. package/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -164
  306. package/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -123
  307. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/.github/workflows/build.yaml +0 -0
  308. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/.github/workflows/push-to-buf.yml +0 -0
  309. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/CODEOWNERS +0 -0
  310. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/LICENSE +0 -0
  311. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/Makefile +0 -0
  312. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/README.md +0 -0
  313. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/buf.gen.yaml +0 -0
  314. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/buf.lock +0 -0
  315. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/buf.yaml +0 -0
  316. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/connectivityrule/v1/message.proto +0 -0
  317. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/identity/v1/message.proto +0 -0
  318. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/namespace/v1/message.proto +0 -0
  319. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/nexus/v1/message.proto +0 -0
  320. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/region/v1/message.proto +0 -0
  321. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/resource/v1/message.proto +0 -0
  322. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_cloud_upstream/temporal/api/cloud/usage/v1/message.proto +0 -0
  323. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/CODEOWNERS +0 -0
  324. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  325. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/ci.yml +0 -0
  326. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/publish-docs.yml +0 -0
  327. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/push-to-buf.yml +0 -0
  328. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/trigger-api-go-delete-release.yml +0 -0
  329. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/trigger-api-go-publish-release.yml +0 -0
  330. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/.github/workflows/trigger-api-go-update.yml +0 -0
  331. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/LICENSE +0 -0
  332. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/Makefile +0 -0
  333. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/README.md +0 -0
  334. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/api-linter.yaml +0 -0
  335. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/buf.gen.yaml +0 -0
  336. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/buf.lock +0 -0
  337. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/buf.yaml +0 -0
  338. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/api/annotations.proto +0 -0
  339. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/api/http.proto +0 -0
  340. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/any.proto +0 -0
  341. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/descriptor.proto +0 -0
  342. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/duration.proto +0 -0
  343. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/empty.proto +0 -0
  344. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/struct.proto +0 -0
  345. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/timestamp.proto +0 -0
  346. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/google/protobuf/wrappers.proto +0 -0
  347. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/openapi/payload_description.txt +0 -0
  348. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/activity/v1/message.proto +0 -0
  349. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -0
  350. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/command/v1/message.proto +0 -0
  351. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -0
  352. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -0
  353. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -0
  354. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/deployment.proto +0 -0
  355. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -0
  356. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -0
  357. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -0
  358. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/nexus.proto +0 -0
  359. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -0
  360. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -0
  361. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -0
  362. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -0
  363. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -0
  364. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -0
  365. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -0
  366. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/export/v1/message.proto +0 -0
  367. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -0
  368. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -0
  369. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/history/v1/message.proto +0 -0
  370. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/nexus/v1/message.proto +0 -0
  371. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -0
  372. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -0
  373. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -0
  374. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/query/v1/message.proto +0 -0
  375. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -0
  376. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/rules/v1/message.proto +0 -0
  377. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -0
  378. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/enhanced_stack_trace.proto +0 -0
  379. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -0
  380. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/user_metadata.proto +0 -0
  381. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/worker_config.proto +0 -0
  382. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/sdk/v1/workflow_metadata.proto +0 -0
  383. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -0
  384. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/update/v1/message.proto +0 -0
  385. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/version/v1/message.proto +0 -0
  386. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/worker/v1/message.proto +0 -0
  387. /package/sdk-core/{sdk-core-protos → crates/common}/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -0
  388. /package/sdk-core/{sdk-core-protos → crates/common}/protos/google/rpc/status.proto +0 -0
  389. /package/sdk-core/{sdk-core-protos → crates/common}/protos/grpc/health/v1/health.proto +0 -0
  390. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -0
  391. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -0
  392. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -0
  393. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/common/common.proto +0 -0
  394. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/core_interface.proto +0 -0
  395. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -0
  396. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/nexus/nexus.proto +0 -0
  397. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -0
  398. /package/sdk-core/{sdk-core-protos → crates/common}/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -0
  399. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/Makefile +0 -0
  400. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/api-linter.yaml +0 -0
  401. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/buf.yaml +0 -0
  402. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -0
  403. /package/sdk-core/{sdk-core-protos → crates/common}/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -0
  404. /package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/constants.rs +0 -0
  405. /package/sdk-core/{sdk-core-protos/src → crates/common/src/protos}/task_token.rs +0 -0
  406. /package/sdk-core/{fsm → crates/macros}/LICENSE.txt +0 -0
  407. /package/sdk-core/{core → crates/sdk-core}/src/abstractions/take_cell.rs +0 -0
  408. /package/sdk-core/{core → crates/sdk-core}/src/worker/slot_supplier.rs +0 -0
  409. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/ends_empty_wft_complete.bin +0 -0
  410. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/evict_while_la_running_no_interference-16_history.bin +0 -0
  411. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/evict_while_la_running_no_interference-23_history.bin +0 -0
  412. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/evict_while_la_running_no_interference-85_history.bin +0 -0
  413. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/fail_wf_task.bin +0 -0
  414. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/long_local_activity_with_update-0_history.bin +0 -0
  415. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/long_local_activity_with_update-1_history.bin +0 -0
  416. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/long_local_activity_with_update-2_history.bin +0 -0
  417. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/long_local_activity_with_update-3_history.bin +0 -0
  418. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/old_change_marker_format.bin +0 -0
  419. /package/sdk-core/{histories → crates/sdk-core/tests/histories}/timer_workflow_history.bin +0 -0
  420. /package/sdk-core/{tests → crates/sdk-core/tests}/integ_tests/workflow_tests/priority.rs +0 -0
  421. /package/sdk-core/{core-c-bridge → crates/sdk-core-c-bridge}/build.rs +0 -0
  422. /package/sdk-core/{cargo-tokio-console.sh → etc/cargo-tokio-console.sh} +0 -0
@@ -1,4 +1,6 @@
1
- use crate::{abstractions::dbg_panic, telemetry::TelemetryInstance};
1
+ #[cfg(test)]
2
+ use crate::TelemetryInstance;
3
+ use crate::abstractions::dbg_panic;
2
4
 
3
5
  use std::{
4
6
  fmt::{Debug, Display},
@@ -6,15 +8,15 @@ use std::{
6
8
  sync::Arc,
7
9
  time::Duration,
8
10
  };
9
- use temporal_sdk_core_api::telemetry::metrics::{
10
- BufferAttributes, BufferInstrumentRef, CoreMeter, Counter, CounterBase, Gauge, GaugeBase,
11
- GaugeF64, GaugeF64Base, Histogram, HistogramBase, HistogramDuration, HistogramDurationBase,
12
- HistogramF64, HistogramF64Base, LazyBufferInstrument, MetricAttributable, MetricAttributes,
13
- MetricCallBufferer, MetricEvent, MetricKeyValue, MetricKind, MetricParameters, MetricUpdateVal,
14
- NewAttributes, NoOpCoreMeter,
15
- };
16
- use temporal_sdk_core_protos::temporal::api::{
17
- enums::v1::WorkflowTaskFailedCause, failure::v1::Failure,
11
+ use temporalio_common::{
12
+ protos::temporal::api::{enums::v1::WorkflowTaskFailedCause, failure::v1::Failure},
13
+ telemetry::metrics::{
14
+ BufferAttributes, BufferInstrumentRef, CoreMeter, Counter, CounterBase, Gauge, GaugeBase,
15
+ GaugeF64, GaugeF64Base, Histogram, HistogramBase, HistogramDuration, HistogramDurationBase,
16
+ HistogramF64, HistogramF64Base, LazyBufferInstrument, MetricAttributable, MetricAttributes,
17
+ MetricCallBufferer, MetricEvent, MetricKeyValue, MetricKind, MetricParameters,
18
+ MetricUpdateVal, NewAttributes, NoOpCoreMeter, TemporalMeter, WorkerHeartbeatMetrics,
19
+ },
18
20
  };
19
21
 
20
22
  /// Used to track context associated with metrics, and record/update them
@@ -23,6 +25,7 @@ pub(crate) struct MetricsContext {
23
25
  meter: Arc<dyn CoreMeter>,
24
26
  kvs: MetricAttributes,
25
27
  instruments: Arc<Instruments>,
28
+ in_memory_metrics: Option<Arc<WorkerHeartbeatMetrics>>,
26
29
  }
27
30
 
28
31
  #[derive(Clone)]
@@ -68,28 +71,41 @@ impl MetricsContext {
68
71
  pub(crate) fn no_op() -> Self {
69
72
  let meter = Arc::new(NoOpCoreMeter);
70
73
  let kvs = meter.new_attributes(Default::default());
71
- let instruments = Arc::new(Instruments::new(meter.as_ref()));
74
+ let in_memory_metrics = Some(Arc::new(WorkerHeartbeatMetrics::default()));
75
+ let instruments = Arc::new(Instruments::new(meter.as_ref(), in_memory_metrics.clone()));
72
76
  Self {
73
77
  kvs,
74
78
  instruments,
75
79
  meter,
80
+ in_memory_metrics,
76
81
  }
77
82
  }
78
83
 
84
+ #[cfg(test)]
79
85
  pub(crate) fn top_level(namespace: String, tq: String, telemetry: &TelemetryInstance) -> Self {
80
- if let Some(mut meter) = telemetry.get_temporal_metric_meter() {
86
+ MetricsContext::top_level_with_meter(namespace, tq, telemetry.get_temporal_metric_meter())
87
+ }
88
+
89
+ pub(crate) fn top_level_with_meter(
90
+ namespace: String,
91
+ tq: String,
92
+ temporal_meter: Option<TemporalMeter>,
93
+ ) -> Self {
94
+ if let Some(mut meter) = temporal_meter {
81
95
  meter
82
96
  .default_attribs
83
97
  .attributes
84
98
  .push(MetricKeyValue::new(KEY_NAMESPACE, namespace));
85
99
  meter.default_attribs.attributes.push(task_queue(tq));
86
100
  let kvs = meter.inner.new_attributes(meter.default_attribs);
87
- let mut instruments = Instruments::new(meter.inner.as_ref());
101
+ let in_memory_metrics = Some(Arc::new(WorkerHeartbeatMetrics::default()));
102
+ let mut instruments = Instruments::new(meter.inner.as_ref(), in_memory_metrics.clone());
88
103
  instruments.update_attributes(&kvs);
89
104
  Self {
90
105
  kvs,
91
106
  instruments: Arc::new(instruments),
92
107
  meter: meter.inner,
108
+ in_memory_metrics,
93
109
  }
94
110
  } else {
95
111
  Self::no_op()
@@ -110,9 +126,14 @@ impl MetricsContext {
110
126
  instruments: Arc::new(instruments),
111
127
  kvs,
112
128
  meter: self.meter.clone(),
129
+ in_memory_metrics: self.in_memory_metrics.clone(),
113
130
  }
114
131
  }
115
132
 
133
+ pub(crate) fn in_memory_meter(&self) -> Option<Arc<WorkerHeartbeatMetrics>> {
134
+ self.in_memory_metrics.clone()
135
+ }
136
+
116
137
  /// A workflow task queue poll succeeded
117
138
  pub(crate) fn wf_tq_poll_ok(&self) {
118
139
  self.instruments.wf_task_queue_poll_succeed_counter.adds(1);
@@ -288,7 +309,31 @@ impl MetricsContext {
288
309
  }
289
310
 
290
311
  impl Instruments {
291
- fn new(meter: &dyn CoreMeter) -> Self {
312
+ fn new(meter: &dyn CoreMeter, in_memory: Option<Arc<WorkerHeartbeatMetrics>>) -> Self {
313
+ let counter_with_in_mem = |params: MetricParameters| -> Counter {
314
+ in_memory
315
+ .clone()
316
+ .and_then(|in_mem| in_mem.get_metric(&params.name))
317
+ .map(|metric| meter.counter_with_in_memory(params.clone(), metric))
318
+ .unwrap_or_else(|| meter.counter(params))
319
+ };
320
+
321
+ let gauge_with_in_mem = |params: MetricParameters| -> Gauge {
322
+ in_memory
323
+ .clone()
324
+ .and_then(|in_mem| in_mem.get_metric(&params.name))
325
+ .map(|metric| meter.gauge_with_in_memory(params.clone(), metric))
326
+ .unwrap_or_else(|| meter.gauge(params))
327
+ };
328
+
329
+ let histogram_with_in_mem = |params: MetricParameters| -> HistogramDuration {
330
+ in_memory
331
+ .clone()
332
+ .and_then(|in_mem| in_mem.get_metric(&params.name))
333
+ .map(|metric| meter.histogram_duration_with_in_memory(params.clone(), metric))
334
+ .unwrap_or_else(|| meter.histogram_duration(params))
335
+ };
336
+
292
337
  Self {
293
338
  wf_completed_counter: meter.counter(MetricParameters {
294
339
  name: "workflow_completed".into(),
@@ -320,12 +365,12 @@ impl Instruments {
320
365
  description: "Count of workflow task queue poll timeouts (no new task)".into(),
321
366
  unit: "".into(),
322
367
  }),
323
- wf_task_queue_poll_succeed_counter: meter.counter(MetricParameters {
368
+ wf_task_queue_poll_succeed_counter: counter_with_in_mem(MetricParameters {
324
369
  name: "workflow_task_queue_poll_succeed".into(),
325
370
  description: "Count of workflow task queue poll successes".into(),
326
371
  unit: "".into(),
327
372
  }),
328
- wf_task_execution_failure_counter: meter.counter(MetricParameters {
373
+ wf_task_execution_failure_counter: counter_with_in_mem(MetricParameters {
329
374
  name: "workflow_task_execution_failed".into(),
330
375
  description: "Count of workflow task execution failures".into(),
331
376
  unit: "".into(),
@@ -340,7 +385,7 @@ impl Instruments {
340
385
  unit: "duration".into(),
341
386
  description: "Histogram of workflow task replay latencies".into(),
342
387
  }),
343
- wf_task_execution_latency: meter.histogram_duration(MetricParameters {
388
+ wf_task_execution_latency: histogram_with_in_mem(MetricParameters {
344
389
  name: WORKFLOW_TASK_EXECUTION_LATENCY_HISTOGRAM_NAME.into(),
345
390
  unit: "duration".into(),
346
391
  description: "Histogram of workflow task execution (not replay) latencies".into(),
@@ -350,12 +395,12 @@ impl Instruments {
350
395
  description: "Count of activity task queue poll timeouts (no new task)".into(),
351
396
  unit: "".into(),
352
397
  }),
353
- act_task_received_counter: meter.counter(MetricParameters {
398
+ act_task_received_counter: counter_with_in_mem(MetricParameters {
354
399
  name: "activity_task_received".into(),
355
400
  description: "Count of activity task queue poll successes".into(),
356
401
  unit: "".into(),
357
402
  }),
358
- act_execution_failed: meter.counter(MetricParameters {
403
+ act_execution_failed: counter_with_in_mem(MetricParameters {
359
404
  name: "activity_execution_failed".into(),
360
405
  description: "Count of activity task execution failures".into(),
361
406
  unit: "".into(),
@@ -365,7 +410,7 @@ impl Instruments {
365
410
  unit: "duration".into(),
366
411
  description: "Histogram of activity schedule-to-start latencies".into(),
367
412
  }),
368
- act_exec_latency: meter.histogram_duration(MetricParameters {
413
+ act_exec_latency: histogram_with_in_mem(MetricParameters {
369
414
  name: ACTIVITY_EXEC_LATENCY_HISTOGRAM_NAME.into(),
370
415
  unit: "duration".into(),
371
416
  description: "Histogram of activity execution latencies".into(),
@@ -386,7 +431,7 @@ impl Instruments {
386
431
  description: "Count of local activity executions that failed".into(),
387
432
  unit: "".into(),
388
433
  }),
389
- la_exec_latency: meter.histogram_duration(MetricParameters {
434
+ la_exec_latency: histogram_with_in_mem(MetricParameters {
390
435
  name: "local_activity_execution_latency".into(),
391
436
  unit: "duration".into(),
392
437
  description: "Histogram of local activity execution latencies".into(),
@@ -398,7 +443,7 @@ impl Instruments {
398
443
  "Histogram of local activity execution latencies for successful local activities"
399
444
  .into(),
400
445
  }),
401
- la_total: meter.counter(MetricParameters {
446
+ la_total: counter_with_in_mem(MetricParameters {
402
447
  name: "local_activity_total".into(),
403
448
  description: "Count of local activities executed".into(),
404
449
  unit: "".into(),
@@ -418,12 +463,12 @@ impl Instruments {
418
463
  unit: "duration".into(),
419
464
  description: "Histogram of nexus task end-to-end latencies".into(),
420
465
  }),
421
- nexus_task_execution_latency: meter.histogram_duration(MetricParameters {
466
+ nexus_task_execution_latency: histogram_with_in_mem(MetricParameters {
422
467
  name: "nexus_task_execution_latency".into(),
423
468
  unit: "duration".into(),
424
469
  description: "Histogram of nexus task execution latencies".into(),
425
470
  }),
426
- nexus_task_execution_failed: meter.counter(MetricParameters {
471
+ nexus_task_execution_failed: counter_with_in_mem(MetricParameters {
427
472
  name: "nexus_task_execution_failed".into(),
428
473
  description: "Count of nexus task execution failures".into(),
429
474
  unit: "".into(),
@@ -434,35 +479,34 @@ impl Instruments {
434
479
  description: "Count of the number of initialized workers".into(),
435
480
  unit: "".into(),
436
481
  }),
437
- num_pollers: meter.gauge(MetricParameters {
482
+ num_pollers: gauge_with_in_mem(MetricParameters {
438
483
  name: NUM_POLLERS_NAME.into(),
439
484
  description: "Current number of active pollers per queue type".into(),
440
485
  unit: "".into(),
441
486
  }),
442
- task_slots_available: meter.gauge(MetricParameters {
487
+ task_slots_available: gauge_with_in_mem(MetricParameters {
443
488
  name: TASK_SLOTS_AVAILABLE_NAME.into(),
444
489
  description: "Current number of available slots per task type".into(),
445
490
  unit: "".into(),
446
491
  }),
447
- task_slots_used: meter.gauge(MetricParameters {
492
+ task_slots_used: gauge_with_in_mem(MetricParameters {
448
493
  name: TASK_SLOTS_USED_NAME.into(),
449
494
  description: "Current number of used slots per task type".into(),
450
495
  unit: "".into(),
451
496
  }),
452
- sticky_cache_hit: meter.counter(MetricParameters {
497
+ sticky_cache_hit: counter_with_in_mem(MetricParameters {
453
498
  name: "sticky_cache_hit".into(),
454
499
  description: "Count of times the workflow cache was used for a new workflow task"
455
500
  .into(),
456
501
  unit: "".into(),
457
502
  }),
458
- sticky_cache_miss: meter.counter(MetricParameters {
503
+ sticky_cache_miss: counter_with_in_mem(MetricParameters {
459
504
  name: "sticky_cache_miss".into(),
460
505
  description:
461
- "Count of times the workflow cache was missing a workflow for a sticky task"
462
- .into(),
506
+ "Count of times the workflow cache was missing a workflow for a sticky task".into(),
463
507
  unit: "".into(),
464
508
  }),
465
- sticky_cache_size: meter.gauge(MetricParameters {
509
+ sticky_cache_size: gauge_with_in_mem(MetricParameters {
466
510
  name: STICKY_CACHE_SIZE_NAME.into(),
467
511
  description: "Current number of cached workflows".into(),
468
512
  unit: "".into(),
@@ -598,6 +642,7 @@ pub(crate) enum FailureReason {
598
642
  Timeout,
599
643
  NexusOperation(String),
600
644
  NexusHandlerError(String),
645
+ GrpcMessageTooLarge,
601
646
  }
602
647
  impl Display for FailureReason {
603
648
  fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
@@ -607,6 +652,7 @@ impl Display for FailureReason {
607
652
  FailureReason::Timeout => "timeout".to_owned(),
608
653
  FailureReason::NexusOperation(op) => format!("operation_{op}"),
609
654
  FailureReason::NexusHandlerError(op) => format!("handler_error_{op}"),
655
+ FailureReason::GrpcMessageTooLarge => "GrpcMessageTooLarge".to_owned(),
610
656
  };
611
657
  write!(f, "{str}")
612
658
  }
@@ -1065,7 +1111,7 @@ impl<CM: CoreMeter> CoreMeter for PrefixedMetricsMeter<CM> {
1065
1111
  mod tests {
1066
1112
  use super::*;
1067
1113
  use std::any::Any;
1068
- use temporal_sdk_core_api::telemetry::{
1114
+ use temporalio_common::telemetry::{
1069
1115
  METRIC_PREFIX,
1070
1116
  metrics::{BufferInstrumentRef, CustomMetricAttributes},
1071
1117
  };
@@ -1104,6 +1150,7 @@ mod tests {
1104
1150
  METRIC_PREFIX.to_string(),
1105
1151
  Some(call_buffer.clone()),
1106
1152
  true,
1153
+ temporalio_common::telemetry::TaskQueueLabelStrategy::UseNormal,
1107
1154
  );
1108
1155
  let mc = MetricsContext::top_level("foo".to_string(), "q".to_string(), &telem_instance);
1109
1156
  mc.forced_cache_eviction();
@@ -39,8 +39,9 @@ use std::{
39
39
  atomic::{AtomicBool, Ordering},
40
40
  },
41
41
  };
42
- use temporal_sdk_core_api::telemetry::{
43
- CoreLog, CoreTelemetry, Logger, TelemetryOptions, TelemetryOptionsBuilder,
42
+ use temporalio_common::telemetry::{
43
+ CoreLog, CoreTelemetry, Logger, TaskQueueLabelStrategy, TelemetryOptions,
44
+ TelemetryOptionsBuilder,
44
45
  metrics::{CoreMeter, MetricKeyValue, NewAttributes, TemporalMeter},
45
46
  };
46
47
  use tracing::{Level, Subscriber};
@@ -54,7 +55,7 @@ const FORWARD_LOG_BUFFER_SIZE: usize = 2048;
54
55
  /// traces at `core_level` and all others (from 3rd party modules, etc) at `other_level`.
55
56
  pub fn construct_filter_string(core_level: Level, other_level: Level) -> String {
56
57
  format!(
57
- "{other_level},temporal_sdk_core={core_level},temporal_client={core_level},temporal_sdk={core_level}"
58
+ "{other_level},temporalio_sdk_core={core_level},temporalio_client={core_level},temporalio_sdk={core_level}"
58
59
  )
59
60
  }
60
61
 
@@ -67,6 +68,7 @@ pub struct TelemetryInstance {
67
68
  /// the user has not opted into any tracing configuration.
68
69
  trace_subscriber: Option<Arc<dyn Subscriber + Send + Sync>>,
69
70
  attach_service_name: bool,
71
+ task_queue_label_strategy: TaskQueueLabelStrategy,
70
72
  }
71
73
 
72
74
  impl TelemetryInstance {
@@ -76,6 +78,7 @@ impl TelemetryInstance {
76
78
  metric_prefix: String,
77
79
  metrics: Option<Arc<dyn CoreMeter + 'static>>,
78
80
  attach_service_name: bool,
81
+ task_queue_label_strategy: TaskQueueLabelStrategy,
79
82
  ) -> Self {
80
83
  Self {
81
84
  metric_prefix,
@@ -83,6 +86,7 @@ impl TelemetryInstance {
83
86
  metrics,
84
87
  trace_subscriber,
85
88
  attach_service_name,
89
+ task_queue_label_strategy,
86
90
  }
87
91
  }
88
92
 
@@ -110,6 +114,7 @@ impl TelemetryInstance {
110
114
  Arc::new(PrefixedMetricsMeter::new(self.metric_prefix.clone(), m))
111
115
  as Arc<dyn CoreMeter>,
112
116
  attribs,
117
+ self.task_queue_label_strategy,
113
118
  )
114
119
  })
115
120
  }
@@ -119,7 +124,7 @@ impl TelemetryInstance {
119
124
  self.metrics.clone().map(|m| {
120
125
  let kvs = self.default_kvs();
121
126
  let attribs = NewAttributes::new(kvs);
122
- TemporalMeter::new(m, attribs)
127
+ TemporalMeter::new(m, attribs, self.task_queue_label_strategy)
123
128
  })
124
129
  }
125
130
 
@@ -240,10 +245,11 @@ pub fn telemetry_init(opts: TelemetryOptions) -> Result<TelemetryInstance, anyho
240
245
  opts.metric_prefix,
241
246
  opts.metrics,
242
247
  opts.attach_service_name,
248
+ opts.task_queue_label_strategy,
243
249
  ))
244
250
  }
245
251
 
246
- /// WARNING: Calling can cause panics because of https://github.com/tokio-rs/tracing/issues/1656
252
+ /// WARNING: Calling can cause panics because of <https://github.com/tokio-rs/tracing/issues/1656>
247
253
  /// Lang must not start using until resolved
248
254
  ///
249
255
  /// Initialize telemetry/tracing globally. Useful for testing. Only takes affect when called
@@ -262,7 +268,7 @@ pub fn telemetry_init_global(opts: TelemetryOptions) -> Result<(), anyhow::Error
262
268
  Ok(())
263
269
  }
264
270
 
265
- /// WARNING: Calling can cause panics because of https://github.com/tokio-rs/tracing/issues/1656
271
+ /// WARNING: Calling can cause panics because of <https://github.com/tokio-rs/tracing/issues/1656>
266
272
  /// Lang must not start using until resolved
267
273
  ///
268
274
  /// Initialize the fallback global handler. All lang SDKs should call this somewhere, once, at
@@ -22,7 +22,7 @@ use opentelemetry_sdk::{
22
22
  },
23
23
  };
24
24
  use std::{collections::HashMap, sync::Arc, time::Duration};
25
- use temporal_sdk_core_api::telemetry::{
25
+ use temporalio_common::telemetry::{
26
26
  HistogramBucketOverrides, MetricTemporality, OtelCollectorOptions, OtlpProtocol,
27
27
  metrics::{
28
28
  CoreMeter, Counter, Gauge, GaugeF64, Histogram, HistogramBase, HistogramDuration,
@@ -12,7 +12,7 @@ use std::{
12
12
  sync::Arc,
13
13
  time::Duration,
14
14
  };
15
- use temporal_sdk_core_api::telemetry::metrics::{
15
+ use temporalio_common::telemetry::metrics::{
16
16
  CoreMeter, Counter, CounterBase, Gauge, GaugeBase, GaugeF64, GaugeF64Base, Histogram,
17
17
  HistogramBase, HistogramDuration, HistogramDurationBase, HistogramF64, HistogramF64Base,
18
18
  MetricAttributable, MetricAttributes, MetricParameters, NewAttributes, OrderedPromLabelSet,
@@ -315,8 +315,7 @@ where
315
315
  Ok(labels)
316
316
  } else {
317
317
  let e = anyhow!(
318
- "Must use Prometheus attributes with a Prometheus metric implementation. Got: {:?}",
319
- attributes
318
+ "Must use Prometheus attributes with a Prometheus metric implementation. Got: {attributes:?}"
320
319
  );
321
320
  dbg_panic!("{:?}", e);
322
321
  Err(e)
@@ -460,7 +459,7 @@ pub struct CorePrometheusMeter {
460
459
  registry: Registry,
461
460
  use_seconds_for_durations: bool,
462
461
  unit_suffix: bool,
463
- bucket_overrides: temporal_sdk_core_api::telemetry::HistogramBucketOverrides,
462
+ bucket_overrides: temporalio_common::telemetry::HistogramBucketOverrides,
464
463
  }
465
464
 
466
465
  impl CorePrometheusMeter {
@@ -468,7 +467,7 @@ impl CorePrometheusMeter {
468
467
  registry: Registry,
469
468
  use_seconds_for_durations: bool,
470
469
  unit_suffix: bool,
471
- bucket_overrides: temporal_sdk_core_api::telemetry::HistogramBucketOverrides,
470
+ bucket_overrides: temporalio_common::telemetry::HistogramBucketOverrides,
472
471
  ) -> Self {
473
472
  Self {
474
473
  registry,
@@ -639,7 +638,7 @@ mod tests {
639
638
  use super::*;
640
639
  use crate::telemetry::{TelemetryInstance, metrics::MetricsContext};
641
640
  use prometheus::{Encoder, TextEncoder};
642
- use temporal_sdk_core_api::telemetry::{
641
+ use temporalio_common::telemetry::{
643
642
  METRIC_PREFIX,
644
643
  metrics::{MetricKeyValue, NewAttributes},
645
644
  };
@@ -651,7 +650,7 @@ mod tests {
651
650
  registry.clone(),
652
651
  false,
653
652
  false,
654
- temporal_sdk_core_api::telemetry::HistogramBucketOverrides::default(),
653
+ temporalio_common::telemetry::HistogramBucketOverrides::default(),
655
654
  );
656
655
 
657
656
  let counter = meter.counter(MetricParameters {
@@ -691,7 +690,7 @@ mod tests {
691
690
  registry.clone(),
692
691
  false,
693
692
  false,
694
- temporal_sdk_core_api::telemetry::HistogramBucketOverrides::default(),
693
+ temporalio_common::telemetry::HistogramBucketOverrides::default(),
695
694
  );
696
695
 
697
696
  let base_attrs = meter.new_attributes(NewAttributes::new(vec![
@@ -730,7 +729,7 @@ mod tests {
730
729
  registry.clone(),
731
730
  false,
732
731
  false,
733
- temporal_sdk_core_api::telemetry::HistogramBucketOverrides::default(),
732
+ temporalio_common::telemetry::HistogramBucketOverrides::default(),
734
733
  );
735
734
 
736
735
  let histogram_ms = meter_ms.histogram_duration(MetricParameters {
@@ -760,7 +759,7 @@ mod tests {
760
759
  registry_s.clone(),
761
760
  true,
762
761
  false,
763
- temporal_sdk_core_api::telemetry::HistogramBucketOverrides::default(),
762
+ temporalio_common::telemetry::HistogramBucketOverrides::default(),
764
763
  );
765
764
 
766
765
  let histogram_s = meter_s.histogram_duration(MetricParameters {
@@ -792,7 +791,7 @@ mod tests {
792
791
  registry.clone(),
793
792
  false,
794
793
  false,
795
- temporal_sdk_core_api::telemetry::HistogramBucketOverrides::default(),
794
+ temporalio_common::telemetry::HistogramBucketOverrides::default(),
796
795
  );
797
796
  let counter = meter.counter(MetricParameters {
798
797
  name: "no_labels".into(),
@@ -813,7 +812,7 @@ mod tests {
813
812
  registry.clone(),
814
813
  false,
815
814
  false,
816
- temporal_sdk_core_api::telemetry::HistogramBucketOverrides::default(),
815
+ temporalio_common::telemetry::HistogramBucketOverrides::default(),
817
816
  );
818
817
  let telem_instance = TelemetryInstance::new(
819
818
  None,
@@ -821,6 +820,7 @@ mod tests {
821
820
  METRIC_PREFIX.to_string(),
822
821
  Some(Arc::new(meter)),
823
822
  true,
823
+ temporalio_common::telemetry::TaskQueueLabelStrategy::UseNormal,
824
824
  );
825
825
  let mc = MetricsContext::top_level("foo".to_string(), "q".to_string(), &telem_instance);
826
826
  mc.worker_registered();
@@ -844,7 +844,7 @@ mod tests {
844
844
  registry.clone(),
845
845
  false,
846
846
  false,
847
- temporal_sdk_core_api::telemetry::HistogramBucketOverrides::default(),
847
+ temporalio_common::telemetry::HistogramBucketOverrides::default(),
848
848
  );
849
849
  let dashes = meter.counter(MetricParameters {
850
850
  name: "dash-in-name".into(),
@@ -865,7 +865,7 @@ mod tests {
865
865
  registry.clone(),
866
866
  false,
867
867
  false,
868
- temporal_sdk_core_api::telemetry::HistogramBucketOverrides::default(),
868
+ temporalio_common::telemetry::HistogramBucketOverrides::default(),
869
869
  );
870
870
  let dashes = meter.counter(MetricParameters {
871
871
  name: "not@permitted:symbols".into(),
@@ -10,7 +10,7 @@ use std::{
10
10
  net::{SocketAddr, TcpListener},
11
11
  sync::Arc,
12
12
  };
13
- use temporal_sdk_core_api::telemetry::PrometheusExporterOptions;
13
+ use temporalio_common::telemetry::PrometheusExporterOptions;
14
14
  use tokio::{io, task::AbortHandle};
15
15
 
16
16
  pub struct StartedPromServer {
@@ -20,7 +20,7 @@ pub struct StartedPromServer {
20
20
  }
21
21
 
22
22
  /// Builds and runs a prometheus endpoint which can be scraped by prom instances for metrics export.
23
- /// Returns the meter that can be used as a [CoreMeter].
23
+ /// Returns the meter that can be used as a [`CoreMeter`](temporalio_common::telemetry::metrics::CoreMeter).
24
24
  ///
25
25
  /// Requires a Tokio runtime to exist, and will block briefly while binding the server endpoint.
26
26
  pub fn start_prometheus_metric_exporter(