decocms 2.371.3 → 2.372.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 (624) hide show
  1. package/dist/client/assets/{AlertCircle-CxfCp1lp.js → AlertCircle-thtilaIi.js} +1 -1
  2. package/dist/client/assets/{ArrowUpRight-DmdF0Wbq.js → ArrowUpRight-CgHBEd6P.js} +1 -1
  3. package/dist/client/assets/{Check-LYKYYCpJ.js → Check-C9MqrwNw.js} +1 -1
  4. package/dist/client/assets/{CheckCircle-DOYgkFa4.js → CheckCircle-DIG3NWwq.js} +1 -1
  5. package/dist/client/assets/{ChevronDown-DGy7VIHr.js → ChevronDown-C2tzdd6x.js} +1 -1
  6. package/dist/client/assets/{ChevronRight-BxOJoGDO.js → ChevronRight-B0a5RpqV.js} +1 -1
  7. package/dist/client/assets/{ChevronUp-Bv2T_oUh.js → ChevronUp-5IdIkbdf.js} +1 -1
  8. package/dist/client/assets/{Container-C5nPWEOC.js → Container-BT7565F7.js} +1 -1
  9. package/dist/client/assets/{DotsVertical-CLSPG173.js → DotsVertical-BLUVz6as.js} +1 -1
  10. package/dist/client/assets/{FilterLines-BYNmo47L.js → FilterLines-Ce4MlgIc.js} +1 -1
  11. package/dist/client/assets/{HardDrive-BQDeFApo.js → HardDrive-CmtQJWRH.js} +1 -1
  12. package/dist/client/assets/{Key01-BKbw4U1g.js → Key01-B-fe8ca1.js} +1 -1
  13. package/dist/client/assets/{LayoutLeft-BVsRAK0o.js → LayoutLeft-ZScYTY4X.js} +1 -1
  14. package/dist/client/assets/{LinkExternal01-BjZsMFHa.js → LinkExternal01-uPoGLmxv.js} +1 -1
  15. package/dist/client/assets/{Lock01-CqyQxQOc.js → Lock01-CsyefBb2.js} +1 -1
  16. package/dist/client/assets/{Monitor01-CT707REX.js → Monitor01-CMK5cCjh.js} +1 -1
  17. package/dist/client/assets/{Palette-CTgyAd8s.js → Palette-DTIsgujq.js} +1 -1
  18. package/dist/client/assets/{Play-vpw6L57e.js → Play-CE6MkQi7.js} +1 -1
  19. package/dist/client/assets/{Plus-_DBihCFK.js → Plus-Dalppvzf.js} +1 -1
  20. package/dist/client/assets/{RefreshCcw01-CDhBWoHZ.js → RefreshCcw01-D8802FCw.js} +1 -1
  21. package/dist/client/assets/{SearchMd-BHYR3wH4.js → SearchMd-CcUrfP-p.js} +1 -1
  22. package/dist/client/assets/{Settings02-GbExqvWl.js → Settings02-C4YgVowu.js} +1 -1
  23. package/dist/client/assets/{Shield01-Dx5raEWL.js → Shield01-UOXmw33w.js} +1 -1
  24. package/dist/client/assets/{Star01-BhUV_eW-.js → Star01-CfuW6Cli.js} +1 -1
  25. package/dist/client/assets/{Stars02-CJ8g7tdm.js → Stars02-DLUbMAb_.js} +1 -1
  26. package/dist/client/assets/{Sun-BQwRZxPT.js → Sun-CZ4r1mYL.js} +1 -1
  27. package/dist/client/assets/{SwitchHorizontal01-NT9PDgmS.js → SwitchHorizontal01-B6zEkUVA.js} +1 -1
  28. package/dist/client/assets/{Tool01-BoqwO0Jr.js → Tool01-C8CKanaY.js} +1 -1
  29. package/dist/client/assets/{Trash01-5mNsgX5f.js → Trash01-BoPbdZdE.js} +1 -1
  30. package/dist/client/assets/{Upload01-4Q1nME_I.js → Upload01-B_G1o1nB.js} +1 -1
  31. package/dist/client/assets/{User01-CLDifWy2.js → User01-bHeRYL0V.js} +1 -1
  32. package/dist/client/assets/{Users01-CW_WCvBM.js → Users01-CZlQuZ5V.js} +1 -1
  33. package/dist/client/assets/{Users03-D4-XElKy.js → Users03-BuCs_4X9.js} +1 -1
  34. package/dist/client/assets/{X-vcLgMTCi.js → X-Bk5ULEeq.js} +1 -1
  35. package/dist/client/assets/{XCircle-Cl0ZvFu3.js → XCircle-BQl3qWJE.js} +1 -1
  36. package/dist/client/assets/{XClose-Bd5UnKoB.js → XClose-Bchilcbp.js} +1 -1
  37. package/dist/client/assets/{Zap-CkaOLha-.js → Zap-DuLKoK1S.js} +1 -1
  38. package/dist/client/assets/{ZapSquare-CPk9eVHw.js → ZapSquare-tDGMKn9J.js} +1 -1
  39. package/dist/client/assets/{accordion-D0pRkl71.js → accordion-NfPBA-U0.js} +1 -1
  40. package/dist/client/assets/{add-connection-dialog-DvjB6Vjo.js → add-connection-dialog-BbQL-zmU.js} +1 -1
  41. package/dist/client/assets/{add-section-modal-i7ZzaQVv.js → add-section-modal-CfS0r8c9.js} +1 -1
  42. package/dist/client/assets/{agent-icon-GioDWHvZ.js → agent-icon-CcUYNpNG.js} +1 -1
  43. package/dist/client/assets/{agent-icons-B1R1zeQv.js → agent-icons-BooBYjXQ.js} +1 -1
  44. package/dist/client/assets/{agents-list-DCJ-Tp1K.js → agents-list-6iBHQKLZ.js} +1 -1
  45. package/dist/client/assets/{ai-providers-ybgmAasZ.js → ai-providers-DLLRLnYl.js} +1 -1
  46. package/dist/client/assets/{alert-8ZLtvT8J.js → alert-VYcb4ig3.js} +1 -1
  47. package/dist/client/assets/{alert-dialog-C6LMQtVU.js → alert-dialog-CK9VD5_l.js} +1 -1
  48. package/dist/client/assets/{auth-catchall-Bp7ugIUF.js → auth-catchall-CBzqv_ay.js} +1 -1
  49. package/dist/client/assets/{auth-split-layout-BDc_ZXq7.js → auth-split-layout-B_-EJ9gS.js} +1 -1
  50. package/dist/client/assets/{automation-list-row-D1KWSTx4.js → automation-list-row-D4L4nQLO.js} +1 -1
  51. package/dist/client/assets/{automations-BoLav4QA.js → automations-De0AXQ8T.js} +1 -1
  52. package/dist/client/assets/{avatar-BkKczcdI.js → avatar-r7QT3y2R.js} +1 -1
  53. package/dist/client/assets/{badge-BOqwjajJ.js → badge-DiuBQFzQ.js} +1 -1
  54. package/dist/client/assets/{brand-context-emjFVqAv.js → brand-context-DBxEYlSH.js} +1 -1
  55. package/dist/client/assets/{card-Byt7zsq3.js → card-Cuj2I-lJ.js} +1 -1
  56. package/dist/client/assets/{chat-context-CHBmYEK7.js → chat-context-Cqkh_9rF.js} +1 -1
  57. package/dist/client/assets/{checkbox-UlPRhIRR.js → checkbox-7ygU9v-j.js} +1 -1
  58. package/dist/client/assets/{cli-auth-success-BNf-hwGj.js → cli-auth-success-BAqaAGpU.js} +1 -1
  59. package/dist/client/assets/{collection-detail-zOuYWUDp.js → collection-detail-w1rFiqCB.js} +1 -1
  60. package/dist/client/assets/{collection-display-button-pAUlIn8I.js → collection-display-button-BxYv-30x.js} +1 -1
  61. package/dist/client/assets/{collection-search-DoOqZaFk.js → collection-search-B4_tS14J.js} +1 -1
  62. package/dist/client/assets/{collection-search-UV8Eh7NT.js → collection-search-Il6dvsFi.js} +1 -1
  63. package/dist/client/assets/{collection-table-wrapper-D0Fxlldz.js → collection-table-wrapper-Bedm-k0V.js} +1 -1
  64. package/dist/client/assets/{collection-tabs-M_lc71p0.js → collection-tabs-FUPZr-G8.js} +1 -1
  65. package/dist/client/assets/{collections-CWV4Ha1-.js → collections-Cmjz9Y4a.js} +1 -1
  66. package/dist/client/assets/{command-CCi8577P.js → command-C-4ERJqn.js} +1 -1
  67. package/dist/client/assets/{connect-desktop-dialog-BuZOY2fm.js → connect-desktop-dialog-DIt1yDNw.js} +1 -1
  68. package/dist/client/assets/{connection-card-KulpVJpB.js → connection-card-A9_d7btT.js} +1 -1
  69. package/dist/client/assets/{connection-detail-B-ICHLDa.js → connection-detail-BET_D2iZ.js} +1 -1
  70. package/dist/client/assets/{connection-form-helpers-UV4t_WVE.js → connection-form-helpers-DP744OC0.js} +1 -1
  71. package/dist/client/assets/{connections-DR5l5l9k.js → connections-JOwDbHtU.js} +1 -1
  72. package/dist/client/assets/{constants-vngpCoRB.js → constants-Cj9bSnQZ.js} +1 -1
  73. package/dist/client/assets/{decopilot-sse-pool-D3pS1Xyo.js → decopilot-sse-pool-myPVGQXD.js} +1 -1
  74. package/dist/client/assets/{dialog-CvIk2Shd.js → dialog-ynjBNIEn.js} +1 -1
  75. package/dist/client/assets/{domain-settings-DNcBSp9R.js → domain-settings-CWu-XC6a.js} +1 -1
  76. package/dist/client/assets/{drawer-BPi7N_Sh.js → drawer-DvCLQvri.js} +1 -1
  77. package/dist/client/assets/{dropdown-menu-C4pcu9CY.js → dropdown-menu-DksE_dos.js} +1 -1
  78. package/dist/client/assets/{dynamic-plugin-layout-DRQUHsIZ.js → dynamic-plugin-layout-Dfn_tjtP.js} +1 -1
  79. package/dist/client/assets/{empty-state-BgtONLOI.js → empty-state-CsRsMKoP.js} +1 -1
  80. package/dist/client/assets/{empty-state-BKWfkKq3.js → empty-state-Do83tjbM.js} +1 -1
  81. package/dist/client/assets/{extract-connection-data-0w8LNDqq.js → extract-connection-data-CQNRMe8m.js} +1 -1
  82. package/dist/client/assets/{features-BC5Dv5D1.js → features-D9Z3roiP.js} +1 -1
  83. package/dist/client/assets/{file-explorer-D1RkLp2W.js → file-explorer-DlPu61Gb.js} +1 -1
  84. package/dist/client/assets/{files-DAe-zN1s.js → files-DWeLozFT.js} +1 -1
  85. package/dist/client/assets/{form-_qjlMxFQ.js → form-ChKefaVU.js} +1 -1
  86. package/dist/client/assets/{general-t7A9jG4Z.js → general-BWcq2LJC.js} +1 -1
  87. package/dist/client/assets/{generate-id-DHG-XrYE.js → generate-id-D1M9y9nW.js} +1 -1
  88. package/dist/client/assets/{github-repo-picker-CMqe_HM-.js → github-repo-picker-DEDekmv3.js} +1 -1
  89. package/dist/client/assets/{hooks-CXMtPujN.js → hooks-Cg1zAWe0.js} +1 -1
  90. package/dist/client/assets/{hover-card-CZnsGyUF.js → hover-card-DsXy-pkp.js} +1 -1
  91. package/dist/client/assets/index-B1mMC4Tp.js +3 -0
  92. package/dist/client/assets/{index-F7UJF9dH.js → index-BCR-DZ9x.js} +1 -1
  93. package/dist/client/assets/{index-9PlNZH9Y.js → index-BNNRQ5Mn.js} +1 -1
  94. package/dist/client/assets/{index-DD1tmm8V.js → index-Bg1kDF4P.js} +1 -1
  95. package/dist/client/assets/{index-BxCJcKbH.js → index-BqaG7IIW.js} +1 -1
  96. package/dist/client/assets/{index-BCXeHkig.js → index-CExRDsi6.js} +1 -1
  97. package/dist/client/assets/{index-4relJzeJ.js → index-CIobQIjV.js} +5 -5
  98. package/dist/client/assets/{index-qS33xedi.js → index-CZtUm0yp.js} +1 -1
  99. package/dist/client/assets/{index-DUqDXVlp.js → index-CpnVCTc_.js} +1 -1
  100. package/dist/client/assets/{index-CLMmrICE.js → index-Cx0fClBv.js} +1 -1
  101. package/dist/client/assets/{index-3arImVe6.js → index-DJ3U7PTx.js} +1 -1
  102. package/dist/client/assets/{index-Cblb_2G7.js → index-DcLKFH4r.js} +1 -1
  103. package/dist/client/assets/{index-D_jVHlk7.js → index-De_I7kaZ.js} +3 -3
  104. package/dist/client/assets/{index-BpvfdqHT.js → index-Szqb7Jt-.js} +1 -1
  105. package/dist/client/assets/index-VUlKiSjt.css +1 -0
  106. package/dist/client/assets/{index-CvGuwrG-.js → index-cOYcl-tx.js} +1 -1
  107. package/dist/client/assets/{index-BkbO8fqd.js → index-gClxmo1S.js} +1 -1
  108. package/dist/client/assets/{infiniteQueryObserver-BEj-3B4f.js → infiniteQueryObserver-B3gJu8OR.js} +1 -1
  109. package/dist/client/assets/{input-C06Lx9RF.js → input-ybCq8wuI.js} +1 -1
  110. package/dist/client/assets/{integration-icon-CuvnKk_4.js → integration-icon-BTZz9RGO.js} +1 -1
  111. package/dist/client/assets/{label-D64qpzU-.js → label-qCEPWeJE.js} +1 -1
  112. package/dist/client/assets/{layout-HPuUdNmX.js → layout-omiH6F20.js} +1 -1
  113. package/dist/client/assets/{login-CFCNAIfp.js → login-BelOYxzW.js} +1 -1
  114. package/dist/client/assets/{members-DpZt--e3.js → members-CQOW4Jlp.js} +1 -1
  115. package/dist/client/assets/{monaco-editor-e3xmDHS3.js → monaco-editor-DehlsFjg.js} +1 -1
  116. package/dist/client/assets/{monitoring-stats-row-CVw3zdLh.js → monitoring-stats-row-sGcvFIOd.js} +1 -1
  117. package/dist/client/assets/{oauth-callback-CncIIEHg.js → oauth-callback-68pGtzTv.js} +1 -1
  118. package/dist/client/assets/{oauth-callback-ai-provider-BTRll0Ce.js → oauth-callback-ai-provider-DsZwfYgv.js} +1 -1
  119. package/dist/client/assets/{onboarding-BsR8Ibgt.js → onboarding-BX5Y1qLo.js} +1 -1
  120. package/dist/client/assets/{org-layout-DgtuGhPh.js → org-layout-C968qsWl.js} +1 -1
  121. package/dist/client/assets/{org-plugin-layout-CmSDmOSH.js → org-plugin-layout-DIpgaWqC.js} +1 -1
  122. package/dist/client/assets/{pair-bPVe995Q.js → pair-c7ZdAzkF.js} +1 -1
  123. package/dist/client/assets/{plugin-empty-state-DP_n_-TF.js → plugin-empty-state-MFS-PSYP.js} +1 -1
  124. package/dist/client/assets/{plugin-header-CMFfBNNA.js → plugin-header-lPrITwnF.js} +1 -1
  125. package/dist/client/assets/{plugin-layout-94p0HwjF.js → plugin-layout-Da9w8L_C.js} +1 -1
  126. package/dist/client/assets/{popover-YFTx4P3A.js → popover-CSKeGwRt.js} +1 -1
  127. package/dist/client/assets/{profile-BnPT8xmO.js → profile-DTPFTBPd.js} +1 -1
  128. package/dist/client/assets/{project-app-view-l5C4dTtl.js → project-app-view-BOv1FyDC.js} +1 -1
  129. package/dist/client/assets/registry-GJI5lyb2.js +2 -0
  130. package/dist/client/assets/{registry-layout-Dr3gKGmq.js → registry-layout-kEIANdGZ.js} +1 -1
  131. package/dist/client/assets/{required-auth-layout-OHLtf0do.js → required-auth-layout-C0TNdrLL.js} +1 -1
  132. package/dist/client/assets/{reset-password-DlpNFrDd.js → reset-password-NAEWS7RJ.js} +1 -1
  133. package/dist/client/assets/{roles-k7T93MHc.js → roles-Dt6Fpejx.js} +1 -1
  134. package/dist/client/assets/{search-input-BY9Kc_Ub.js → search-input-xBHrNRUL.js} +1 -1
  135. package/dist/client/assets/{secrets-xqA2udAd.js → secrets-Cx8XY64M.js} +1 -1
  136. package/dist/client/assets/{sections-editor-Ded-g9sr.js → sections-editor-DdYAHoLR.js} +1 -1
  137. package/dist/client/assets/{select-BlTqTPqs.js → select-DLa-_Hnp.js} +1 -1
  138. package/dist/client/assets/{settings-layout-C61wGNyR.js → settings-layout-CY2H8Uxw.js} +1 -1
  139. package/dist/client/assets/{settings-section-D2ZpJlyC.js → settings-section-oJbiJ4I4.js} +1 -1
  140. package/dist/client/assets/{shell-controls-ls9uPJHO.js → shell-controls-CoMF2ujL.js} +1 -1
  141. package/dist/client/assets/{shell-layout-7g7-ZMlu.js → shell-layout-BJFVk4hP.js} +1 -1
  142. package/dist/client/assets/{sidebar-DD6zRAUi.js → sidebar-Chfi9jFh.js} +1 -1
  143. package/dist/client/assets/{skeleton-CFalsgiA.js → skeleton-EST7R0oG.js} +1 -1
  144. package/dist/client/assets/{sortable.esm-CjlsTOal.js → sortable.esm-C0JTJNlY.js} +1 -1
  145. package/dist/client/assets/{spinner-C5UiaHes.js → spinner-CBluj_BX.js} +1 -1
  146. package/dist/client/assets/{sso-CqhFqHUf.js → sso-DhH0MBWl.js} +1 -1
  147. package/dist/client/assets/{store-BAA3qzdU.js → store-D6eU3s_R.js} +1 -1
  148. package/dist/client/assets/store-registry-D5d5L53R.js +2 -0
  149. package/dist/client/assets/{switch-GNAxxKOy.js → switch-BNSpfzIJ.js} +1 -1
  150. package/dist/client/assets/{table-CpQnDFk7.js → table-CTwOebgO.js} +1 -1
  151. package/dist/client/assets/{tabs-DJYRjy0Z.js → tabs-CgCGjwIN.js} +1 -1
  152. package/dist/client/assets/{task-status-BuIlh1PY.js → task-status-CMJqv50r.js} +1 -1
  153. package/dist/client/assets/{textarea-DmPZr54_.js → textarea-eP0-QEkH.js} +1 -1
  154. package/dist/client/assets/{toggle-group-BD8MO7wJ.js → toggle-group-BOVUpzog.js} +1 -1
  155. package/dist/client/assets/{toolbar-Ctt9z0x2.js → toolbar-R3X4IZtC.js} +1 -1
  156. package/dist/client/assets/{tools-list-B9R2JQTf.js → tools-list-tJ2oUOws.js} +1 -1
  157. package/dist/client/assets/{tooltip-Cob8_EJK.js → tooltip-C60I7m7f.js} +1 -1
  158. package/dist/client/assets/{types-Djj0qJP1.js → types-DJY4-iWg.js} +1 -1
  159. package/dist/client/assets/{use-ai-providers-DxdJm5Nb.js → use-ai-providers-DOvh086l.js} +1 -1
  160. package/dist/client/assets/{use-collections-CbaWOF5U.js → use-collections-C6a8jbLo.js} +1 -1
  161. package/dist/client/assets/{use-connection-jQq1tQr3.js → use-connection-uX5PhRfi.js} +1 -1
  162. package/dist/client/assets/{use-copy-DB6Ez_pD.js → use-copy-BTO0nXb4.js} +1 -1
  163. package/dist/client/assets/{use-create-virtual-mcp-DETCRAED.js → use-create-virtual-mcp-CdU8FW6S.js} +1 -1
  164. package/dist/client/assets/{use-debounced-autosave-BuPf-Kt_.js → use-debounced-autosave-Cl2JAZMy.js} +1 -1
  165. package/dist/client/assets/{use-delete-connection-BLfM6ur4.js → use-delete-connection-CZboyi6L.js} +1 -1
  166. package/dist/client/assets/{use-file-configs-TNeRmPdR.js → use-file-configs-CkIhVYAB.js} +1 -1
  167. package/dist/client/assets/{use-infinite-scroll-CTUBHzaj.js → use-infinite-scroll-DU_UVTMu.js} +1 -1
  168. package/dist/client/assets/{use-list-state-BQkiVru1.js → use-list-state-DhTyCxl3.js} +1 -1
  169. package/dist/client/assets/{use-mcp-prompts-BJWWApS7.js → use-mcp-prompts-CdPffslJ.js} +1 -1
  170. package/dist/client/assets/{use-mcp-tools-D_iy8-7c.js → use-mcp-tools-DqTxj84f.js} +1 -1
  171. package/dist/client/assets/{use-members-BKMp04dt.js → use-members-DyXD6kf7.js} +1 -1
  172. package/dist/client/assets/{use-navigate-to-agent-DiuBIXr8.js → use-navigate-to-agent-ChTH922b.js} +1 -1
  173. package/dist/client/assets/{use-org-auth-client-B4G75qpF.js → use-org-auth-client-2RJBQijD.js} +1 -1
  174. package/dist/client/assets/{use-org-sso-BFBMMv4A.js → use-org-sso-eHBI20M_.js} +1 -1
  175. package/dist/client/assets/{use-organization-roles-BXOURiZP.js → use-organization-roles-DCwmBpMd.js} +1 -1
  176. package/dist/client/assets/{use-organization-settings-CwFqm3cg.js → use-organization-settings-MHi-mzAm.js} +1 -1
  177. package/dist/client/assets/{use-registry-connections-BrdruFRj.js → use-registry-connections-DrlluQLv.js} +1 -1
  178. package/dist/client/assets/{use-secrets-WYX0onWx.js → use-secrets-KCw7l6zV.js} +1 -1
  179. package/dist/client/assets/{use-status-sounds-C_elSF0k.js → use-status-sounds-Da9DpWxk.js} +1 -1
  180. package/dist/client/assets/{use-view-mode-BTgMWV53.js → use-view-mode-DmBwgwOF.js} +1 -1
  181. package/dist/client/assets/{use-virtual-mcp-CcwUUoYr.js → use-virtual-mcp-XyqJUG5c.js} +1 -1
  182. package/dist/client/assets/useInfiniteQuery-DLWKJin7.js +1 -0
  183. package/dist/client/assets/{useRouterState-CgzGbDte.js → useRouterState-dfg8gaGl.js} +1 -1
  184. package/dist/client/assets/useSuspenseInfiniteQuery-CKudarRm.js +1 -0
  185. package/dist/client/assets/{user-FSLbHK7S.js → user-CWsGbVJS.js} +1 -1
  186. package/dist/client/assets/{view-mode-toggle-mkCDwk7Q.js → view-mode-toggle-ByeQqk2N.js} +1 -1
  187. package/dist/client/assets/{workflow-DS5xbRWh.js → workflow-B9eao28O.js} +1 -1
  188. package/dist/client/assets/workflow-detail-DmreacEu.js +1 -0
  189. package/dist/client/index.html +2 -2
  190. package/dist/server/cli.js +1 -1
  191. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/OTLPExporterBase.d.ts +1 -1
  192. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/OTLPExporterBase.js +2 -2
  193. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/OTLPExporterBase.js.map +1 -1
  194. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-browser-http-options.js +2 -2
  195. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-browser-http-options.js.map +1 -1
  196. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-node-http-options.js +2 -2
  197. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-node-http-options.js.map +1 -1
  198. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/create-legacy-browser-delegate.js +7 -2
  199. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/create-legacy-browser-delegate.js.map +1 -1
  200. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/legacy-base-configuration.d.ts +1 -26
  201. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/legacy-base-configuration.js.map +1 -1
  202. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/otlp-http-configuration.d.ts +1 -2
  203. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/otlp-http-configuration.js +9 -9
  204. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/otlp-http-configuration.js.map +1 -1
  205. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/shared-configuration.d.ts +1 -2
  206. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/shared-configuration.js +1 -1
  207. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/shared-configuration.js.map +1 -1
  208. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/export-response.d.ts +0 -1
  209. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/export-response.js.map +1 -1
  210. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/index-browser-http.d.ts +1 -1
  211. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/index-browser-http.js +1 -1
  212. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/index-browser-http.js.map +1 -1
  213. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/is-export-retryable.d.ts +1 -1
  214. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/is-export-retryable.js +3 -5
  215. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/is-export-retryable.js.map +1 -1
  216. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-browser-http-export-delegate.d.ts +4 -0
  217. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-browser-http-export-delegate.js +10 -1
  218. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-browser-http-export-delegate.js.map +1 -1
  219. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-export-delegate.js +8 -9
  220. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/otlp-export-delegate.js.map +1 -1
  221. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/retrying-transport.js +5 -17
  222. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/retrying-transport.js.map +1 -1
  223. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/fetch-transport.d.ts +1 -2
  224. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/fetch-transport.js +8 -13
  225. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/fetch-transport.js.map +1 -1
  226. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-exporter-transport.js +4 -5
  227. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-exporter-transport.js.map +1 -1
  228. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-types.d.ts +1 -2
  229. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-types.js.map +1 -1
  230. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-utils.d.ts +2 -1
  231. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-utils.js +14 -37
  232. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/http-transport-utils.js.map +1 -1
  233. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/send-beacon-transport.d.ts +2 -4
  234. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/send-beacon-transport.js +4 -5
  235. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/send-beacon-transport.js.map +1 -1
  236. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/xhr-transport.d.ts +17 -0
  237. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/xhr-transport.js +86 -0
  238. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/transport/xhr-transport.js.map +1 -0
  239. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/util.d.ts +1 -1
  240. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/util.js +12 -10
  241. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/util.js.map +1 -1
  242. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.d.ts +1 -1
  243. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.js +1 -1
  244. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/version.js.map +1 -1
  245. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/OTLPExporterBase.d.ts +1 -1
  246. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/OTLPExporterBase.js +2 -2
  247. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/OTLPExporterBase.js.map +1 -1
  248. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-browser-http-options.js +2 -2
  249. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-browser-http-options.js.map +1 -1
  250. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-node-http-options.js +2 -2
  251. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-node-http-options.js.map +1 -1
  252. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/create-legacy-browser-delegate.js +7 -2
  253. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/create-legacy-browser-delegate.js.map +1 -1
  254. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/legacy-base-configuration.d.ts +1 -26
  255. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/legacy-base-configuration.js.map +1 -1
  256. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/otlp-http-configuration.d.ts +1 -2
  257. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/otlp-http-configuration.js +9 -9
  258. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/otlp-http-configuration.js.map +1 -1
  259. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/shared-configuration.d.ts +1 -2
  260. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/shared-configuration.js +1 -1
  261. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/shared-configuration.js.map +1 -1
  262. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/export-response.d.ts +0 -1
  263. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/export-response.js.map +1 -1
  264. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/index-browser-http.d.ts +1 -1
  265. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/index-browser-http.js +1 -1
  266. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/index-browser-http.js.map +1 -1
  267. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/is-export-retryable.d.ts +1 -1
  268. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/is-export-retryable.js +3 -5
  269. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/is-export-retryable.js.map +1 -1
  270. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-browser-http-export-delegate.d.ts +4 -0
  271. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-browser-http-export-delegate.js +10 -1
  272. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-browser-http-export-delegate.js.map +1 -1
  273. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-export-delegate.js +8 -9
  274. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/otlp-export-delegate.js.map +1 -1
  275. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/retrying-transport.js +5 -17
  276. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/retrying-transport.js.map +1 -1
  277. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/fetch-transport.d.ts +1 -2
  278. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/fetch-transport.js +8 -13
  279. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/fetch-transport.js.map +1 -1
  280. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-exporter-transport.js +4 -5
  281. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-exporter-transport.js.map +1 -1
  282. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-types.d.ts +1 -2
  283. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-types.js.map +1 -1
  284. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-utils.d.ts +2 -1
  285. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-utils.js +14 -37
  286. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/http-transport-utils.js.map +1 -1
  287. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/send-beacon-transport.d.ts +2 -4
  288. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/send-beacon-transport.js +4 -5
  289. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/send-beacon-transport.js.map +1 -1
  290. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/xhr-transport.d.ts +17 -0
  291. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/xhr-transport.js +86 -0
  292. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/transport/xhr-transport.js.map +1 -0
  293. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/util.d.ts +1 -1
  294. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/util.js +12 -10
  295. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/util.js.map +1 -1
  296. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/version.d.ts +1 -1
  297. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/version.js +1 -1
  298. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/version.js.map +1 -1
  299. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/OTLPExporterBase.d.ts +1 -1
  300. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/OTLPExporterBase.js +2 -2
  301. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/OTLPExporterBase.js.map +1 -1
  302. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-browser-http-options.js +2 -2
  303. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-browser-http-options.js.map +1 -1
  304. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-node-http-options.js +2 -2
  305. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-node-http-options.js.map +1 -1
  306. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/create-legacy-browser-delegate.js +6 -1
  307. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/create-legacy-browser-delegate.js.map +1 -1
  308. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/legacy-base-configuration.d.ts +1 -26
  309. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/legacy-base-configuration.js.map +1 -1
  310. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/otlp-http-configuration.d.ts +1 -2
  311. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/otlp-http-configuration.js +9 -9
  312. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/otlp-http-configuration.js.map +1 -1
  313. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/shared-configuration.d.ts +1 -2
  314. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/shared-configuration.js +1 -1
  315. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/shared-configuration.js.map +1 -1
  316. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/export-response.d.ts +0 -1
  317. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/export-response.js.map +1 -1
  318. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/index-browser-http.d.ts +1 -1
  319. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/index-browser-http.js +2 -1
  320. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/index-browser-http.js.map +1 -1
  321. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/is-export-retryable.d.ts +1 -1
  322. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/is-export-retryable.js +5 -7
  323. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/is-export-retryable.js.map +1 -1
  324. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-browser-http-export-delegate.d.ts +4 -0
  325. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-browser-http-export-delegate.js +12 -2
  326. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-browser-http-export-delegate.js.map +1 -1
  327. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-export-delegate.js +8 -9
  328. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/otlp-export-delegate.js.map +1 -1
  329. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/retrying-transport.js +5 -17
  330. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/retrying-transport.js.map +1 -1
  331. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/fetch-transport.d.ts +1 -2
  332. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/fetch-transport.js +7 -12
  333. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/fetch-transport.js.map +1 -1
  334. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-exporter-transport.js +4 -5
  335. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-exporter-transport.js.map +1 -1
  336. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-types.d.ts +1 -2
  337. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-types.js.map +1 -1
  338. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.d.ts +2 -1
  339. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js +13 -36
  340. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/http-transport-utils.js.map +1 -1
  341. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/send-beacon-transport.d.ts +2 -4
  342. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/send-beacon-transport.js +4 -5
  343. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/send-beacon-transport.js.map +1 -1
  344. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/xhr-transport.d.ts +17 -0
  345. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/xhr-transport.js +90 -0
  346. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/transport/xhr-transport.js.map +1 -0
  347. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/util.d.ts +1 -1
  348. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/util.js +12 -10
  349. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/util.js.map +1 -1
  350. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/version.d.ts +1 -1
  351. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/version.js +1 -1
  352. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/version.js.map +1 -1
  353. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/package.json +6 -6
  354. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/InstrumentDescriptor.js +1 -1
  355. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/InstrumentDescriptor.js.map +1 -1
  356. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Instruments.d.ts +3 -3
  357. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Instruments.js +6 -6
  358. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Instruments.js.map +1 -1
  359. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Meter.d.ts +1 -1
  360. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Meter.js +2 -2
  361. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/Meter.js.map +1 -1
  362. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/ObservableResult.d.ts +3 -3
  363. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/ObservableResult.js +5 -5
  364. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/ObservableResult.js.map +1 -1
  365. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/ExponentialHistogram.d.ts +3 -3
  366. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/ExponentialHistogram.js +17 -17
  367. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/ExponentialHistogram.js.map +1 -1
  368. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Histogram.d.ts +3 -3
  369. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Histogram.js +8 -8
  370. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Histogram.js.map +1 -1
  371. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/LastValue.d.ts +1 -1
  372. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/LastValue.js +2 -2
  373. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/LastValue.js.map +1 -1
  374. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Sum.d.ts +2 -2
  375. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Sum.js +3 -3
  376. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/Sum.js.map +1 -1
  377. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/exponential-histogram/Buckets.d.ts +1 -1
  378. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/exponential-histogram/Buckets.js +2 -2
  379. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/aggregator/exponential-histogram/Buckets.js.map +1 -1
  380. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/ConsoleMetricExporter.js +1 -1
  381. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/ConsoleMetricExporter.js.map +1 -1
  382. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReader.js +3 -3
  383. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/MetricReader.js.map +1 -1
  384. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/PeriodicExportingMetricReader.js +21 -14
  385. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/export/PeriodicExportingMetricReader.js.map +1 -1
  386. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/AsyncMetricStorage.d.ts +2 -2
  387. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/AsyncMetricStorage.js +4 -4
  388. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/AsyncMetricStorage.js.map +1 -1
  389. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/DeltaMetricProcessor.d.ts +2 -2
  390. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/DeltaMetricProcessor.js +3 -3
  391. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/DeltaMetricProcessor.js.map +1 -1
  392. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/HashMap.d.ts +2 -2
  393. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/HashMap.js +3 -3
  394. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/HashMap.js.map +1 -1
  395. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterProviderSharedState.d.ts +1 -1
  396. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterProviderSharedState.js +1 -1
  397. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterProviderSharedState.js.map +1 -1
  398. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterSharedState.d.ts +3 -3
  399. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterSharedState.js +12 -11
  400. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MeterSharedState.js.map +1 -1
  401. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricCollector.d.ts +1 -1
  402. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricCollector.js +3 -3
  403. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricCollector.js.map +1 -1
  404. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricStorage.d.ts +1 -1
  405. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricStorage.js +2 -2
  406. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MetricStorage.js.map +1 -1
  407. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MultiWritableMetricStorage.d.ts +1 -1
  408. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MultiWritableMetricStorage.js +2 -2
  409. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/MultiWritableMetricStorage.js.map +1 -1
  410. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/ObservableRegistry.js +4 -4
  411. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/ObservableRegistry.js.map +1 -1
  412. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/SyncMetricStorage.d.ts +2 -2
  413. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/SyncMetricStorage.js +4 -4
  414. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/SyncMetricStorage.js.map +1 -1
  415. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/TemporalMetricProcessor.d.ts +1 -1
  416. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/TemporalMetricProcessor.js +2 -2
  417. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/state/TemporalMetricProcessor.js.map +1 -1
  418. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/utils.d.ts +0 -19
  419. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/utils.js +0 -36
  420. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/utils.js.map +1 -1
  421. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/version.d.ts +1 -1
  422. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/version.js +1 -1
  423. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/version.js.map +1 -1
  424. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/Aggregation.d.ts +3 -3
  425. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/Aggregation.js +6 -6
  426. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/Aggregation.js.map +1 -1
  427. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/AttributesProcessor.js +16 -12
  428. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esm/view/AttributesProcessor.js.map +1 -1
  429. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/InstrumentDescriptor.js +1 -1
  430. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/InstrumentDescriptor.js.map +1 -1
  431. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Instruments.d.ts +3 -3
  432. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Instruments.js +6 -6
  433. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Instruments.js.map +1 -1
  434. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Meter.d.ts +1 -1
  435. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Meter.js +2 -2
  436. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/Meter.js.map +1 -1
  437. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/ObservableResult.d.ts +3 -3
  438. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/ObservableResult.js +5 -5
  439. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/ObservableResult.js.map +1 -1
  440. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/ExponentialHistogram.d.ts +3 -3
  441. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/ExponentialHistogram.js +17 -17
  442. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/ExponentialHistogram.js.map +1 -1
  443. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Histogram.d.ts +3 -3
  444. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Histogram.js +8 -8
  445. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Histogram.js.map +1 -1
  446. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/LastValue.d.ts +1 -1
  447. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/LastValue.js +2 -2
  448. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/LastValue.js.map +1 -1
  449. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Sum.d.ts +2 -2
  450. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Sum.js +3 -3
  451. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/Sum.js.map +1 -1
  452. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/exponential-histogram/Buckets.d.ts +1 -1
  453. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/exponential-histogram/Buckets.js +2 -2
  454. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/aggregator/exponential-histogram/Buckets.js.map +1 -1
  455. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/ConsoleMetricExporter.js +1 -1
  456. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/ConsoleMetricExporter.js.map +1 -1
  457. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReader.js +3 -3
  458. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/MetricReader.js.map +1 -1
  459. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/PeriodicExportingMetricReader.js +21 -14
  460. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/export/PeriodicExportingMetricReader.js.map +1 -1
  461. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/AsyncMetricStorage.d.ts +2 -2
  462. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/AsyncMetricStorage.js +4 -4
  463. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/AsyncMetricStorage.js.map +1 -1
  464. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/DeltaMetricProcessor.d.ts +2 -2
  465. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/DeltaMetricProcessor.js +3 -3
  466. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/DeltaMetricProcessor.js.map +1 -1
  467. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/HashMap.d.ts +2 -2
  468. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/HashMap.js +3 -3
  469. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/HashMap.js.map +1 -1
  470. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterProviderSharedState.d.ts +1 -1
  471. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterProviderSharedState.js +1 -1
  472. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterProviderSharedState.js.map +1 -1
  473. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterSharedState.d.ts +3 -3
  474. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterSharedState.js +12 -11
  475. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MeterSharedState.js.map +1 -1
  476. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricCollector.d.ts +1 -1
  477. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricCollector.js +3 -3
  478. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricCollector.js.map +1 -1
  479. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricStorage.d.ts +1 -1
  480. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricStorage.js +2 -2
  481. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MetricStorage.js.map +1 -1
  482. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MultiWritableMetricStorage.d.ts +1 -1
  483. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MultiWritableMetricStorage.js +2 -2
  484. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/MultiWritableMetricStorage.js.map +1 -1
  485. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/ObservableRegistry.js +4 -4
  486. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/ObservableRegistry.js.map +1 -1
  487. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/SyncMetricStorage.d.ts +2 -2
  488. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/SyncMetricStorage.js +4 -4
  489. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/SyncMetricStorage.js.map +1 -1
  490. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/TemporalMetricProcessor.d.ts +1 -1
  491. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/TemporalMetricProcessor.js +2 -2
  492. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/state/TemporalMetricProcessor.js.map +1 -1
  493. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/utils.d.ts +0 -19
  494. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/utils.js +0 -36
  495. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/utils.js.map +1 -1
  496. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/version.d.ts +1 -1
  497. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/version.js +1 -1
  498. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/version.js.map +1 -1
  499. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/Aggregation.d.ts +3 -3
  500. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/Aggregation.js +6 -6
  501. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/Aggregation.js.map +1 -1
  502. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/AttributesProcessor.js +16 -12
  503. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/esnext/view/AttributesProcessor.js.map +1 -1
  504. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/InstrumentDescriptor.js +1 -1
  505. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/InstrumentDescriptor.js.map +1 -1
  506. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Instruments.d.ts +3 -3
  507. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Instruments.js +6 -6
  508. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Instruments.js.map +1 -1
  509. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Meter.d.ts +1 -1
  510. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Meter.js +2 -2
  511. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/Meter.js.map +1 -1
  512. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/ObservableResult.d.ts +3 -3
  513. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/ObservableResult.js +5 -5
  514. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/ObservableResult.js.map +1 -1
  515. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/ExponentialHistogram.d.ts +3 -3
  516. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/ExponentialHistogram.js +17 -17
  517. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/ExponentialHistogram.js.map +1 -1
  518. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Histogram.d.ts +3 -3
  519. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Histogram.js +8 -8
  520. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Histogram.js.map +1 -1
  521. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/LastValue.d.ts +1 -1
  522. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/LastValue.js +2 -2
  523. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/LastValue.js.map +1 -1
  524. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Sum.d.ts +2 -2
  525. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Sum.js +3 -3
  526. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/Sum.js.map +1 -1
  527. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/Buckets.d.ts +1 -1
  528. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/Buckets.js +2 -2
  529. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/aggregator/exponential-histogram/Buckets.js.map +1 -1
  530. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/ConsoleMetricExporter.js +1 -1
  531. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/ConsoleMetricExporter.js.map +1 -1
  532. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.js +2 -2
  533. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/MetricReader.js.map +1 -1
  534. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/PeriodicExportingMetricReader.js +21 -14
  535. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/export/PeriodicExportingMetricReader.js.map +1 -1
  536. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/AsyncMetricStorage.d.ts +2 -2
  537. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/AsyncMetricStorage.js +4 -4
  538. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/AsyncMetricStorage.js.map +1 -1
  539. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.d.ts +2 -2
  540. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.js +3 -3
  541. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/DeltaMetricProcessor.js.map +1 -1
  542. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.d.ts +2 -2
  543. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.js +3 -3
  544. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/HashMap.js.map +1 -1
  545. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterProviderSharedState.d.ts +1 -1
  546. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterProviderSharedState.js +1 -1
  547. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterProviderSharedState.js.map +1 -1
  548. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterSharedState.d.ts +3 -3
  549. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterSharedState.js +12 -11
  550. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MeterSharedState.js.map +1 -1
  551. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricCollector.d.ts +1 -1
  552. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricCollector.js +3 -3
  553. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricCollector.js.map +1 -1
  554. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorage.d.ts +1 -1
  555. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorage.js +2 -2
  556. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MetricStorage.js.map +1 -1
  557. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MultiWritableMetricStorage.d.ts +1 -1
  558. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MultiWritableMetricStorage.js +2 -2
  559. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/MultiWritableMetricStorage.js.map +1 -1
  560. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/ObservableRegistry.js +3 -3
  561. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/ObservableRegistry.js.map +1 -1
  562. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/SyncMetricStorage.d.ts +2 -2
  563. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/SyncMetricStorage.js +4 -4
  564. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/SyncMetricStorage.js.map +1 -1
  565. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.d.ts +1 -1
  566. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.js +2 -2
  567. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/state/TemporalMetricProcessor.js.map +1 -1
  568. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/utils.d.ts +0 -19
  569. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/utils.js +1 -41
  570. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/utils.js.map +1 -1
  571. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/version.d.ts +1 -1
  572. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/version.js +1 -1
  573. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/version.js.map +1 -1
  574. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/Aggregation.d.ts +3 -3
  575. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/Aggregation.js +6 -6
  576. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/Aggregation.js.map +1 -1
  577. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/AttributesProcessor.js +16 -12
  578. package/dist/server/node_modules/@opentelemetry/sdk-metrics/build/src/view/AttributesProcessor.js.map +1 -1
  579. package/dist/server/node_modules/@opentelemetry/sdk-metrics/package.json +6 -6
  580. package/dist/server/node_modules/environment/index.d.ts +74 -0
  581. package/dist/server/node_modules/environment/index.js +47 -0
  582. package/dist/server/node_modules/environment/license +9 -0
  583. package/dist/server/node_modules/environment/package.json +74 -0
  584. package/dist/server/node_modules/environment/readme.md +94 -0
  585. package/dist/server/node_modules/get-east-asian-width/index.d.ts +60 -0
  586. package/dist/server/node_modules/get-east-asian-width/index.js +30 -0
  587. package/dist/server/node_modules/get-east-asian-width/license +9 -0
  588. package/dist/server/node_modules/get-east-asian-width/lookup-data.js +18 -0
  589. package/dist/server/node_modules/get-east-asian-width/lookup.js +135 -0
  590. package/dist/server/node_modules/get-east-asian-width/package.json +71 -0
  591. package/dist/server/node_modules/get-east-asian-width/readme.md +65 -0
  592. package/dist/server/node_modules/get-east-asian-width/utilities.js +24 -0
  593. package/dist/server/node_modules/protobufjs/dist/light/protobuf.js +13 -10
  594. package/dist/server/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  595. package/dist/server/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  596. package/dist/server/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  597. package/dist/server/node_modules/protobufjs/dist/minimal/protobuf.js +2 -2
  598. package/dist/server/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
  599. package/dist/server/node_modules/protobufjs/dist/protobuf.js +14 -55
  600. package/dist/server/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  601. package/dist/server/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  602. package/dist/server/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  603. package/dist/server/node_modules/protobufjs/package.json +1 -1
  604. package/dist/server/node_modules/protobufjs/src/message.js +7 -3
  605. package/dist/server/node_modules/protobufjs/src/object.js +3 -6
  606. package/dist/server/node_modules/protobufjs/src/parse.js +1 -45
  607. package/dist/server/node_modules/protobufjs/src/type.js +1 -0
  608. package/package.json +1 -1
  609. package/dist/client/assets/index-Cp1_zKeg.js +0 -3
  610. package/dist/client/assets/index-DynyOb6d.css +0 -1
  611. package/dist/client/assets/registry-BVwQJugq.js +0 -2
  612. package/dist/client/assets/store-registry-azpblePg.js +0 -2
  613. package/dist/client/assets/useInfiniteQuery-BddyXD37.js +0 -1
  614. package/dist/client/assets/useSuspenseInfiniteQuery-XOkQvIT2.js +0 -1
  615. package/dist/client/assets/workflow-detail-DhbHaLPV.js +0 -1
  616. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-http-options.d.ts +0 -4
  617. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-http-options.js +0 -23
  618. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esm/configuration/convert-legacy-http-options.js.map +0 -1
  619. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-http-options.d.ts +0 -4
  620. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-http-options.js +0 -23
  621. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/esnext/configuration/convert-legacy-http-options.js.map +0 -1
  622. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-http-options.d.ts +0 -4
  623. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-http-options.js +0 -27
  624. package/dist/server/node_modules/@opentelemetry/otlp-exporter-base/build/src/configuration/convert-legacy-http-options.js.map +0 -1
@@ -85,9 +85,9 @@ class MetricReader {
85
85
  })),
86
86
  ]);
87
87
  // Merge the results, keeping the SDK's Resource
88
- const errors = sdkCollectionResults.errors.concat((0, utils_1.FlatMap)(additionalCollectionResults, result => result.errors));
88
+ const errors = sdkCollectionResults.errors.concat(additionalCollectionResults.flatMap(result => result.errors));
89
89
  const resource = sdkCollectionResults.resourceMetrics.resource;
90
- const scopeMetrics = sdkCollectionResults.resourceMetrics.scopeMetrics.concat((0, utils_1.FlatMap)(additionalCollectionResults, result => result.resourceMetrics.scopeMetrics));
90
+ const scopeMetrics = sdkCollectionResults.resourceMetrics.scopeMetrics.concat(additionalCollectionResults.flatMap(result => result.resourceMetrics.scopeMetrics));
91
91
  return {
92
92
  resourceMetrics: {
93
93
  resource,
@@ -1 +1 @@
1
- {"version":3,"file":"MetricReader.js","sourceRoot":"","sources":["../../../src/export/MetricReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport { AggregationTemporality } from './AggregationTemporality';\nimport { MetricProducer } from './MetricProducer';\nimport { CollectionResult, InstrumentType } from './MetricData';\nimport { callWithTimeout, FlatMap } from '../utils';\nimport {\n CollectionOptions,\n ForceFlushOptions,\n ShutdownOptions,\n} from '../types';\nimport {\n AggregationSelector,\n AggregationTemporalitySelector,\n DEFAULT_AGGREGATION_SELECTOR,\n DEFAULT_AGGREGATION_TEMPORALITY_SELECTOR,\n} from './AggregationSelector';\nimport { AggregationOption } from '../view/AggregationOption';\nimport { CardinalitySelector } from './CardinalitySelector';\n\nexport interface MetricReaderOptions {\n /**\n * Aggregation selector based on metric instrument types. If no views are\n * configured for a metric instrument, a per-metric-reader aggregation is\n * selected with this selector.\n *\n * <p> NOTE: the provided function MUST be pure\n */\n aggregationSelector?: AggregationSelector;\n /**\n * Aggregation temporality selector based on metric instrument types. If\n * not configured, cumulative is used for all instruments.\n *\n * <p> NOTE: the provided function MUST be pure\n */\n aggregationTemporalitySelector?: AggregationTemporalitySelector;\n /**\n * Cardinality selector based on metric instrument types. If not configured,\n * a default value is used.\n *\n * <p> NOTE: the provided function MUST be pure\n */\n cardinalitySelector?: CardinalitySelector;\n /**\n * **Note, this option is experimental**. Additional MetricProducers to use as a source of\n * aggregated metric data in addition to the SDK's metric data. The resource returned by\n * these MetricProducers is ignored; the SDK's resource will be used instead.\n * @experimental\n */\n metricProducers?: MetricProducer[];\n}\n\n/**\n * Reads metrics from the SDK. Implementations MUST follow the Metric Reader Specification as well as the requirements\n * listed in this interface. Consider extending {@link MetricReader} to get a specification-compliant base implementation\n * of this interface\n */\nexport interface IMetricReader {\n /**\n * Set the {@link MetricProducer} used by this instance. **This should only be called once by the\n * SDK and should be considered internal.**\n *\n * <p> NOTE: implementations MUST throw when called more than once\n *\n * @param metricProducer\n */\n setMetricProducer(metricProducer: MetricProducer): void;\n\n /**\n * Select the {@link AggregationOption} for the given {@link InstrumentType} for this\n * reader.\n *\n * <p> NOTE: implementations MUST be pure\n */\n selectAggregation(instrumentType: InstrumentType): AggregationOption;\n\n /**\n * Select the {@link AggregationTemporality} for the given\n * {@link InstrumentType} for this reader.\n *\n * <p> NOTE: implementations MUST be pure\n */\n selectAggregationTemporality(\n instrumentType: InstrumentType\n ): AggregationTemporality;\n\n /**\n * Select the cardinality limit for the given {@link InstrumentType} for this\n * reader.\n *\n * <p> NOTE: implementations MUST be pure\n */\n selectCardinalityLimit(instrumentType: InstrumentType): number;\n\n /**\n * Collect all metrics from the associated {@link MetricProducer}\n */\n collect(options?: CollectionOptions): Promise<CollectionResult>;\n\n /**\n * Shuts down the metric reader, the promise will reject after the optional timeout or resolve after completion.\n *\n * <p> NOTE: this operation MAY continue even after the promise rejects due to a timeout.\n * @param options options with timeout.\n */\n shutdown(options?: ShutdownOptions): Promise<void>;\n\n /**\n * Flushes metrics read by this reader, the promise will reject after the optional timeout or resolve after completion.\n *\n * <p> NOTE: this operation MAY continue even after the promise rejects due to a timeout.\n * @param options options with timeout.\n */\n forceFlush(options?: ForceFlushOptions): Promise<void>;\n}\n\n/**\n * A registered reader of metrics that, when linked to a {@link MetricProducer}, offers global\n * control over metrics.\n */\nexport abstract class MetricReader implements IMetricReader {\n // Tracks the shutdown state.\n // TODO: use BindOncePromise here once a new version of @opentelemetry/core is available.\n private _shutdown = false;\n // Additional MetricProducers which will be combined with the SDK's output\n private _metricProducers: MetricProducer[];\n // MetricProducer used by this instance which produces metrics from the SDK\n private _sdkMetricProducer?: MetricProducer;\n private readonly _aggregationTemporalitySelector: AggregationTemporalitySelector;\n private readonly _aggregationSelector: AggregationSelector;\n private readonly _cardinalitySelector?: CardinalitySelector;\n\n constructor(options?: MetricReaderOptions) {\n this._aggregationSelector =\n options?.aggregationSelector ?? DEFAULT_AGGREGATION_SELECTOR;\n this._aggregationTemporalitySelector =\n options?.aggregationTemporalitySelector ??\n DEFAULT_AGGREGATION_TEMPORALITY_SELECTOR;\n this._metricProducers = options?.metricProducers ?? [];\n this._cardinalitySelector = options?.cardinalitySelector;\n }\n\n setMetricProducer(metricProducer: MetricProducer) {\n if (this._sdkMetricProducer) {\n throw new Error(\n 'MetricReader can not be bound to a MeterProvider again.'\n );\n }\n this._sdkMetricProducer = metricProducer;\n this.onInitialized();\n }\n\n selectAggregation(instrumentType: InstrumentType): AggregationOption {\n return this._aggregationSelector(instrumentType);\n }\n\n selectAggregationTemporality(\n instrumentType: InstrumentType\n ): AggregationTemporality {\n return this._aggregationTemporalitySelector(instrumentType);\n }\n\n selectCardinalityLimit(instrumentType: InstrumentType): number {\n return this._cardinalitySelector\n ? this._cardinalitySelector(instrumentType)\n : 2000; // default value if no selector is provided\n }\n\n /**\n * Handle once the SDK has initialized this {@link MetricReader}\n * Overriding this method is optional.\n */\n protected onInitialized(): void {\n // Default implementation is empty.\n }\n\n /**\n * Handle a shutdown signal by the SDK.\n *\n * <p> For push exporters, this should shut down any intervals and close any open connections.\n * @protected\n */\n protected abstract onShutdown(): Promise<void>;\n\n /**\n * Handle a force flush signal by the SDK.\n *\n * <p> In all scenarios metrics should be collected via {@link collect()}.\n * <p> For push exporters, this should collect and report metrics.\n * @protected\n */\n protected abstract onForceFlush(): Promise<void>;\n\n async collect(options?: CollectionOptions): Promise<CollectionResult> {\n if (this._sdkMetricProducer === undefined) {\n throw new Error('MetricReader is not bound to a MetricProducer');\n }\n\n // Subsequent invocations to collect are not allowed. SDKs SHOULD return some failure for these calls.\n if (this._shutdown) {\n throw new Error('MetricReader is shutdown');\n }\n\n const [sdkCollectionResults, ...additionalCollectionResults] =\n await Promise.all([\n this._sdkMetricProducer.collect({\n timeoutMillis: options?.timeoutMillis,\n }),\n ...this._metricProducers.map(producer =>\n producer.collect({\n timeoutMillis: options?.timeoutMillis,\n })\n ),\n ]);\n\n // Merge the results, keeping the SDK's Resource\n const errors = sdkCollectionResults.errors.concat(\n FlatMap(additionalCollectionResults, result => result.errors)\n );\n const resource = sdkCollectionResults.resourceMetrics.resource;\n const scopeMetrics =\n sdkCollectionResults.resourceMetrics.scopeMetrics.concat(\n FlatMap(\n additionalCollectionResults,\n result => result.resourceMetrics.scopeMetrics\n )\n );\n return {\n resourceMetrics: {\n resource,\n scopeMetrics,\n },\n errors,\n };\n }\n\n async shutdown(options?: ShutdownOptions): Promise<void> {\n // Do not call shutdown again if it has already been called.\n if (this._shutdown) {\n api.diag.error('Cannot call shutdown twice.');\n return;\n }\n\n // No timeout if timeoutMillis is undefined or null.\n if (options?.timeoutMillis == null) {\n await this.onShutdown();\n } else {\n await callWithTimeout(this.onShutdown(), options.timeoutMillis);\n }\n\n this._shutdown = true;\n }\n\n async forceFlush(options?: ForceFlushOptions): Promise<void> {\n if (this._shutdown) {\n api.diag.warn('Cannot forceFlush on already shutdown MetricReader.');\n return;\n }\n\n // No timeout if timeoutMillis is undefined or null.\n if (options?.timeoutMillis == null) {\n await this.onForceFlush();\n return;\n }\n\n await callWithTimeout(this.onForceFlush(), options.timeoutMillis);\n }\n}\n"]}
1
+ {"version":3,"file":"MetricReader.js","sourceRoot":"","sources":["../../../src/export/MetricReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport { AggregationTemporality } from './AggregationTemporality';\nimport { MetricProducer } from './MetricProducer';\nimport { CollectionResult, InstrumentType } from './MetricData';\nimport { callWithTimeout } from '../utils';\nimport {\n CollectionOptions,\n ForceFlushOptions,\n ShutdownOptions,\n} from '../types';\nimport {\n AggregationSelector,\n AggregationTemporalitySelector,\n DEFAULT_AGGREGATION_SELECTOR,\n DEFAULT_AGGREGATION_TEMPORALITY_SELECTOR,\n} from './AggregationSelector';\nimport { AggregationOption } from '../view/AggregationOption';\nimport { CardinalitySelector } from './CardinalitySelector';\n\nexport interface MetricReaderOptions {\n /**\n * Aggregation selector based on metric instrument types. If no views are\n * configured for a metric instrument, a per-metric-reader aggregation is\n * selected with this selector.\n *\n * <p> NOTE: the provided function MUST be pure\n */\n aggregationSelector?: AggregationSelector;\n /**\n * Aggregation temporality selector based on metric instrument types. If\n * not configured, cumulative is used for all instruments.\n *\n * <p> NOTE: the provided function MUST be pure\n */\n aggregationTemporalitySelector?: AggregationTemporalitySelector;\n /**\n * Cardinality selector based on metric instrument types. If not configured,\n * a default value is used.\n *\n * <p> NOTE: the provided function MUST be pure\n */\n cardinalitySelector?: CardinalitySelector;\n /**\n * **Note, this option is experimental**. Additional MetricProducers to use as a source of\n * aggregated metric data in addition to the SDK's metric data. The resource returned by\n * these MetricProducers is ignored; the SDK's resource will be used instead.\n * @experimental\n */\n metricProducers?: MetricProducer[];\n}\n\n/**\n * Reads metrics from the SDK. Implementations MUST follow the Metric Reader Specification as well as the requirements\n * listed in this interface. Consider extending {@link MetricReader} to get a specification-compliant base implementation\n * of this interface\n */\nexport interface IMetricReader {\n /**\n * Set the {@link MetricProducer} used by this instance. **This should only be called once by the\n * SDK and should be considered internal.**\n *\n * <p> NOTE: implementations MUST throw when called more than once\n *\n * @param metricProducer\n */\n setMetricProducer(metricProducer: MetricProducer): void;\n\n /**\n * Select the {@link AggregationOption} for the given {@link InstrumentType} for this\n * reader.\n *\n * <p> NOTE: implementations MUST be pure\n */\n selectAggregation(instrumentType: InstrumentType): AggregationOption;\n\n /**\n * Select the {@link AggregationTemporality} for the given\n * {@link InstrumentType} for this reader.\n *\n * <p> NOTE: implementations MUST be pure\n */\n selectAggregationTemporality(\n instrumentType: InstrumentType\n ): AggregationTemporality;\n\n /**\n * Select the cardinality limit for the given {@link InstrumentType} for this\n * reader.\n *\n * <p> NOTE: implementations MUST be pure\n */\n selectCardinalityLimit(instrumentType: InstrumentType): number;\n\n /**\n * Collect all metrics from the associated {@link MetricProducer}\n */\n collect(options?: CollectionOptions): Promise<CollectionResult>;\n\n /**\n * Shuts down the metric reader, the promise will reject after the optional timeout or resolve after completion.\n *\n * <p> NOTE: this operation MAY continue even after the promise rejects due to a timeout.\n * @param options options with timeout.\n */\n shutdown(options?: ShutdownOptions): Promise<void>;\n\n /**\n * Flushes metrics read by this reader, the promise will reject after the optional timeout or resolve after completion.\n *\n * <p> NOTE: this operation MAY continue even after the promise rejects due to a timeout.\n * @param options options with timeout.\n */\n forceFlush(options?: ForceFlushOptions): Promise<void>;\n}\n\n/**\n * A registered reader of metrics that, when linked to a {@link MetricProducer}, offers global\n * control over metrics.\n */\nexport abstract class MetricReader implements IMetricReader {\n // Tracks the shutdown state.\n // TODO: use BindOncePromise here once a new version of @opentelemetry/core is available.\n private _shutdown = false;\n // Additional MetricProducers which will be combined with the SDK's output\n private _metricProducers: MetricProducer[];\n // MetricProducer used by this instance which produces metrics from the SDK\n private _sdkMetricProducer?: MetricProducer;\n private readonly _aggregationTemporalitySelector: AggregationTemporalitySelector;\n private readonly _aggregationSelector: AggregationSelector;\n private readonly _cardinalitySelector?: CardinalitySelector;\n\n constructor(options?: MetricReaderOptions) {\n this._aggregationSelector =\n options?.aggregationSelector ?? DEFAULT_AGGREGATION_SELECTOR;\n this._aggregationTemporalitySelector =\n options?.aggregationTemporalitySelector ??\n DEFAULT_AGGREGATION_TEMPORALITY_SELECTOR;\n this._metricProducers = options?.metricProducers ?? [];\n this._cardinalitySelector = options?.cardinalitySelector;\n }\n\n setMetricProducer(metricProducer: MetricProducer) {\n if (this._sdkMetricProducer) {\n throw new Error(\n 'MetricReader can not be bound to a MeterProvider again.'\n );\n }\n this._sdkMetricProducer = metricProducer;\n this.onInitialized();\n }\n\n selectAggregation(instrumentType: InstrumentType): AggregationOption {\n return this._aggregationSelector(instrumentType);\n }\n\n selectAggregationTemporality(\n instrumentType: InstrumentType\n ): AggregationTemporality {\n return this._aggregationTemporalitySelector(instrumentType);\n }\n\n selectCardinalityLimit(instrumentType: InstrumentType): number {\n return this._cardinalitySelector\n ? this._cardinalitySelector(instrumentType)\n : 2000; // default value if no selector is provided\n }\n\n /**\n * Handle once the SDK has initialized this {@link MetricReader}\n * Overriding this method is optional.\n */\n protected onInitialized(): void {\n // Default implementation is empty.\n }\n\n /**\n * Handle a shutdown signal by the SDK.\n *\n * <p> For push exporters, this should shut down any intervals and close any open connections.\n * @protected\n */\n protected abstract onShutdown(): Promise<void>;\n\n /**\n * Handle a force flush signal by the SDK.\n *\n * <p> In all scenarios metrics should be collected via {@link collect()}.\n * <p> For push exporters, this should collect and report metrics.\n * @protected\n */\n protected abstract onForceFlush(): Promise<void>;\n\n async collect(options?: CollectionOptions): Promise<CollectionResult> {\n if (this._sdkMetricProducer === undefined) {\n throw new Error('MetricReader is not bound to a MetricProducer');\n }\n\n // Subsequent invocations to collect are not allowed. SDKs SHOULD return some failure for these calls.\n if (this._shutdown) {\n throw new Error('MetricReader is shutdown');\n }\n\n const [sdkCollectionResults, ...additionalCollectionResults] =\n await Promise.all([\n this._sdkMetricProducer.collect({\n timeoutMillis: options?.timeoutMillis,\n }),\n ...this._metricProducers.map(producer =>\n producer.collect({\n timeoutMillis: options?.timeoutMillis,\n })\n ),\n ]);\n\n // Merge the results, keeping the SDK's Resource\n const errors = sdkCollectionResults.errors.concat(\n additionalCollectionResults.flatMap(result => result.errors)\n );\n const resource = sdkCollectionResults.resourceMetrics.resource;\n const scopeMetrics =\n sdkCollectionResults.resourceMetrics.scopeMetrics.concat(\n additionalCollectionResults.flatMap(\n result => result.resourceMetrics.scopeMetrics\n )\n );\n return {\n resourceMetrics: {\n resource,\n scopeMetrics,\n },\n errors,\n };\n }\n\n async shutdown(options?: ShutdownOptions): Promise<void> {\n // Do not call shutdown again if it has already been called.\n if (this._shutdown) {\n api.diag.error('Cannot call shutdown twice.');\n return;\n }\n\n // No timeout if timeoutMillis is undefined or null.\n if (options?.timeoutMillis == null) {\n await this.onShutdown();\n } else {\n await callWithTimeout(this.onShutdown(), options.timeoutMillis);\n }\n\n this._shutdown = true;\n }\n\n async forceFlush(options?: ForceFlushOptions): Promise<void> {\n if (this._shutdown) {\n api.diag.warn('Cannot forceFlush on already shutdown MetricReader.');\n return;\n }\n\n // No timeout if timeoutMillis is undefined or null.\n if (options?.timeoutMillis == null) {\n await this.onForceFlush();\n return;\n }\n\n await callWithTimeout(this.onForceFlush(), options.timeoutMillis);\n }\n}\n"]}
@@ -30,27 +30,34 @@ class PeriodicExportingMetricReader extends MetricReader_1.MetricReader {
30
30
  _exportInterval;
31
31
  _exportTimeout;
32
32
  constructor(options) {
33
+ const { exporter, exportIntervalMillis = 60000, metricProducers } = options;
34
+ let { exportTimeoutMillis = 30000 } = options;
33
35
  super({
34
- aggregationSelector: options.exporter.selectAggregation?.bind(options.exporter),
35
- aggregationTemporalitySelector: options.exporter.selectAggregationTemporality?.bind(options.exporter),
36
- metricProducers: options.metricProducers,
36
+ aggregationSelector: exporter.selectAggregation?.bind(exporter),
37
+ aggregationTemporalitySelector: exporter.selectAggregationTemporality?.bind(exporter),
38
+ metricProducers,
37
39
  });
38
- if (options.exportIntervalMillis !== undefined &&
39
- options.exportIntervalMillis <= 0) {
40
+ if (exportIntervalMillis <= 0) {
40
41
  throw Error('exportIntervalMillis must be greater than 0');
41
42
  }
42
- if (options.exportTimeoutMillis !== undefined &&
43
- options.exportTimeoutMillis <= 0) {
43
+ if (exportTimeoutMillis <= 0) {
44
44
  throw Error('exportTimeoutMillis must be greater than 0');
45
45
  }
46
- if (options.exportTimeoutMillis !== undefined &&
47
- options.exportIntervalMillis !== undefined &&
48
- options.exportIntervalMillis < options.exportTimeoutMillis) {
49
- throw Error('exportIntervalMillis must be greater than or equal to exportTimeoutMillis');
46
+ if (exportIntervalMillis < exportTimeoutMillis) {
47
+ if ('exportIntervalMillis' in options &&
48
+ 'exportTimeoutMillis' in options) {
49
+ // An invalid combination of values was explicitly provided.
50
+ throw Error('exportIntervalMillis must be greater than or equal to exportTimeoutMillis');
51
+ }
52
+ else {
53
+ // An invalid combination of value was implicitly provided.
54
+ api.diag.info(`Timeout of ${exportTimeoutMillis} exceeds the interval of ${exportIntervalMillis}. Clamping timeout to interval duration.`);
55
+ exportTimeoutMillis = exportIntervalMillis;
56
+ }
50
57
  }
51
- this._exportInterval = options.exportIntervalMillis ?? 60000;
52
- this._exportTimeout = options.exportTimeoutMillis ?? 30000;
53
- this._exporter = options.exporter;
58
+ this._exportInterval = exportIntervalMillis;
59
+ this._exportTimeout = exportTimeoutMillis;
60
+ this._exporter = exporter;
54
61
  }
55
62
  async _runOnce() {
56
63
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"PeriodicExportingMetricReader.js","sourceRoot":"","sources":["../../../src/export/PeriodicExportingMetricReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport {\n internal,\n ExportResultCode,\n globalErrorHandler,\n} from '@opentelemetry/core';\nimport { MetricReader } from './MetricReader';\nimport { PushMetricExporter } from './MetricExporter';\nimport { callWithTimeout, TimeoutError } from '../utils';\nimport { MetricProducer } from './MetricProducer';\n\nexport type PeriodicExportingMetricReaderOptions = {\n /**\n * The backing exporter for the metric reader.\n */\n exporter: PushMetricExporter;\n /**\n * An internal milliseconds for the metric reader to initiate metric\n * collection.\n */\n exportIntervalMillis?: number;\n /**\n * Milliseconds for the async observable callback to timeout.\n */\n exportTimeoutMillis?: number;\n /**\n * **Note, this option is experimental**. Additional MetricProducers to use as a source of\n * aggregated metric data in addition to the SDK's metric data. The resource returned by\n * these MetricProducers is ignored; the SDK's resource will be used instead.\n * @experimental\n */\n metricProducers?: MetricProducer[];\n};\n\n/**\n * {@link MetricReader} which collects metrics based on a user-configurable time interval, and passes the metrics to\n * the configured {@link PushMetricExporter}\n */\nexport class PeriodicExportingMetricReader extends MetricReader {\n private _interval?: ReturnType<typeof setInterval>;\n private _exporter: PushMetricExporter;\n private readonly _exportInterval: number;\n private readonly _exportTimeout: number;\n\n constructor(options: PeriodicExportingMetricReaderOptions) {\n super({\n aggregationSelector: options.exporter.selectAggregation?.bind(\n options.exporter\n ),\n aggregationTemporalitySelector:\n options.exporter.selectAggregationTemporality?.bind(options.exporter),\n metricProducers: options.metricProducers,\n });\n\n if (\n options.exportIntervalMillis !== undefined &&\n options.exportIntervalMillis <= 0\n ) {\n throw Error('exportIntervalMillis must be greater than 0');\n }\n\n if (\n options.exportTimeoutMillis !== undefined &&\n options.exportTimeoutMillis <= 0\n ) {\n throw Error('exportTimeoutMillis must be greater than 0');\n }\n\n if (\n options.exportTimeoutMillis !== undefined &&\n options.exportIntervalMillis !== undefined &&\n options.exportIntervalMillis < options.exportTimeoutMillis\n ) {\n throw Error(\n 'exportIntervalMillis must be greater than or equal to exportTimeoutMillis'\n );\n }\n\n this._exportInterval = options.exportIntervalMillis ?? 60000;\n this._exportTimeout = options.exportTimeoutMillis ?? 30000;\n this._exporter = options.exporter;\n }\n\n private async _runOnce(): Promise<void> {\n try {\n await callWithTimeout(this._doRun(), this._exportTimeout);\n } catch (err) {\n if (err instanceof TimeoutError) {\n api.diag.error(\n 'Export took longer than %s milliseconds and timed out.',\n this._exportTimeout\n );\n return;\n }\n\n globalErrorHandler(err);\n }\n }\n\n private async _doRun(): Promise<void> {\n const { resourceMetrics, errors } = await this.collect({\n timeoutMillis: this._exportTimeout,\n });\n\n if (errors.length > 0) {\n api.diag.error(\n 'PeriodicExportingMetricReader: metrics collection errors',\n ...errors\n );\n }\n\n if (resourceMetrics.resource.asyncAttributesPending) {\n try {\n await resourceMetrics.resource.waitForAsyncAttributes?.();\n } catch (e) {\n api.diag.debug('Error while resolving async portion of resource: ', e);\n globalErrorHandler(e);\n }\n }\n\n if (resourceMetrics.scopeMetrics.length === 0) {\n return;\n }\n\n const result = await internal._export(this._exporter, resourceMetrics);\n if (result.code !== ExportResultCode.SUCCESS) {\n throw new Error(\n `PeriodicExportingMetricReader: metrics export failed (error ${result.error})`\n );\n }\n }\n\n protected override onInitialized(): void {\n // start running the interval as soon as this reader is initialized and keep handle for shutdown.\n this._interval = setInterval(() => {\n // this._runOnce never rejects. Using void operator to suppress @typescript-eslint/no-floating-promises.\n void this._runOnce();\n }, this._exportInterval);\n\n // depending on runtime, this may be a 'number' or NodeJS.Timeout\n if (typeof this._interval !== 'number') {\n this._interval.unref();\n }\n }\n\n protected async onForceFlush(): Promise<void> {\n await this._runOnce();\n await this._exporter.forceFlush();\n }\n\n protected async onShutdown(): Promise<void> {\n if (this._interval) {\n clearInterval(this._interval);\n }\n await this.onForceFlush();\n await this._exporter.shutdown();\n }\n}\n"]}
1
+ {"version":3,"file":"PeriodicExportingMetricReader.js","sourceRoot":"","sources":["../../../src/export/PeriodicExportingMetricReader.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport {\n internal,\n ExportResultCode,\n globalErrorHandler,\n} from '@opentelemetry/core';\nimport { MetricReader } from './MetricReader';\nimport { PushMetricExporter } from './MetricExporter';\nimport { callWithTimeout, TimeoutError } from '../utils';\nimport { MetricProducer } from './MetricProducer';\n\nexport type PeriodicExportingMetricReaderOptions = {\n /**\n * The backing exporter for the metric reader.\n */\n exporter: PushMetricExporter;\n /**\n * An internal milliseconds for the metric reader to initiate metric\n * collection.\n */\n exportIntervalMillis?: number;\n /**\n * Milliseconds for the async observable callback to timeout.\n */\n exportTimeoutMillis?: number;\n /**\n * **Note, this option is experimental**. Additional MetricProducers to use as a source of\n * aggregated metric data in addition to the SDK's metric data. The resource returned by\n * these MetricProducers is ignored; the SDK's resource will be used instead.\n * @experimental\n */\n metricProducers?: MetricProducer[];\n};\n\n/**\n * {@link MetricReader} which collects metrics based on a user-configurable time interval, and passes the metrics to\n * the configured {@link PushMetricExporter}\n */\nexport class PeriodicExportingMetricReader extends MetricReader {\n private _interval?: ReturnType<typeof setInterval>;\n private _exporter: PushMetricExporter;\n private readonly _exportInterval: number;\n private readonly _exportTimeout: number;\n\n constructor(options: PeriodicExportingMetricReaderOptions) {\n const { exporter, exportIntervalMillis = 60000, metricProducers } = options;\n let { exportTimeoutMillis = 30000 } = options;\n\n super({\n aggregationSelector: exporter.selectAggregation?.bind(exporter),\n aggregationTemporalitySelector:\n exporter.selectAggregationTemporality?.bind(exporter),\n metricProducers,\n });\n\n if (exportIntervalMillis <= 0) {\n throw Error('exportIntervalMillis must be greater than 0');\n }\n\n if (exportTimeoutMillis <= 0) {\n throw Error('exportTimeoutMillis must be greater than 0');\n }\n\n if (exportIntervalMillis < exportTimeoutMillis) {\n if (\n 'exportIntervalMillis' in options &&\n 'exportTimeoutMillis' in options\n ) {\n // An invalid combination of values was explicitly provided.\n throw Error(\n 'exportIntervalMillis must be greater than or equal to exportTimeoutMillis'\n );\n } else {\n // An invalid combination of value was implicitly provided.\n api.diag.info(\n `Timeout of ${exportTimeoutMillis} exceeds the interval of ${exportIntervalMillis}. Clamping timeout to interval duration.`\n );\n exportTimeoutMillis = exportIntervalMillis;\n }\n }\n\n this._exportInterval = exportIntervalMillis;\n this._exportTimeout = exportTimeoutMillis;\n this._exporter = exporter;\n }\n\n private async _runOnce(): Promise<void> {\n try {\n await callWithTimeout(this._doRun(), this._exportTimeout);\n } catch (err) {\n if (err instanceof TimeoutError) {\n api.diag.error(\n 'Export took longer than %s milliseconds and timed out.',\n this._exportTimeout\n );\n return;\n }\n\n globalErrorHandler(err);\n }\n }\n\n private async _doRun(): Promise<void> {\n const { resourceMetrics, errors } = await this.collect({\n timeoutMillis: this._exportTimeout,\n });\n\n if (errors.length > 0) {\n api.diag.error(\n 'PeriodicExportingMetricReader: metrics collection errors',\n ...errors\n );\n }\n\n if (resourceMetrics.resource.asyncAttributesPending) {\n try {\n await resourceMetrics.resource.waitForAsyncAttributes?.();\n } catch (e) {\n api.diag.debug('Error while resolving async portion of resource: ', e);\n globalErrorHandler(e);\n }\n }\n\n if (resourceMetrics.scopeMetrics.length === 0) {\n return;\n }\n\n const result = await internal._export(this._exporter, resourceMetrics);\n if (result.code !== ExportResultCode.SUCCESS) {\n throw new Error(\n `PeriodicExportingMetricReader: metrics export failed (error ${result.error})`\n );\n }\n }\n\n protected override onInitialized(): void {\n // start running the interval as soon as this reader is initialized and keep handle for shutdown.\n this._interval = setInterval(() => {\n // this._runOnce never rejects. Using void operator to suppress @typescript-eslint/no-floating-promises.\n void this._runOnce();\n }, this._exportInterval);\n\n // depending on runtime, this may be a 'number' or NodeJS.Timeout\n if (typeof this._interval !== 'number') {\n this._interval.unref();\n }\n }\n\n protected async onForceFlush(): Promise<void> {\n await this._runOnce();\n await this._exporter.forceFlush();\n }\n\n protected async onShutdown(): Promise<void> {\n if (this._interval) {\n clearInterval(this._interval);\n }\n await this.onForceFlush();\n await this._exporter.shutdown();\n }\n}\n"]}
@@ -14,11 +14,11 @@ import { IAttributesProcessor } from '../view/AttributesProcessor';
14
14
  * Stores and aggregates {@link MetricData} for asynchronous instruments.
15
15
  */
16
16
  export declare class AsyncMetricStorage<T extends Maybe<Accumulation>> extends MetricStorage implements AsyncWritableMetricStorage {
17
- private _attributesProcessor;
18
17
  private _aggregationCardinalityLimit?;
19
18
  private _deltaMetricStorage;
20
19
  private _temporalMetricStorage;
21
- constructor(_instrumentDescriptor: InstrumentDescriptor, aggregator: Aggregator<T>, _attributesProcessor: IAttributesProcessor, collectorHandles: MetricCollectorHandle[], _aggregationCardinalityLimit?: number | undefined);
20
+ private _attributesProcessor;
21
+ constructor(_instrumentDescriptor: InstrumentDescriptor, aggregator: Aggregator<T>, attributesProcessor: IAttributesProcessor, collectorHandles: MetricCollectorHandle[], aggregationCardinalityLimit?: number);
22
22
  record(measurements: AttributeHashMap<number>, observationTime: HrTime): void;
23
23
  /**
24
24
  * Collects the metrics from this storage. The ObservableCallback is invoked
@@ -26,16 +26,16 @@ const HashMap_1 = require("./HashMap");
26
26
  * Stores and aggregates {@link MetricData} for asynchronous instruments.
27
27
  */
28
28
  class AsyncMetricStorage extends MetricStorage_1.MetricStorage {
29
- _attributesProcessor;
30
29
  _aggregationCardinalityLimit;
31
30
  _deltaMetricStorage;
32
31
  _temporalMetricStorage;
33
- constructor(_instrumentDescriptor, aggregator, _attributesProcessor, collectorHandles, _aggregationCardinalityLimit) {
32
+ _attributesProcessor;
33
+ constructor(_instrumentDescriptor, aggregator, attributesProcessor, collectorHandles, aggregationCardinalityLimit) {
34
34
  super(_instrumentDescriptor);
35
- this._attributesProcessor = _attributesProcessor;
36
- this._aggregationCardinalityLimit = _aggregationCardinalityLimit;
35
+ this._aggregationCardinalityLimit = aggregationCardinalityLimit;
37
36
  this._deltaMetricStorage = new DeltaMetricProcessor_1.DeltaMetricProcessor(aggregator, this._aggregationCardinalityLimit);
38
37
  this._temporalMetricStorage = new TemporalMetricProcessor_1.TemporalMetricProcessor(aggregator, collectorHandles);
38
+ this._attributesProcessor = attributesProcessor;
39
39
  }
40
40
  record(measurements, observationTime) {
41
41
  const processed = new HashMap_1.AttributeHashMap();
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncMetricStorage.js","sourceRoot":"","sources":["../../../src/state/AsyncMetricStorage.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH,mDAAgD;AAEhD,iEAA8D;AAC9D,uEAAoE;AAGpE,uCAA6C;AAI7C;;;;GAIG;AACH,MAAa,kBACX,SAAQ,6BAAa;IASX;IAEA;IARF,mBAAmB,CAA0B;IAC7C,sBAAsB,CAA6B;IAE3D,YACE,qBAA2C,EAC3C,UAAyB,EACjB,oBAA0C,EAClD,gBAAyC,EACjC,4BAAqC;QAE7C,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAJrB,yBAAoB,GAApB,oBAAoB,CAAsB;QAE1C,iCAA4B,GAA5B,4BAA4B,CAAS;QAG7C,IAAI,CAAC,mBAAmB,GAAG,IAAI,2CAAoB,CACjD,UAAU,EACV,IAAI,CAAC,4BAA4B,CAClC,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,iDAAuB,CACvD,UAAU,EACV,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAsC,EAAE,eAAuB;QACpE,MAAM,SAAS,GAAG,IAAI,0BAAgB,EAAU,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE;YACjE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CACL,SAAgC,EAChC,cAAsB;QAEtB,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;QAEzD,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAC7C,SAAS,EACT,IAAI,CAAC,qBAAqB,EAC1B,aAAa,EACb,cAAc,CACf,CAAC;IACJ,CAAC;CACF;AArDD,gDAqDC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HrTime } from '@opentelemetry/api';\nimport { Accumulation, Aggregator } from '../aggregator/types';\nimport { InstrumentDescriptor } from '../InstrumentDescriptor';\nimport { MetricStorage } from './MetricStorage';\nimport { MetricData } from '../export/MetricData';\nimport { DeltaMetricProcessor } from './DeltaMetricProcessor';\nimport { TemporalMetricProcessor } from './TemporalMetricProcessor';\nimport { Maybe } from '../utils';\nimport { MetricCollectorHandle } from './MetricCollector';\nimport { AttributeHashMap } from './HashMap';\nimport { AsyncWritableMetricStorage } from './WritableMetricStorage';\nimport { IAttributesProcessor } from '../view/AttributesProcessor';\n\n/**\n * Internal interface.\n *\n * Stores and aggregates {@link MetricData} for asynchronous instruments.\n */\nexport class AsyncMetricStorage<T extends Maybe<Accumulation>>\n extends MetricStorage\n implements AsyncWritableMetricStorage\n{\n private _deltaMetricStorage: DeltaMetricProcessor<T>;\n private _temporalMetricStorage: TemporalMetricProcessor<T>;\n\n constructor(\n _instrumentDescriptor: InstrumentDescriptor,\n aggregator: Aggregator<T>,\n private _attributesProcessor: IAttributesProcessor,\n collectorHandles: MetricCollectorHandle[],\n private _aggregationCardinalityLimit?: number\n ) {\n super(_instrumentDescriptor);\n this._deltaMetricStorage = new DeltaMetricProcessor(\n aggregator,\n this._aggregationCardinalityLimit\n );\n this._temporalMetricStorage = new TemporalMetricProcessor(\n aggregator,\n collectorHandles\n );\n }\n\n record(measurements: AttributeHashMap<number>, observationTime: HrTime) {\n const processed = new AttributeHashMap<number>();\n Array.from(measurements.entries()).forEach(([attributes, value]) => {\n processed.set(this._attributesProcessor.process(attributes), value);\n });\n this._deltaMetricStorage.batchCumulate(processed, observationTime);\n }\n\n /**\n * Collects the metrics from this storage. The ObservableCallback is invoked\n * during the collection.\n *\n * Note: This is a stateful operation and may reset any interval-related\n * state for the MetricCollector.\n */\n collect(\n collector: MetricCollectorHandle,\n collectionTime: HrTime\n ): Maybe<MetricData> {\n const accumulations = this._deltaMetricStorage.collect();\n\n return this._temporalMetricStorage.buildMetrics(\n collector,\n this._instrumentDescriptor,\n accumulations,\n collectionTime\n );\n }\n}\n"]}
1
+ {"version":3,"file":"AsyncMetricStorage.js","sourceRoot":"","sources":["../../../src/state/AsyncMetricStorage.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAKH,mDAAgD;AAEhD,iEAA8D;AAC9D,uEAAoE;AAGpE,uCAA6C;AAI7C;;;;GAIG;AACH,MAAa,kBACX,SAAQ,6BAAa;IAGb,4BAA4B,CAAU;IACtC,mBAAmB,CAA0B;IAC7C,sBAAsB,CAA6B;IACnD,oBAAoB,CAAuB;IAEnD,YACE,qBAA2C,EAC3C,UAAyB,EACzB,mBAAyC,EACzC,gBAAyC,EACzC,2BAAoC;QAEpC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7B,IAAI,CAAC,4BAA4B,GAAG,2BAA2B,CAAC;QAChE,IAAI,CAAC,mBAAmB,GAAG,IAAI,2CAAoB,CACjD,UAAU,EACV,IAAI,CAAC,4BAA4B,CAClC,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,iDAAuB,CACvD,UAAU,EACV,gBAAgB,CACjB,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,YAAsC,EAAE,eAAuB;QACpE,MAAM,SAAS,GAAG,IAAI,0BAAgB,EAAU,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE;YACjE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CACL,SAAgC,EAChC,cAAsB;QAEtB,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;QAEzD,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAC7C,SAAS,EACT,IAAI,CAAC,qBAAqB,EAC1B,aAAa,EACb,cAAc,CACf,CAAC;IACJ,CAAC;CACF;AAzDD,gDAyDC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HrTime } from '@opentelemetry/api';\nimport { Accumulation, Aggregator } from '../aggregator/types';\nimport { InstrumentDescriptor } from '../InstrumentDescriptor';\nimport { MetricStorage } from './MetricStorage';\nimport { MetricData } from '../export/MetricData';\nimport { DeltaMetricProcessor } from './DeltaMetricProcessor';\nimport { TemporalMetricProcessor } from './TemporalMetricProcessor';\nimport { Maybe } from '../utils';\nimport { MetricCollectorHandle } from './MetricCollector';\nimport { AttributeHashMap } from './HashMap';\nimport { AsyncWritableMetricStorage } from './WritableMetricStorage';\nimport { IAttributesProcessor } from '../view/AttributesProcessor';\n\n/**\n * Internal interface.\n *\n * Stores and aggregates {@link MetricData} for asynchronous instruments.\n */\nexport class AsyncMetricStorage<T extends Maybe<Accumulation>>\n extends MetricStorage\n implements AsyncWritableMetricStorage\n{\n private _aggregationCardinalityLimit?: number;\n private _deltaMetricStorage: DeltaMetricProcessor<T>;\n private _temporalMetricStorage: TemporalMetricProcessor<T>;\n private _attributesProcessor: IAttributesProcessor;\n\n constructor(\n _instrumentDescriptor: InstrumentDescriptor,\n aggregator: Aggregator<T>,\n attributesProcessor: IAttributesProcessor,\n collectorHandles: MetricCollectorHandle[],\n aggregationCardinalityLimit?: number\n ) {\n super(_instrumentDescriptor);\n this._aggregationCardinalityLimit = aggregationCardinalityLimit;\n this._deltaMetricStorage = new DeltaMetricProcessor(\n aggregator,\n this._aggregationCardinalityLimit\n );\n this._temporalMetricStorage = new TemporalMetricProcessor(\n aggregator,\n collectorHandles\n );\n this._attributesProcessor = attributesProcessor;\n }\n\n record(measurements: AttributeHashMap<number>, observationTime: HrTime) {\n const processed = new AttributeHashMap<number>();\n Array.from(measurements.entries()).forEach(([attributes, value]) => {\n processed.set(this._attributesProcessor.process(attributes), value);\n });\n this._deltaMetricStorage.batchCumulate(processed, observationTime);\n }\n\n /**\n * Collects the metrics from this storage. The ObservableCallback is invoked\n * during the collection.\n *\n * Note: This is a stateful operation and may reset any interval-related\n * state for the MetricCollector.\n */\n collect(\n collector: MetricCollectorHandle,\n collectionTime: HrTime\n ): Maybe<MetricData> {\n const accumulations = this._deltaMetricStorage.collect();\n\n return this._temporalMetricStorage.buildMetrics(\n collector,\n this._instrumentDescriptor,\n accumulations,\n collectionTime\n );\n }\n}\n"]}
@@ -10,13 +10,13 @@ import { AttributeHashMap } from './HashMap';
10
10
  * recording to delta data points.
11
11
  */
12
12
  export declare class DeltaMetricProcessor<T extends Maybe<Accumulation>> {
13
- private _aggregator;
14
13
  private _activeCollectionStorage;
15
14
  private _cumulativeMemoStorage;
16
15
  private _cardinalityLimit;
17
16
  private _overflowAttributes;
18
17
  private _overflowHashCode;
19
- constructor(_aggregator: Aggregator<T>, aggregationCardinalityLimit?: number);
18
+ private _aggregator;
19
+ constructor(aggregator: Aggregator<T>, aggregationCardinalityLimit?: number);
20
20
  record(value: number, attributes: Attributes, _context: Context, collectionTime: HrTime): void;
21
21
  batchCumulate(measurements: AttributeHashMap<number>, collectionTime: HrTime): void;
22
22
  /**
@@ -26,7 +26,6 @@ const HashMap_1 = require("./HashMap");
26
26
  * recording to delta data points.
27
27
  */
28
28
  class DeltaMetricProcessor {
29
- _aggregator;
30
29
  _activeCollectionStorage = new HashMap_1.AttributeHashMap();
31
30
  // TODO: find a reasonable mean to clean the memo;
32
31
  // https://github.com/open-telemetry/opentelemetry-specification/pull/2208
@@ -34,8 +33,9 @@ class DeltaMetricProcessor {
34
33
  _cardinalityLimit;
35
34
  _overflowAttributes = { 'otel.metric.overflow': true };
36
35
  _overflowHashCode;
37
- constructor(_aggregator, aggregationCardinalityLimit) {
38
- this._aggregator = _aggregator;
36
+ _aggregator;
37
+ constructor(aggregator, aggregationCardinalityLimit) {
38
+ this._aggregator = aggregator;
39
39
  this._cardinalityLimit = (aggregationCardinalityLimit ?? 2000) - 1;
40
40
  this._overflowHashCode = (0, utils_1.hashAttributes)(this._overflowAttributes);
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DeltaMetricProcessor.js","sourceRoot":"","sources":["../../../src/state/DeltaMetricProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context, HrTime, Attributes } from '@opentelemetry/api';\nimport { Maybe, hashAttributes } from '../utils';\nimport { Accumulation, Aggregator } from '../aggregator/types';\nimport { AttributeHashMap } from './HashMap';\n\n/**\n * Internal interface.\n *\n * Allows synchronous collection of metrics. This processor should allow\n * allocation of new aggregation cells for metrics and convert cumulative\n * recording to delta data points.\n */\nexport class DeltaMetricProcessor<T extends Maybe<Accumulation>> {\n private _activeCollectionStorage = new AttributeHashMap<T>();\n // TODO: find a reasonable mean to clean the memo;\n // https://github.com/open-telemetry/opentelemetry-specification/pull/2208\n private _cumulativeMemoStorage = new AttributeHashMap<T>();\n private _cardinalityLimit: number;\n private _overflowAttributes = { 'otel.metric.overflow': true };\n private _overflowHashCode: string;\n\n constructor(\n private _aggregator: Aggregator<T>,\n aggregationCardinalityLimit?: number\n ) {\n this._cardinalityLimit = (aggregationCardinalityLimit ?? 2000) - 1;\n this._overflowHashCode = hashAttributes(this._overflowAttributes);\n }\n\n record(\n value: number,\n attributes: Attributes,\n _context: Context,\n collectionTime: HrTime\n ) {\n let accumulation = this._activeCollectionStorage.get(attributes);\n\n if (!accumulation) {\n if (this._activeCollectionStorage.size >= this._cardinalityLimit) {\n const overflowAccumulation = this._activeCollectionStorage.getOrDefault(\n this._overflowAttributes,\n () => this._aggregator.createAccumulation(collectionTime)\n );\n overflowAccumulation?.record(value);\n return;\n }\n\n accumulation = this._aggregator.createAccumulation(collectionTime);\n this._activeCollectionStorage.set(attributes, accumulation);\n }\n\n accumulation?.record(value);\n }\n\n batchCumulate(\n measurements: AttributeHashMap<number>,\n collectionTime: HrTime\n ) {\n Array.from(measurements.entries()).forEach(\n ([attributes, value, hashCode]) => {\n const accumulation =\n this._aggregator.createAccumulation(collectionTime);\n accumulation?.record(value);\n let delta = accumulation;\n // Diff with recorded cumulative memo.\n if (this._cumulativeMemoStorage.has(attributes, hashCode)) {\n // has() returned true, previous is present.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const previous = this._cumulativeMemoStorage.get(\n attributes,\n hashCode\n )!;\n delta = this._aggregator.diff(previous, accumulation);\n } else {\n // If the cardinality limit is reached, we need to change the attributes\n if (this._cumulativeMemoStorage.size >= this._cardinalityLimit) {\n attributes = this._overflowAttributes;\n hashCode = this._overflowHashCode;\n if (this._cumulativeMemoStorage.has(attributes, hashCode)) {\n // has() returned true, previous is present.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const previous = this._cumulativeMemoStorage.get(\n attributes,\n hashCode\n )!;\n delta = this._aggregator.diff(previous, accumulation);\n }\n }\n }\n // Merge with uncollected active delta.\n if (this._activeCollectionStorage.has(attributes, hashCode)) {\n // has() returned true, active is present.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const active = this._activeCollectionStorage.get(\n attributes,\n hashCode\n )!;\n delta = this._aggregator.merge(active, delta);\n }\n\n // Save the current record and the delta record.\n this._cumulativeMemoStorage.set(attributes, accumulation, hashCode);\n this._activeCollectionStorage.set(attributes, delta, hashCode);\n }\n );\n }\n\n /**\n * Returns a collection of delta metrics. Start time is the when first\n * time event collected.\n */\n collect() {\n const unreportedDelta = this._activeCollectionStorage;\n this._activeCollectionStorage = new AttributeHashMap();\n\n return unreportedDelta;\n }\n}\n"]}
1
+ {"version":3,"file":"DeltaMetricProcessor.js","sourceRoot":"","sources":["../../../src/state/DeltaMetricProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context, HrTime, Attributes } from '@opentelemetry/api';\nimport { Maybe, hashAttributes } from '../utils';\nimport { Accumulation, Aggregator } from '../aggregator/types';\nimport { AttributeHashMap } from './HashMap';\n\n/**\n * Internal interface.\n *\n * Allows synchronous collection of metrics. This processor should allow\n * allocation of new aggregation cells for metrics and convert cumulative\n * recording to delta data points.\n */\nexport class DeltaMetricProcessor<T extends Maybe<Accumulation>> {\n private _activeCollectionStorage = new AttributeHashMap<T>();\n // TODO: find a reasonable mean to clean the memo;\n // https://github.com/open-telemetry/opentelemetry-specification/pull/2208\n private _cumulativeMemoStorage = new AttributeHashMap<T>();\n private _cardinalityLimit: number;\n private _overflowAttributes = { 'otel.metric.overflow': true };\n private _overflowHashCode: string;\n private _aggregator: Aggregator<T>;\n\n constructor(aggregator: Aggregator<T>, aggregationCardinalityLimit?: number) {\n this._aggregator = aggregator;\n this._cardinalityLimit = (aggregationCardinalityLimit ?? 2000) - 1;\n this._overflowHashCode = hashAttributes(this._overflowAttributes);\n }\n\n record(\n value: number,\n attributes: Attributes,\n _context: Context,\n collectionTime: HrTime\n ) {\n let accumulation = this._activeCollectionStorage.get(attributes);\n\n if (!accumulation) {\n if (this._activeCollectionStorage.size >= this._cardinalityLimit) {\n const overflowAccumulation = this._activeCollectionStorage.getOrDefault(\n this._overflowAttributes,\n () => this._aggregator.createAccumulation(collectionTime)\n );\n overflowAccumulation?.record(value);\n return;\n }\n\n accumulation = this._aggregator.createAccumulation(collectionTime);\n this._activeCollectionStorage.set(attributes, accumulation);\n }\n\n accumulation?.record(value);\n }\n\n batchCumulate(\n measurements: AttributeHashMap<number>,\n collectionTime: HrTime\n ) {\n Array.from(measurements.entries()).forEach(\n ([attributes, value, hashCode]) => {\n const accumulation =\n this._aggregator.createAccumulation(collectionTime);\n accumulation?.record(value);\n let delta = accumulation;\n // Diff with recorded cumulative memo.\n if (this._cumulativeMemoStorage.has(attributes, hashCode)) {\n // has() returned true, previous is present.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const previous = this._cumulativeMemoStorage.get(\n attributes,\n hashCode\n )!;\n delta = this._aggregator.diff(previous, accumulation);\n } else {\n // If the cardinality limit is reached, we need to change the attributes\n if (this._cumulativeMemoStorage.size >= this._cardinalityLimit) {\n attributes = this._overflowAttributes;\n hashCode = this._overflowHashCode;\n if (this._cumulativeMemoStorage.has(attributes, hashCode)) {\n // has() returned true, previous is present.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const previous = this._cumulativeMemoStorage.get(\n attributes,\n hashCode\n )!;\n delta = this._aggregator.diff(previous, accumulation);\n }\n }\n }\n // Merge with uncollected active delta.\n if (this._activeCollectionStorage.has(attributes, hashCode)) {\n // has() returned true, active is present.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const active = this._activeCollectionStorage.get(\n attributes,\n hashCode\n )!;\n delta = this._aggregator.merge(active, delta);\n }\n\n // Save the current record and the delta record.\n this._cumulativeMemoStorage.set(attributes, accumulation, hashCode);\n this._activeCollectionStorage.set(attributes, delta, hashCode);\n }\n );\n }\n\n /**\n * Returns a collection of delta metrics. Start time is the when first\n * time event collected.\n */\n collect() {\n const unreportedDelta = this._activeCollectionStorage;\n this._activeCollectionStorage = new AttributeHashMap();\n\n return unreportedDelta;\n }\n}\n"]}
@@ -3,10 +3,10 @@ export interface Hash<ValueType, HashCodeType> {
3
3
  (value: ValueType): HashCodeType;
4
4
  }
5
5
  export declare class HashMap<KeyType, ValueType, HashCodeType> {
6
- private _hash;
7
6
  private _valueMap;
8
7
  private _keyMap;
9
- constructor(_hash: Hash<KeyType, HashCodeType>);
8
+ private _hash;
9
+ constructor(hash: Hash<KeyType, HashCodeType>);
10
10
  get(key: KeyType, hashCode?: HashCodeType): ValueType | undefined;
11
11
  getOrDefault(key: KeyType, defaultFactory: () => ValueType): ValueType | undefined;
12
12
  set(key: KeyType, value: ValueType, hashCode?: HashCodeType): void;
@@ -18,11 +18,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.AttributeHashMap = exports.HashMap = void 0;
19
19
  const utils_1 = require("../utils");
20
20
  class HashMap {
21
- _hash;
22
21
  _valueMap = new Map();
23
22
  _keyMap = new Map();
24
- constructor(_hash) {
25
- this._hash = _hash;
23
+ _hash;
24
+ constructor(hash) {
25
+ this._hash = hash;
26
26
  }
27
27
  get(key, hashCode) {
28
28
  hashCode ??= this._hash(key);
@@ -1 +1 @@
1
- {"version":3,"file":"HashMap.js","sourceRoot":"","sources":["../../../src/state/HashMap.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes } from '@opentelemetry/api';\nimport { hashAttributes } from '../utils';\n\nexport interface Hash<ValueType, HashCodeType> {\n (value: ValueType): HashCodeType;\n}\n\nexport class HashMap<KeyType, ValueType, HashCodeType> {\n private _valueMap = new Map<HashCodeType, ValueType>();\n private _keyMap = new Map<HashCodeType, KeyType>();\n\n constructor(private _hash: Hash<KeyType, HashCodeType>) {}\n\n get(key: KeyType, hashCode?: HashCodeType) {\n hashCode ??= this._hash(key);\n return this._valueMap.get(hashCode);\n }\n\n getOrDefault(key: KeyType, defaultFactory: () => ValueType) {\n const hash = this._hash(key);\n if (this._valueMap.has(hash)) {\n return this._valueMap.get(hash);\n }\n const val = defaultFactory();\n if (!this._keyMap.has(hash)) {\n this._keyMap.set(hash, key);\n }\n this._valueMap.set(hash, val);\n return val;\n }\n\n set(key: KeyType, value: ValueType, hashCode?: HashCodeType) {\n hashCode ??= this._hash(key);\n if (!this._keyMap.has(hashCode)) {\n this._keyMap.set(hashCode, key);\n }\n this._valueMap.set(hashCode, value);\n }\n\n has(key: KeyType, hashCode?: HashCodeType) {\n hashCode ??= this._hash(key);\n return this._valueMap.has(hashCode);\n }\n\n *keys(): IterableIterator<[KeyType, HashCodeType]> {\n const keyIterator = this._keyMap.entries();\n let next = keyIterator.next();\n while (next.done !== true) {\n yield [next.value[1], next.value[0]];\n next = keyIterator.next();\n }\n }\n\n *entries(): IterableIterator<[KeyType, ValueType, HashCodeType]> {\n const valueIterator = this._valueMap.entries();\n let next = valueIterator.next();\n while (next.done !== true) {\n // next.value[0] here can not be undefined\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n yield [this._keyMap.get(next.value[0])!, next.value[1], next.value[0]];\n next = valueIterator.next();\n }\n }\n\n get size() {\n return this._valueMap.size;\n }\n}\n\nexport class AttributeHashMap<ValueType> extends HashMap<\n Attributes,\n ValueType,\n string\n> {\n constructor() {\n super(hashAttributes);\n }\n}\n"]}
1
+ {"version":3,"file":"HashMap.js","sourceRoot":"","sources":["../../../src/state/HashMap.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes } from '@opentelemetry/api';\nimport { hashAttributes } from '../utils';\n\nexport interface Hash<ValueType, HashCodeType> {\n (value: ValueType): HashCodeType;\n}\n\nexport class HashMap<KeyType, ValueType, HashCodeType> {\n private _valueMap = new Map<HashCodeType, ValueType>();\n private _keyMap = new Map<HashCodeType, KeyType>();\n private _hash;\n\n constructor(hash: Hash<KeyType, HashCodeType>) {\n this._hash = hash;\n }\n\n get(key: KeyType, hashCode?: HashCodeType) {\n hashCode ??= this._hash(key);\n return this._valueMap.get(hashCode);\n }\n\n getOrDefault(key: KeyType, defaultFactory: () => ValueType) {\n const hash = this._hash(key);\n if (this._valueMap.has(hash)) {\n return this._valueMap.get(hash);\n }\n const val = defaultFactory();\n if (!this._keyMap.has(hash)) {\n this._keyMap.set(hash, key);\n }\n this._valueMap.set(hash, val);\n return val;\n }\n\n set(key: KeyType, value: ValueType, hashCode?: HashCodeType) {\n hashCode ??= this._hash(key);\n if (!this._keyMap.has(hashCode)) {\n this._keyMap.set(hashCode, key);\n }\n this._valueMap.set(hashCode, value);\n }\n\n has(key: KeyType, hashCode?: HashCodeType) {\n hashCode ??= this._hash(key);\n return this._valueMap.has(hashCode);\n }\n\n *keys(): IterableIterator<[KeyType, HashCodeType]> {\n const keyIterator = this._keyMap.entries();\n let next = keyIterator.next();\n while (next.done !== true) {\n yield [next.value[1], next.value[0]];\n next = keyIterator.next();\n }\n }\n\n *entries(): IterableIterator<[KeyType, ValueType, HashCodeType]> {\n const valueIterator = this._valueMap.entries();\n let next = valueIterator.next();\n while (next.done !== true) {\n // next.value[0] here can not be undefined\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n yield [this._keyMap.get(next.value[0])!, next.value[1], next.value[0]];\n next = valueIterator.next();\n }\n }\n\n get size() {\n return this._valueMap.size;\n }\n}\n\nexport class AttributeHashMap<ValueType> extends HashMap<\n Attributes,\n ValueType,\n string\n> {\n constructor() {\n super(hashAttributes);\n }\n}\n"]}
@@ -9,10 +9,10 @@ import { InstrumentType } from '../export/MetricData';
9
9
  * An internal record for shared meter provider states.
10
10
  */
11
11
  export declare class MeterProviderSharedState {
12
- resource: Resource;
13
12
  viewRegistry: ViewRegistry;
14
13
  metricCollectors: MetricCollector[];
15
14
  meterSharedStates: Map<string, MeterSharedState>;
15
+ resource: Resource;
16
16
  constructor(resource: Resource);
17
17
  getMeterSharedState(instrumentationScope: InstrumentationScope): MeterSharedState;
18
18
  selectAggregations(instrumentType: InstrumentType): [MetricCollectorHandle, Aggregation][];
@@ -24,10 +24,10 @@ const AggregationOption_1 = require("../view/AggregationOption");
24
24
  * An internal record for shared meter provider states.
25
25
  */
26
26
  class MeterProviderSharedState {
27
- resource;
28
27
  viewRegistry = new ViewRegistry_1.ViewRegistry();
29
28
  metricCollectors = [];
30
29
  meterSharedStates = new Map();
30
+ resource;
31
31
  constructor(resource) {
32
32
  this.resource = resource;
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MeterProviderSharedState.js","sourceRoot":"","sources":["../../../src/state/MeterProviderSharedState.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,oCAAkD;AAClD,uDAAoD;AACpD,yDAAsD;AAEtD,iEAA0D;AAI1D;;GAEG;AACH,MAAa,wBAAwB;IAOhB;IANnB,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IAElC,gBAAgB,GAAsB,EAAE,CAAC;IAEzC,iBAAiB,GAAkC,IAAI,GAAG,EAAE,CAAC;IAE7D,YAAmB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAEzC,mBAAmB,CAAC,oBAA0C;QAC5D,MAAM,EAAE,GAAG,IAAA,8BAAsB,EAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,gBAAgB,IAAI,IAAI,EAAE;YAC5B,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;SAClD;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,kBAAkB,CAAC,cAA8B;QAC/C,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,SAAS;gBACT,IAAA,iCAAa,EAAC,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;aAC3D,CAAC,CAAC;SACJ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA7BD,4DA6BC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { InstrumentationScope } from '@opentelemetry/core';\nimport { Resource } from '@opentelemetry/resources';\nimport { instrumentationScopeId } from '../utils';\nimport { ViewRegistry } from '../view/ViewRegistry';\nimport { MeterSharedState } from './MeterSharedState';\nimport { MetricCollector, MetricCollectorHandle } from './MetricCollector';\nimport { toAggregation } from '../view/AggregationOption';\nimport { Aggregation } from '../view/Aggregation';\nimport { InstrumentType } from '../export/MetricData';\n\n/**\n * An internal record for shared meter provider states.\n */\nexport class MeterProviderSharedState {\n viewRegistry = new ViewRegistry();\n\n metricCollectors: MetricCollector[] = [];\n\n meterSharedStates: Map<string, MeterSharedState> = new Map();\n\n constructor(public resource: Resource) {}\n\n getMeterSharedState(instrumentationScope: InstrumentationScope) {\n const id = instrumentationScopeId(instrumentationScope);\n let meterSharedState = this.meterSharedStates.get(id);\n if (meterSharedState == null) {\n meterSharedState = new MeterSharedState(this, instrumentationScope);\n this.meterSharedStates.set(id, meterSharedState);\n }\n return meterSharedState;\n }\n\n selectAggregations(instrumentType: InstrumentType) {\n const result: [MetricCollectorHandle, Aggregation][] = [];\n for (const collector of this.metricCollectors) {\n result.push([\n collector,\n toAggregation(collector.selectAggregation(instrumentType)),\n ]);\n }\n return result;\n }\n}\n"]}
1
+ {"version":3,"file":"MeterProviderSharedState.js","sourceRoot":"","sources":["../../../src/state/MeterProviderSharedState.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,oCAAkD;AAClD,uDAAoD;AACpD,yDAAsD;AAEtD,iEAA0D;AAI1D;;GAEG;AACH,MAAa,wBAAwB;IACnC,YAAY,GAAG,IAAI,2BAAY,EAAE,CAAC;IAElC,gBAAgB,GAAsB,EAAE,CAAC;IAEzC,iBAAiB,GAAkC,IAAI,GAAG,EAAE,CAAC;IACtD,QAAQ,CAAW;IAE1B,YAAY,QAAkB;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,mBAAmB,CAAC,oBAA0C;QAC5D,MAAM,EAAE,GAAG,IAAA,8BAAsB,EAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,gBAAgB,IAAI,IAAI,EAAE;YAC5B,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;SAClD;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,kBAAkB,CAAC,cAA8B;QAC/C,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,SAAS;gBACT,IAAA,iCAAa,EAAC,SAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;aAC3D,CAAC,CAAC;SACJ;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAhCD,4DAgCC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { InstrumentationScope } from '@opentelemetry/core';\nimport { Resource } from '@opentelemetry/resources';\nimport { instrumentationScopeId } from '../utils';\nimport { ViewRegistry } from '../view/ViewRegistry';\nimport { MeterSharedState } from './MeterSharedState';\nimport { MetricCollector, MetricCollectorHandle } from './MetricCollector';\nimport { toAggregation } from '../view/AggregationOption';\nimport { Aggregation } from '../view/Aggregation';\nimport { InstrumentType } from '../export/MetricData';\n\n/**\n * An internal record for shared meter provider states.\n */\nexport class MeterProviderSharedState {\n viewRegistry = new ViewRegistry();\n\n metricCollectors: MetricCollector[] = [];\n\n meterSharedStates: Map<string, MeterSharedState> = new Map();\n public resource: Resource;\n\n constructor(resource: Resource) {\n this.resource = resource;\n }\n\n getMeterSharedState(instrumentationScope: InstrumentationScope) {\n const id = instrumentationScopeId(instrumentationScope);\n let meterSharedState = this.meterSharedStates.get(id);\n if (meterSharedState == null) {\n meterSharedState = new MeterSharedState(this, instrumentationScope);\n this.meterSharedStates.set(id, meterSharedState);\n }\n return meterSharedState;\n }\n\n selectAggregations(instrumentType: InstrumentType) {\n const result: [MetricCollectorHandle, Aggregation][] = [];\n for (const collector of this.metricCollectors) {\n result.push([\n collector,\n toAggregation(collector.selectAggregation(instrumentType)),\n ]);\n }\n return result;\n }\n}\n"]}
@@ -17,12 +17,12 @@ import { Accumulation } from '../aggregator/types';
17
17
  * An internal record for shared meter provider states.
18
18
  */
19
19
  export declare class MeterSharedState {
20
- private _meterProviderSharedState;
21
- private _instrumentationScope;
22
20
  metricStorageRegistry: MetricStorageRegistry;
23
21
  observableRegistry: ObservableRegistry;
24
22
  meter: Meter;
25
- constructor(_meterProviderSharedState: MeterProviderSharedState, _instrumentationScope: InstrumentationScope);
23
+ private _meterProviderSharedState;
24
+ private _instrumentationScope;
25
+ constructor(meterProviderSharedState: MeterProviderSharedState, instrumentationScope: InstrumentationScope);
26
26
  registerMetricStorage(descriptor: InstrumentDescriptor): MultiMetricStorage | SyncMetricStorage<Maybe<Accumulation>>;
27
27
  registerAsyncMetricStorage(descriptor: InstrumentDescriptor): AsyncMetricStorage<Maybe<Accumulation>>[];
28
28
  /**
@@ -18,7 +18,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.MeterSharedState = void 0;
19
19
  const InstrumentDescriptor_1 = require("../InstrumentDescriptor");
20
20
  const Meter_1 = require("../Meter");
21
- const utils_1 = require("../utils");
22
21
  const AsyncMetricStorage_1 = require("./AsyncMetricStorage");
23
22
  const MetricStorageRegistry_1 = require("./MetricStorageRegistry");
24
23
  const MultiWritableMetricStorage_1 = require("./MultiWritableMetricStorage");
@@ -29,15 +28,15 @@ const AttributesProcessor_1 = require("../view/AttributesProcessor");
29
28
  * An internal record for shared meter provider states.
30
29
  */
31
30
  class MeterSharedState {
32
- _meterProviderSharedState;
33
- _instrumentationScope;
34
31
  metricStorageRegistry = new MetricStorageRegistry_1.MetricStorageRegistry();
35
32
  observableRegistry = new ObservableRegistry_1.ObservableRegistry();
36
33
  meter;
37
- constructor(_meterProviderSharedState, _instrumentationScope) {
38
- this._meterProviderSharedState = _meterProviderSharedState;
39
- this._instrumentationScope = _instrumentationScope;
34
+ _meterProviderSharedState;
35
+ _instrumentationScope;
36
+ constructor(meterProviderSharedState, instrumentationScope) {
40
37
  this.meter = new Meter_1.Meter(this);
38
+ this._meterProviderSharedState = meterProviderSharedState;
39
+ this._instrumentationScope = instrumentationScope;
41
40
  }
42
41
  registerMetricStorage(descriptor) {
43
42
  const storages = this._registerMetricStorage(descriptor, SyncMetricStorage_1.SyncMetricStorage);
@@ -67,11 +66,13 @@ class MeterSharedState {
67
66
  if (storages.length === 0) {
68
67
  return null;
69
68
  }
70
- const metricDataList = storages
71
- .map(metricStorage => {
72
- return metricStorage.collect(collector, collectionTime);
73
- })
74
- .filter(utils_1.isNotNullish);
69
+ const metricDataList = [];
70
+ storages.forEach(metricStorage => {
71
+ const metricData = metricStorage.collect(collector, collectionTime);
72
+ if (metricData != null) {
73
+ metricDataList.push(metricData);
74
+ }
75
+ });
75
76
  // skip this scope if no data was collected (storage created, but no data observed)
76
77
  if (metricDataList.length === 0) {
77
78
  return { errors };
@@ -1 +1 @@
1
- {"version":3,"file":"MeterSharedState.js","sourceRoot":"","sources":["../../../src/state/MeterSharedState.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HrTime } from '@opentelemetry/api';\nimport { InstrumentationScope } from '@opentelemetry/core';\nimport { MetricCollectOptions } from '../export/MetricProducer';\nimport { ScopeMetrics } from '../export/MetricData';\nimport {\n createInstrumentDescriptorWithView,\n InstrumentDescriptor,\n} from '../InstrumentDescriptor';\nimport { Meter } from '../Meter';\nimport { isNotNullish, Maybe } from '../utils';\nimport { AsyncMetricStorage } from './AsyncMetricStorage';\nimport { MeterProviderSharedState } from './MeterProviderSharedState';\nimport { MetricCollectorHandle } from './MetricCollector';\nimport { MetricStorageRegistry } from './MetricStorageRegistry';\nimport { MultiMetricStorage } from './MultiWritableMetricStorage';\nimport { ObservableRegistry } from './ObservableRegistry';\nimport { SyncMetricStorage } from './SyncMetricStorage';\nimport { Accumulation, Aggregator } from '../aggregator/types';\nimport {\n createNoopAttributesProcessor,\n IAttributesProcessor,\n} from '../view/AttributesProcessor';\nimport { MetricStorage } from './MetricStorage';\n\n/**\n * An internal record for shared meter provider states.\n */\nexport class MeterSharedState {\n metricStorageRegistry = new MetricStorageRegistry();\n observableRegistry = new ObservableRegistry();\n meter: Meter;\n\n constructor(\n private _meterProviderSharedState: MeterProviderSharedState,\n private _instrumentationScope: InstrumentationScope\n ) {\n this.meter = new Meter(this);\n }\n\n registerMetricStorage(descriptor: InstrumentDescriptor) {\n const storages = this._registerMetricStorage(descriptor, SyncMetricStorage);\n\n if (storages.length === 1) {\n return storages[0];\n }\n return new MultiMetricStorage(storages);\n }\n\n registerAsyncMetricStorage(descriptor: InstrumentDescriptor) {\n const storages = this._registerMetricStorage(\n descriptor,\n AsyncMetricStorage\n );\n\n return storages;\n }\n\n /**\n * @param collector opaque handle of {@link MetricCollector} which initiated the collection.\n * @param collectionTime the HrTime at which the collection was initiated.\n * @param options options for collection.\n * @returns the list of metric data collected.\n */\n async collect(\n collector: MetricCollectorHandle,\n collectionTime: HrTime,\n options?: MetricCollectOptions\n ): Promise<ScopeMetricsResult | null> {\n /**\n * 1. Call all observable callbacks first.\n * 2. Collect metric result for the collector.\n */\n const errors = await this.observableRegistry.observe(\n collectionTime,\n options?.timeoutMillis\n );\n const storages = this.metricStorageRegistry.getStorages(collector);\n\n // prevent more allocations if there are no storages.\n if (storages.length === 0) {\n return null;\n }\n\n const metricDataList = storages\n .map(metricStorage => {\n return metricStorage.collect(collector, collectionTime);\n })\n .filter(isNotNullish);\n\n // skip this scope if no data was collected (storage created, but no data observed)\n if (metricDataList.length === 0) {\n return { errors };\n }\n\n return {\n scopeMetrics: {\n scope: this._instrumentationScope,\n metrics: metricDataList,\n },\n errors,\n };\n }\n\n private _registerMetricStorage<\n MetricStorageType extends MetricStorageConstructor,\n R extends InstanceType<MetricStorageType>,\n >(\n descriptor: InstrumentDescriptor,\n MetricStorageType: MetricStorageType\n ): R[] {\n const views = this._meterProviderSharedState.viewRegistry.findViews(\n descriptor,\n this._instrumentationScope\n );\n let storages = views.map(view => {\n const viewDescriptor = createInstrumentDescriptorWithView(\n view,\n descriptor\n );\n const compatibleStorage =\n this.metricStorageRegistry.findOrUpdateCompatibleStorage<R>(\n viewDescriptor\n );\n if (compatibleStorage != null) {\n return compatibleStorage;\n }\n const aggregator = view.aggregation.createAggregator(viewDescriptor);\n const viewStorage = new MetricStorageType(\n viewDescriptor,\n aggregator,\n view.attributesProcessor,\n this._meterProviderSharedState.metricCollectors,\n view.aggregationCardinalityLimit\n ) as R;\n this.metricStorageRegistry.register(viewStorage);\n return viewStorage;\n });\n\n // Fallback to the per-collector aggregations if no view is configured for the instrument.\n if (storages.length === 0) {\n const perCollectorAggregations =\n this._meterProviderSharedState.selectAggregations(descriptor.type);\n const collectorStorages = perCollectorAggregations.map(\n ([collector, aggregation]) => {\n const compatibleStorage =\n this.metricStorageRegistry.findOrUpdateCompatibleCollectorStorage<R>(\n collector,\n descriptor\n );\n if (compatibleStorage != null) {\n return compatibleStorage;\n }\n\n const aggregator = aggregation.createAggregator(descriptor);\n const cardinalityLimit = collector.selectCardinalityLimit(\n descriptor.type\n );\n const storage = new MetricStorageType(\n descriptor,\n aggregator,\n createNoopAttributesProcessor(),\n [collector],\n cardinalityLimit\n ) as R;\n this.metricStorageRegistry.registerForCollector(collector, storage);\n return storage;\n }\n );\n storages = storages.concat(collectorStorages);\n }\n\n return storages;\n }\n}\n\ninterface ScopeMetricsResult {\n scopeMetrics?: ScopeMetrics;\n errors: unknown[];\n}\n\ninterface MetricStorageConstructor {\n new (\n instrumentDescriptor: InstrumentDescriptor,\n aggregator: Aggregator<Maybe<Accumulation>>,\n attributesProcessor: IAttributesProcessor,\n collectors: MetricCollectorHandle[],\n aggregationCardinalityLimit?: number\n ): MetricStorage;\n}\n"]}
1
+ {"version":3,"file":"MeterSharedState.js","sourceRoot":"","sources":["../../../src/state/MeterSharedState.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HrTime } from '@opentelemetry/api';\nimport { InstrumentationScope } from '@opentelemetry/core';\nimport { MetricCollectOptions } from '../export/MetricProducer';\nimport { MetricData, ScopeMetrics } from '../export/MetricData';\nimport {\n createInstrumentDescriptorWithView,\n InstrumentDescriptor,\n} from '../InstrumentDescriptor';\nimport { Meter } from '../Meter';\nimport { Maybe } from '../utils';\nimport { AsyncMetricStorage } from './AsyncMetricStorage';\nimport { MeterProviderSharedState } from './MeterProviderSharedState';\nimport { MetricCollectorHandle } from './MetricCollector';\nimport { MetricStorageRegistry } from './MetricStorageRegistry';\nimport { MultiMetricStorage } from './MultiWritableMetricStorage';\nimport { ObservableRegistry } from './ObservableRegistry';\nimport { SyncMetricStorage } from './SyncMetricStorage';\nimport { Accumulation, Aggregator } from '../aggregator/types';\nimport {\n createNoopAttributesProcessor,\n IAttributesProcessor,\n} from '../view/AttributesProcessor';\nimport { MetricStorage } from './MetricStorage';\n\n/**\n * An internal record for shared meter provider states.\n */\nexport class MeterSharedState {\n metricStorageRegistry = new MetricStorageRegistry();\n observableRegistry = new ObservableRegistry();\n meter: Meter;\n private _meterProviderSharedState: MeterProviderSharedState;\n private _instrumentationScope: InstrumentationScope;\n\n constructor(\n meterProviderSharedState: MeterProviderSharedState,\n instrumentationScope: InstrumentationScope\n ) {\n this.meter = new Meter(this);\n this._meterProviderSharedState = meterProviderSharedState;\n this._instrumentationScope = instrumentationScope;\n }\n\n registerMetricStorage(descriptor: InstrumentDescriptor) {\n const storages = this._registerMetricStorage(descriptor, SyncMetricStorage);\n\n if (storages.length === 1) {\n return storages[0];\n }\n return new MultiMetricStorage(storages);\n }\n\n registerAsyncMetricStorage(descriptor: InstrumentDescriptor) {\n const storages = this._registerMetricStorage(\n descriptor,\n AsyncMetricStorage\n );\n\n return storages;\n }\n\n /**\n * @param collector opaque handle of {@link MetricCollector} which initiated the collection.\n * @param collectionTime the HrTime at which the collection was initiated.\n * @param options options for collection.\n * @returns the list of metric data collected.\n */\n async collect(\n collector: MetricCollectorHandle,\n collectionTime: HrTime,\n options?: MetricCollectOptions\n ): Promise<ScopeMetricsResult | null> {\n /**\n * 1. Call all observable callbacks first.\n * 2. Collect metric result for the collector.\n */\n const errors = await this.observableRegistry.observe(\n collectionTime,\n options?.timeoutMillis\n );\n const storages = this.metricStorageRegistry.getStorages(collector);\n\n // prevent more allocations if there are no storages.\n if (storages.length === 0) {\n return null;\n }\n\n const metricDataList: MetricData[] = [];\n storages.forEach(metricStorage => {\n const metricData = metricStorage.collect(collector, collectionTime);\n\n if (metricData != null) {\n metricDataList.push(metricData);\n }\n });\n\n // skip this scope if no data was collected (storage created, but no data observed)\n if (metricDataList.length === 0) {\n return { errors };\n }\n\n return {\n scopeMetrics: {\n scope: this._instrumentationScope,\n metrics: metricDataList,\n },\n errors,\n };\n }\n\n private _registerMetricStorage<\n MetricStorageType extends MetricStorageConstructor,\n R extends InstanceType<MetricStorageType>,\n >(\n descriptor: InstrumentDescriptor,\n MetricStorageType: MetricStorageType\n ): R[] {\n const views = this._meterProviderSharedState.viewRegistry.findViews(\n descriptor,\n this._instrumentationScope\n );\n let storages = views.map(view => {\n const viewDescriptor = createInstrumentDescriptorWithView(\n view,\n descriptor\n );\n const compatibleStorage =\n this.metricStorageRegistry.findOrUpdateCompatibleStorage<R>(\n viewDescriptor\n );\n if (compatibleStorage != null) {\n return compatibleStorage;\n }\n const aggregator = view.aggregation.createAggregator(viewDescriptor);\n const viewStorage = new MetricStorageType(\n viewDescriptor,\n aggregator,\n view.attributesProcessor,\n this._meterProviderSharedState.metricCollectors,\n view.aggregationCardinalityLimit\n ) as R;\n this.metricStorageRegistry.register(viewStorage);\n return viewStorage;\n });\n\n // Fallback to the per-collector aggregations if no view is configured for the instrument.\n if (storages.length === 0) {\n const perCollectorAggregations =\n this._meterProviderSharedState.selectAggregations(descriptor.type);\n const collectorStorages = perCollectorAggregations.map(\n ([collector, aggregation]) => {\n const compatibleStorage =\n this.metricStorageRegistry.findOrUpdateCompatibleCollectorStorage<R>(\n collector,\n descriptor\n );\n if (compatibleStorage != null) {\n return compatibleStorage;\n }\n\n const aggregator = aggregation.createAggregator(descriptor);\n const cardinalityLimit = collector.selectCardinalityLimit(\n descriptor.type\n );\n const storage = new MetricStorageType(\n descriptor,\n aggregator,\n createNoopAttributesProcessor(),\n [collector],\n cardinalityLimit\n ) as R;\n this.metricStorageRegistry.registerForCollector(collector, storage);\n return storage;\n }\n );\n storages = storages.concat(collectorStorages);\n }\n\n return storages;\n }\n}\n\ninterface ScopeMetricsResult {\n scopeMetrics?: ScopeMetrics;\n errors: unknown[];\n}\n\ninterface MetricStorageConstructor {\n new (\n instrumentDescriptor: InstrumentDescriptor,\n aggregator: Aggregator<Maybe<Accumulation>>,\n attributesProcessor: IAttributesProcessor,\n collectors: MetricCollectorHandle[],\n aggregationCardinalityLimit?: number\n ): MetricStorage;\n}\n"]}
@@ -12,7 +12,7 @@ import { MeterProviderSharedState } from './MeterProviderSharedState';
12
12
  export declare class MetricCollector implements MetricProducer {
13
13
  private _sharedState;
14
14
  private _metricReader;
15
- constructor(_sharedState: MeterProviderSharedState, _metricReader: IMetricReader);
15
+ constructor(sharedState: MeterProviderSharedState, metricReader: IMetricReader);
16
16
  collect(options?: MetricCollectOptions): Promise<CollectionResult>;
17
17
  /**
18
18
  * Delegates for MetricReader.forceFlush.
@@ -25,9 +25,9 @@ const core_1 = require("@opentelemetry/core");
25
25
  class MetricCollector {
26
26
  _sharedState;
27
27
  _metricReader;
28
- constructor(_sharedState, _metricReader) {
29
- this._sharedState = _sharedState;
30
- this._metricReader = _metricReader;
28
+ constructor(sharedState, metricReader) {
29
+ this._sharedState = sharedState;
30
+ this._metricReader = metricReader;
31
31
  }
32
32
  async collect(options) {
33
33
  const collectionTime = (0, core_1.millisToHrTime)(Date.now());
@@ -1 +1 @@
1
- {"version":3,"file":"MetricCollector.js","sourceRoot":"","sources":["../../../src/state/MetricCollector.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,8CAAqD;AAYrD;;;;GAIG;AACH,MAAa,eAAe;IAEhB;IACA;IAFV,YACU,YAAsC,EACtC,aAA4B;QAD5B,iBAAY,GAAZ,YAAY,CAA0B;QACtC,kBAAa,GAAb,aAAa,CAAe;IACnC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,OAA8B;QAC1C,MAAM,cAAc,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CACxC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAC7C,CAAC,GAAG,CAAC,KAAK,EAAC,gBAAgB,EAAC,EAAE;YAC7B,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAC5C,IAAI,EACJ,cAAc,EACd,OAAO,CACR,CAAC;YAEF,sCAAsC;YACtC,IAAI,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE;gBACjC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aACzC;YAED,+BAA+B;YAC/B,IAAI,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE;gBAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAE3C,OAAO;YACL,eAAe,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ;gBACpC,YAAY,EAAE,YAAY;aAC3B;YACD,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAA2B;QAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAyB;QACtC,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,4BAA4B,CAAC,cAA8B;QACzD,OAAO,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC;IAED,iBAAiB,CAAC,cAA8B;QAC9C,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,cAA8B;QACnD,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;IAC7E,CAAC;CACF;AAtED,0CAsEC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { millisToHrTime } from '@opentelemetry/core';\nimport { AggregationTemporalitySelector } from '../export/AggregationSelector';\nimport {\n CollectionResult,\n InstrumentType,\n ScopeMetrics,\n} from '../export/MetricData';\nimport { MetricCollectOptions, MetricProducer } from '../export/MetricProducer';\nimport { IMetricReader } from '../export/MetricReader';\nimport { ForceFlushOptions, ShutdownOptions } from '../types';\nimport { MeterProviderSharedState } from './MeterProviderSharedState';\n\n/**\n * An internal opaque interface that the MetricReader receives as\n * MetricProducer. It acts as the storage key to the internal metric stream\n * state for each MetricReader.\n */\nexport class MetricCollector implements MetricProducer {\n constructor(\n private _sharedState: MeterProviderSharedState,\n private _metricReader: IMetricReader\n ) {}\n\n async collect(options?: MetricCollectOptions): Promise<CollectionResult> {\n const collectionTime = millisToHrTime(Date.now());\n const scopeMetrics: ScopeMetrics[] = [];\n const errors: unknown[] = [];\n\n const meterCollectionPromises = Array.from(\n this._sharedState.meterSharedStates.values()\n ).map(async meterSharedState => {\n const current = await meterSharedState.collect(\n this,\n collectionTime,\n options\n );\n\n // only add scope metrics if available\n if (current?.scopeMetrics != null) {\n scopeMetrics.push(current.scopeMetrics);\n }\n\n // only add errors if available\n if (current?.errors != null) {\n errors.push(...current.errors);\n }\n });\n await Promise.all(meterCollectionPromises);\n\n return {\n resourceMetrics: {\n resource: this._sharedState.resource,\n scopeMetrics: scopeMetrics,\n },\n errors: errors,\n };\n }\n\n /**\n * Delegates for MetricReader.forceFlush.\n */\n async forceFlush(options?: ForceFlushOptions): Promise<void> {\n await this._metricReader.forceFlush(options);\n }\n\n /**\n * Delegates for MetricReader.shutdown.\n */\n async shutdown(options?: ShutdownOptions): Promise<void> {\n await this._metricReader.shutdown(options);\n }\n\n selectAggregationTemporality(instrumentType: InstrumentType) {\n return this._metricReader.selectAggregationTemporality(instrumentType);\n }\n\n selectAggregation(instrumentType: InstrumentType) {\n return this._metricReader.selectAggregation(instrumentType);\n }\n\n /**\n * Select the cardinality limit for the given {@link InstrumentType} for this\n * collector.\n */\n selectCardinalityLimit(instrumentType: InstrumentType): number {\n return this._metricReader.selectCardinalityLimit?.(instrumentType) ?? 2000;\n }\n}\n\n/**\n * An internal interface for MetricCollector. Exposes the necessary\n * information for metric collection.\n */\nexport interface MetricCollectorHandle {\n selectAggregationTemporality: AggregationTemporalitySelector;\n selectCardinalityLimit(instrumentType: InstrumentType): number;\n}\n"]}
1
+ {"version":3,"file":"MetricCollector.js","sourceRoot":"","sources":["../../../src/state/MetricCollector.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,8CAAqD;AAYrD;;;;GAIG;AACH,MAAa,eAAe;IAClB,YAAY,CAA2B;IACvC,aAAa,CAAgB;IAErC,YACE,WAAqC,EACrC,YAA2B;QAE3B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA8B;QAC1C,MAAM,cAAc,GAAG,IAAA,qBAAc,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAmB,EAAE,CAAC;QACxC,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,MAAM,uBAAuB,GAAG,KAAK,CAAC,IAAI,CACxC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAC7C,CAAC,GAAG,CAAC,KAAK,EAAC,gBAAgB,EAAC,EAAE;YAC7B,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAC5C,IAAI,EACJ,cAAc,EACd,OAAO,CACR,CAAC;YAEF,sCAAsC;YACtC,IAAI,OAAO,EAAE,YAAY,IAAI,IAAI,EAAE;gBACjC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aACzC;YAED,+BAA+B;YAC/B,IAAI,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE;gBAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAE3C,OAAO;YACL,eAAe,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ;gBACpC,YAAY,EAAE,YAAY;aAC3B;YACD,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAA2B;QAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAyB;QACtC,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,4BAA4B,CAAC,cAA8B;QACzD,OAAO,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC;IAED,iBAAiB,CAAC,cAA8B;QAC9C,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,cAA8B;QACnD,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;IAC7E,CAAC;CACF;AA5ED,0CA4EC","sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { millisToHrTime } from '@opentelemetry/core';\nimport { AggregationTemporalitySelector } from '../export/AggregationSelector';\nimport {\n CollectionResult,\n InstrumentType,\n ScopeMetrics,\n} from '../export/MetricData';\nimport { MetricCollectOptions, MetricProducer } from '../export/MetricProducer';\nimport { IMetricReader } from '../export/MetricReader';\nimport { ForceFlushOptions, ShutdownOptions } from '../types';\nimport { MeterProviderSharedState } from './MeterProviderSharedState';\n\n/**\n * An internal opaque interface that the MetricReader receives as\n * MetricProducer. It acts as the storage key to the internal metric stream\n * state for each MetricReader.\n */\nexport class MetricCollector implements MetricProducer {\n private _sharedState: MeterProviderSharedState;\n private _metricReader: IMetricReader;\n\n constructor(\n sharedState: MeterProviderSharedState,\n metricReader: IMetricReader\n ) {\n this._sharedState = sharedState;\n this._metricReader = metricReader;\n }\n\n async collect(options?: MetricCollectOptions): Promise<CollectionResult> {\n const collectionTime = millisToHrTime(Date.now());\n const scopeMetrics: ScopeMetrics[] = [];\n const errors: unknown[] = [];\n\n const meterCollectionPromises = Array.from(\n this._sharedState.meterSharedStates.values()\n ).map(async meterSharedState => {\n const current = await meterSharedState.collect(\n this,\n collectionTime,\n options\n );\n\n // only add scope metrics if available\n if (current?.scopeMetrics != null) {\n scopeMetrics.push(current.scopeMetrics);\n }\n\n // only add errors if available\n if (current?.errors != null) {\n errors.push(...current.errors);\n }\n });\n await Promise.all(meterCollectionPromises);\n\n return {\n resourceMetrics: {\n resource: this._sharedState.resource,\n scopeMetrics: scopeMetrics,\n },\n errors: errors,\n };\n }\n\n /**\n * Delegates for MetricReader.forceFlush.\n */\n async forceFlush(options?: ForceFlushOptions): Promise<void> {\n await this._metricReader.forceFlush(options);\n }\n\n /**\n * Delegates for MetricReader.shutdown.\n */\n async shutdown(options?: ShutdownOptions): Promise<void> {\n await this._metricReader.shutdown(options);\n }\n\n selectAggregationTemporality(instrumentType: InstrumentType) {\n return this._metricReader.selectAggregationTemporality(instrumentType);\n }\n\n selectAggregation(instrumentType: InstrumentType) {\n return this._metricReader.selectAggregation(instrumentType);\n }\n\n /**\n * Select the cardinality limit for the given {@link InstrumentType} for this\n * collector.\n */\n selectCardinalityLimit(instrumentType: InstrumentType): number {\n return this._metricReader.selectCardinalityLimit?.(instrumentType) ?? 2000;\n }\n}\n\n/**\n * An internal interface for MetricCollector. Exposes the necessary\n * information for metric collection.\n */\nexport interface MetricCollectorHandle {\n selectAggregationTemporality: AggregationTemporalitySelector;\n selectCardinalityLimit(instrumentType: InstrumentType): number;\n}\n"]}