v8 Node OpenTelemetry Instrumentation Blockers #12242

Description

@AbhiPrasad

With the release of v8 of the Sentry SDK, the Node SDK now relies on OpenTelemetry. OpenTelemetry instrumentation does have some problems though (particularly with ESM because of import-in-the-middle), so this issue aims at documented these gaps.

import-in-the-middle

These are import-in-the-middle bugs, which are encountered by Sentry users who want to use Sentry in their ESM app.

### `import-in-the-middle` PRs to be merged
- [ ] https://github.com/DataDog/import-in-the-middle/pull/76
- [ ] https://github.com/DataDog/import-in-the-middle/pull/78
- [ ] https://github.com/DataDog/import-in-the-middle/pull/79
- [ ] https://github.com/DataDog/import-in-the-middle/pull/81
- [ ] https://github.com/DataDog/import-in-the-middle/pull/83
- [ ] https://github.com/DataDog/import-in-the-middle/pull/86
- [ ] https://github.com/DataDog/import-in-the-middle/pull/85
- [ ] https://github.com/DataDog/import-in-the-middle/pull/88
- [ ] https://github.com/open-telemetry/opentelemetry-js/pull/4745
- [ ] https://github.com/DataDog/import-in-the-middle/issues/95

1. import-in-the-middle does not work with multiple loaders.

Reported issue: #12011
Node.js issue: nodejs/node#52987

Fix: nodejs/import-in-the-middle#76

2. relative resolution fails for some modules

import-in-the-middle expects modules to be relative to the current file, but this doesn't always apply (re-exporting for example). Instead we should just use node's resolve

Reported issue: #12059
IITM issues: nodejs/import-in-the-middle#59, nodejs/import-in-the-middle#62, nodejs/import-in-the-middle#63

Fix: nodejs/import-in-the-middle#78

3. import-in-the-middle breaks with duplicate wildcard exports

Reported issue: #12154
IITM issue: nodejs/import-in-the-middle#60

Fix: nodejs/import-in-the-middle#79

4. Does not handle import * of current file

Reported issue: #12237
IITM issue: nodejs/import-in-the-middle#82

Fix: nodejs/import-in-the-middle#83

5. Does not handle CallExpression in ExportDefaultDeclaration node

IITM issue: nodejs/import-in-the-middle#77

Fix: nodejs/import-in-the-middle#85

6. tsx and --import seems to not play nicely

Reported issue: #12357

Instrumentation and Span Data Quality

This is being tracked by #12109

Performance Degradation with v8 PR.

### Tasks
- [ ] https://github.com/getsentry/sentry-javascript/issues/12243

PostgresIntegration problems

We've gotten two different reports (#11897, https://discord.com/channels/621778831602221064/1242436171737333810) that using the postgres integration with Sentry is causing memory issues.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
     blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    
    Skip to content

    v8 Node OpenTelemetry Instrumentation Blockers #12242

    Description

    @AbhiPrasad

    With the release of v8 of the Sentry SDK, the Node SDK now relies on OpenTelemetry. OpenTelemetry instrumentation does have some problems though (particularly with ESM because of import-in-the-middle), so this issue aims at documented these gaps.

    import-in-the-middle

    These are import-in-the-middle bugs, which are encountered by Sentry users who want to use Sentry in their ESM app.

    ### `import-in-the-middle` PRs to be merged
    - [ ] https://github.com/DataDog/import-in-the-middle/pull/76
    - [ ] https://github.com/DataDog/import-in-the-middle/pull/78
    - [ ] https://github.com/DataDog/import-in-the-middle/pull/79
    - [ ] https://github.com/DataDog/import-in-the-middle/pull/81
    - [ ] https://github.com/DataDog/import-in-the-middle/pull/83
    - [ ] https://github.com/DataDog/import-in-the-middle/pull/86
    - [ ] https://github.com/DataDog/import-in-the-middle/pull/85
    - [ ] https://github.com/DataDog/import-in-the-middle/pull/88
    - [ ] https://github.com/open-telemetry/opentelemetry-js/pull/4745
    - [ ] https://github.com/DataDog/import-in-the-middle/issues/95
    

    1. import-in-the-middle does not work with multiple loaders.

    Reported issue: #12011
    Node.js issue: nodejs/node#52987

    Fix: nodejs/import-in-the-middle#76

    2. relative resolution fails for some modules

    import-in-the-middle expects modules to be relative to the current file, but this doesn't always apply (re-exporting for example). Instead we should just use node's resolve

    Reported issue: #12059
    IITM issues: nodejs/import-in-the-middle#59, nodejs/import-in-the-middle#62, nodejs/import-in-the-middle#63

    Fix: nodejs/import-in-the-middle#78

    3. import-in-the-middle breaks with duplicate wildcard exports

    Reported issue: #12154
    IITM issue: nodejs/import-in-the-middle#60

    Fix: nodejs/import-in-the-middle#79

    4. Does not handle import * of current file

    Reported issue: #12237
    IITM issue: nodejs/import-in-the-middle#82

    Fix: nodejs/import-in-the-middle#83

    5. Does not handle CallExpression in ExportDefaultDeclaration node

    IITM issue: nodejs/import-in-the-middle#77

    Fix: nodejs/import-in-the-middle#85

    6. tsx and --import seems to not play nicely

    Reported issue: #12357

    Instrumentation and Span Data Quality

    This is being tracked by #12109

    Performance Degradation with v8 PR.

    ### Tasks
    - [ ] https://github.com/getsentry/sentry-javascript/issues/12243
    

    PostgresIntegration problems

    We've gotten two different reports (#11897, https://discord.com/channels/621778831602221064/1242436171737333810) that using the postgres integration with Sentry is causing memory issues.

    Metadata

    Metadata

    Labels

    No labels
    No labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
      Skip to content

      v8 Node OpenTelemetry Instrumentation Blockers #12242

      Description

      @AbhiPrasad

      With the release of v8 of the Sentry SDK, the Node SDK now relies on OpenTelemetry. OpenTelemetry instrumentation does have some problems though (particularly with ESM because of import-in-the-middle), so this issue aims at documented these gaps.

      import-in-the-middle

      These are import-in-the-middle bugs, which are encountered by Sentry users who want to use Sentry in their ESM app.

      ### `import-in-the-middle` PRs to be merged
      - [ ] https://github.com/DataDog/import-in-the-middle/pull/76
      - [ ] https://github.com/DataDog/import-in-the-middle/pull/78
      - [ ] https://github.com/DataDog/import-in-the-middle/pull/79
      - [ ] https://github.com/DataDog/import-in-the-middle/pull/81
      - [ ] https://github.com/DataDog/import-in-the-middle/pull/83
      - [ ] https://github.com/DataDog/import-in-the-middle/pull/86
      - [ ] https://github.com/DataDog/import-in-the-middle/pull/85
      - [ ] https://github.com/DataDog/import-in-the-middle/pull/88
      - [ ] https://github.com/open-telemetry/opentelemetry-js/pull/4745
      - [ ] https://github.com/DataDog/import-in-the-middle/issues/95
      

      1. import-in-the-middle does not work with multiple loaders.

      Reported issue: #12011
      Node.js issue: nodejs/node#52987

      Fix: nodejs/import-in-the-middle#76

      2. relative resolution fails for some modules

      import-in-the-middle expects modules to be relative to the current file, but this doesn't always apply (re-exporting for example). Instead we should just use node's resolve

      Reported issue: #12059
      IITM issues: nodejs/import-in-the-middle#59, nodejs/import-in-the-middle#62, nodejs/import-in-the-middle#63

      Fix: nodejs/import-in-the-middle#78

      3. import-in-the-middle breaks with duplicate wildcard exports

      Reported issue: #12154
      IITM issue: nodejs/import-in-the-middle#60

      Fix: nodejs/import-in-the-middle#79

      4. Does not handle import * of current file

      Reported issue: #12237
      IITM issue: nodejs/import-in-the-middle#82

      Fix: nodejs/import-in-the-middle#83

      5. Does not handle CallExpression in ExportDefaultDeclaration node

      IITM issue: nodejs/import-in-the-middle#77

      Fix: nodejs/import-in-the-middle#85

      6. tsx and --import seems to not play nicely

      Reported issue: #12357

      Instrumentation and Span Data Quality

      This is being tracked by #12109

      Performance Degradation with v8 PR.

      ### Tasks
      - [ ] https://github.com/getsentry/sentry-javascript/issues/12243
      

      PostgresIntegration problems

      We've gotten two different reports (#11897, https://discord.com/channels/621778831602221064/1242436171737333810) that using the postgres integration with Sentry is causing memory issues.

      Metadata

      Metadata

      Labels

      No labels
      No labels

      Projects

      No projects

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
        Skip to content

        v8 Node OpenTelemetry Instrumentation Blockers #12242

        Description

        @AbhiPrasad

        With the release of v8 of the Sentry SDK, the Node SDK now relies on OpenTelemetry. OpenTelemetry instrumentation does have some problems though (particularly with ESM because of import-in-the-middle), so this issue aims at documented these gaps.

        import-in-the-middle

        These are import-in-the-middle bugs, which are encountered by Sentry users who want to use Sentry in their ESM app.

        ### `import-in-the-middle` PRs to be merged
        - [ ] https://github.com/DataDog/import-in-the-middle/pull/76
        - [ ] https://github.com/DataDog/import-in-the-middle/pull/78
        - [ ] https://github.com/DataDog/import-in-the-middle/pull/79
        - [ ] https://github.com/DataDog/import-in-the-middle/pull/81
        - [ ] https://github.com/DataDog/import-in-the-middle/pull/83
        - [ ] https://github.com/DataDog/import-in-the-middle/pull/86
        - [ ] https://github.com/DataDog/import-in-the-middle/pull/85
        - [ ] https://github.com/DataDog/import-in-the-middle/pull/88
        - [ ] https://github.com/open-telemetry/opentelemetry-js/pull/4745
        - [ ] https://github.com/DataDog/import-in-the-middle/issues/95
        

        1. import-in-the-middle does not work with multiple loaders.

        Reported issue: #12011
        Node.js issue: nodejs/node#52987

        Fix: nodejs/import-in-the-middle#76

        2. relative resolution fails for some modules

        import-in-the-middle expects modules to be relative to the current file, but this doesn't always apply (re-exporting for example). Instead we should just use node's resolve

        Reported issue: #12059
        IITM issues: nodejs/import-in-the-middle#59, nodejs/import-in-the-middle#62, nodejs/import-in-the-middle#63

        Fix: nodejs/import-in-the-middle#78

        3. import-in-the-middle breaks with duplicate wildcard exports

        Reported issue: #12154
        IITM issue: nodejs/import-in-the-middle#60

        Fix: nodejs/import-in-the-middle#79

        4. Does not handle import * of current file

        Reported issue: #12237
        IITM issue: nodejs/import-in-the-middle#82

        Fix: nodejs/import-in-the-middle#83

        5. Does not handle CallExpression in ExportDefaultDeclaration node

        IITM issue: nodejs/import-in-the-middle#77

        Fix: nodejs/import-in-the-middle#85

        6. tsx and --import seems to not play nicely

        Reported issue: #12357

        Instrumentation and Span Data Quality

        This is being tracked by #12109

        Performance Degradation with v8 PR.

        ### Tasks
        - [ ] https://github.com/getsentry/sentry-javascript/issues/12243
        

        PostgresIntegration problems

        We've gotten two different reports (#11897, https://discord.com/channels/621778831602221064/1242436171737333810) that using the postgres integration with Sentry is causing memory issues.

        Metadata

        Metadata

        Labels

        No labels
        No labels

        Projects

        No projects

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
          Skip to content

          v8 Node OpenTelemetry Instrumentation Blockers #12242

          Description

          @AbhiPrasad

          With the release of v8 of the Sentry SDK, the Node SDK now relies on OpenTelemetry. OpenTelemetry instrumentation does have some problems though (particularly with ESM because of import-in-the-middle), so this issue aims at documented these gaps.

          import-in-the-middle

          These are import-in-the-middle bugs, which are encountered by Sentry users who want to use Sentry in their ESM app.

          ### `import-in-the-middle` PRs to be merged
          - [ ] https://github.com/DataDog/import-in-the-middle/pull/76
          - [ ] https://github.com/DataDog/import-in-the-middle/pull/78
          - [ ] https://github.com/DataDog/import-in-the-middle/pull/79
          - [ ] https://github.com/DataDog/import-in-the-middle/pull/81
          - [ ] https://github.com/DataDog/import-in-the-middle/pull/83
          - [ ] https://github.com/DataDog/import-in-the-middle/pull/86
          - [ ] https://github.com/DataDog/import-in-the-middle/pull/85
          - [ ] https://github.com/DataDog/import-in-the-middle/pull/88
          - [ ] https://github.com/open-telemetry/opentelemetry-js/pull/4745
          - [ ] https://github.com/DataDog/import-in-the-middle/issues/95
          

          1. import-in-the-middle does not work with multiple loaders.

          Reported issue: #12011
          Node.js issue: nodejs/node#52987

          Fix: nodejs/import-in-the-middle#76

          2. relative resolution fails for some modules

          import-in-the-middle expects modules to be relative to the current file, but this doesn't always apply (re-exporting for example). Instead we should just use node's resolve

          Reported issue: #12059
          IITM issues: nodejs/import-in-the-middle#59, nodejs/import-in-the-middle#62, nodejs/import-in-the-middle#63

          Fix: nodejs/import-in-the-middle#78

          3. import-in-the-middle breaks with duplicate wildcard exports

          Reported issue: #12154
          IITM issue: nodejs/import-in-the-middle#60

          Fix: nodejs/import-in-the-middle#79

          4. Does not handle import * of current file

          Reported issue: #12237
          IITM issue: nodejs/import-in-the-middle#82

          Fix: nodejs/import-in-the-middle#83

          5. Does not handle CallExpression in ExportDefaultDeclaration node

          IITM issue: nodejs/import-in-the-middle#77

          Fix: nodejs/import-in-the-middle#85

          6. tsx and --import seems to not play nicely

          Reported issue: #12357

          Instrumentation and Span Data Quality

          This is being tracked by #12109

          Performance Degradation with v8 PR.

          ### Tasks
          - [ ] https://github.com/getsentry/sentry-javascript/issues/12243
          

          PostgresIntegration problems

          We've gotten two different reports (#11897, https://discord.com/channels/621778831602221064/1242436171737333810) that using the postgres integration with Sentry is causing memory issues.

          Metadata

          Metadata

          Labels

          No labels
          No labels

          Projects

          No projects

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
            Skip to content

            v8 Node OpenTelemetry Instrumentation Blockers #12242

            Description

            @AbhiPrasad

            With the release of v8 of the Sentry SDK, the Node SDK now relies on OpenTelemetry. OpenTelemetry instrumentation does have some problems though (particularly with ESM because of import-in-the-middle), so this issue aims at documented these gaps.

            import-in-the-middle

            These are import-in-the-middle bugs, which are encountered by Sentry users who want to use Sentry in their ESM app.

            ### `import-in-the-middle` PRs to be merged
            - [ ] https://github.com/DataDog/import-in-the-middle/pull/76
            - [ ] https://github.com/DataDog/import-in-the-middle/pull/78
            - [ ] https://github.com/DataDog/import-in-the-middle/pull/79
            - [ ] https://github.com/DataDog/import-in-the-middle/pull/81
            - [ ] https://github.com/DataDog/import-in-the-middle/pull/83
            - [ ] https://github.com/DataDog/import-in-the-middle/pull/86
            - [ ] https://github.com/DataDog/import-in-the-middle/pull/85
            - [ ] https://github.com/DataDog/import-in-the-middle/pull/88
            - [ ] https://github.com/open-telemetry/opentelemetry-js/pull/4745
            - [ ] https://github.com/DataDog/import-in-the-middle/issues/95
            

            1. import-in-the-middle does not work with multiple loaders.

            Reported issue: #12011
            Node.js issue: nodejs/node#52987

            Fix: nodejs/import-in-the-middle#76

            2. relative resolution fails for some modules

            import-in-the-middle expects modules to be relative to the current file, but this doesn't always apply (re-exporting for example). Instead we should just use node's resolve

            Reported issue: #12059
            IITM issues: nodejs/import-in-the-middle#59, nodejs/import-in-the-middle#62, nodejs/import-in-the-middle#63

            Fix: nodejs/import-in-the-middle#78

            3. import-in-the-middle breaks with duplicate wildcard exports

            Reported issue: #12154
            IITM issue: nodejs/import-in-the-middle#60

            Fix: nodejs/import-in-the-middle#79

            4. Does not handle import * of current file

            Reported issue: #12237
            IITM issue: nodejs/import-in-the-middle#82

            Fix: nodejs/import-in-the-middle#83

            5. Does not handle CallExpression in ExportDefaultDeclaration node

            IITM issue: nodejs/import-in-the-middle#77

            Fix: nodejs/import-in-the-middle#85

            6. tsx and --import seems to not play nicely

            Reported issue: #12357

            Instrumentation and Span Data Quality

            This is being tracked by #12109

            Performance Degradation with v8 PR.

            ### Tasks
            - [ ] https://github.com/getsentry/sentry-javascript/issues/12243
            

            PostgresIntegration problems

            We've gotten two different reports (#11897, https://discord.com/channels/621778831602221064/1242436171737333810) that using the postgres integration with Sentry is causing memory issues.

            Metadata

            Metadata

            Labels

            No labels
            No labels

            Projects

            No projects

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              v8 Node OpenTelemetry Instrumentation Blockers #12242

              Description

              @AbhiPrasad

              With the release of v8 of the Sentry SDK, the Node SDK now relies on OpenTelemetry. OpenTelemetry instrumentation does have some problems though (particularly with ESM because of import-in-the-middle), so this issue aims at documented these gaps.

              import-in-the-middle

              These are import-in-the-middle bugs, which are encountered by Sentry users who want to use Sentry in their ESM app.

              ### `import-in-the-middle` PRs to be merged
              - [ ] https://github.com/DataDog/import-in-the-middle/pull/76
              - [ ] https://github.com/DataDog/import-in-the-middle/pull/78
              - [ ] https://github.com/DataDog/import-in-the-middle/pull/79
              - [ ] https://github.com/DataDog/import-in-the-middle/pull/81
              - [ ] https://github.com/DataDog/import-in-the-middle/pull/83
              - [ ] https://github.com/DataDog/import-in-the-middle/pull/86
              - [ ] https://github.com/DataDog/import-in-the-middle/pull/85
              - [ ] https://github.com/DataDog/import-in-the-middle/pull/88
              - [ ] https://github.com/open-telemetry/opentelemetry-js/pull/4745
              - [ ] https://github.com/DataDog/import-in-the-middle/issues/95
              

              1. import-in-the-middle does not work with multiple loaders.

              Reported issue: #12011
              Node.js issue: nodejs/node#52987

              Fix: nodejs/import-in-the-middle#76

              2. relative resolution fails for some modules

              import-in-the-middle expects modules to be relative to the current file, but this doesn't always apply (re-exporting for example). Instead we should just use node's resolve

              Reported issue: #12059
              IITM issues: nodejs/import-in-the-middle#59, nodejs/import-in-the-middle#62, nodejs/import-in-the-middle#63

              Fix: nodejs/import-in-the-middle#78

              3. import-in-the-middle breaks with duplicate wildcard exports

              Reported issue: #12154
              IITM issue: nodejs/import-in-the-middle#60

              Fix: nodejs/import-in-the-middle#79

              4. Does not handle import * of current file

              Reported issue: #12237
              IITM issue: nodejs/import-in-the-middle#82

              Fix: nodejs/import-in-the-middle#83

              5. Does not handle CallExpression in ExportDefaultDeclaration node

              IITM issue: nodejs/import-in-the-middle#77

              Fix: nodejs/import-in-the-middle#85

              6. tsx and --import seems to not play nicely

              Reported issue: #12357

              Instrumentation and Span Data Quality

              This is being tracked by #12109

              Performance Degradation with v8 PR.

              ### Tasks
              - [ ] https://github.com/getsentry/sentry-javascript/issues/12243
              

              PostgresIntegration problems

              We've gotten two different reports (#11897, https://discord.com/channels/621778831602221064/1242436171737333810) that using the postgres integration with Sentry is causing memory issues.

              Metadata

              Metadata

              Labels

              No labels
              No labels

              Projects

              No projects

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions

                , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                Skip to content

                v8 Node OpenTelemetry Instrumentation Blockers #12242

                Description

                @AbhiPrasad

                With the release of v8 of the Sentry SDK, the Node SDK now relies on OpenTelemetry. OpenTelemetry instrumentation does have some problems though (particularly with ESM because of import-in-the-middle), so this issue aims at documented these gaps.

                import-in-the-middle

                These are import-in-the-middle bugs, which are encountered by Sentry users who want to use Sentry in their ESM app.

                ### `import-in-the-middle` PRs to be merged
                - [ ] https://github.com/DataDog/import-in-the-middle/pull/76
                - [ ] https://github.com/DataDog/import-in-the-middle/pull/78
                - [ ] https://github.com/DataDog/import-in-the-middle/pull/79
                - [ ] https://github.com/DataDog/import-in-the-middle/pull/81
                - [ ] https://github.com/DataDog/import-in-the-middle/pull/83
                - [ ] https://github.com/DataDog/import-in-the-middle/pull/86
                - [ ] https://github.com/DataDog/import-in-the-middle/pull/85
                - [ ] https://github.com/DataDog/import-in-the-middle/pull/88
                - [ ] https://github.com/open-telemetry/opentelemetry-js/pull/4745
                - [ ] https://github.com/DataDog/import-in-the-middle/issues/95
                

                1. import-in-the-middle does not work with multiple loaders.

                Reported issue: #12011
                Node.js issue: nodejs/node#52987

                Fix: nodejs/import-in-the-middle#76

                2. relative resolution fails for some modules

                import-in-the-middle expects modules to be relative to the current file, but this doesn't always apply (re-exporting for example). Instead we should just use node's resolve

                Reported issue: #12059
                IITM issues: nodejs/import-in-the-middle#59, nodejs/import-in-the-middle#62, nodejs/import-in-the-middle#63

                Fix: nodejs/import-in-the-middle#78

                3. import-in-the-middle breaks with duplicate wildcard exports

                Reported issue: #12154
                IITM issue: nodejs/import-in-the-middle#60

                Fix: nodejs/import-in-the-middle#79

                4. Does not handle import * of current file

                Reported issue: #12237
                IITM issue: nodejs/import-in-the-middle#82

                Fix: nodejs/import-in-the-middle#83

                5. Does not handle CallExpression in ExportDefaultDeclaration node

                IITM issue: nodejs/import-in-the-middle#77

                Fix: nodejs/import-in-the-middle#85

                6. tsx and --import seems to not play nicely

                Reported issue: #12357

                Instrumentation and Span Data Quality

                This is being tracked by #12109

                Performance Degradation with v8 PR.

                ### Tasks
                - [ ] https://github.com/getsentry/sentry-javascript/issues/12243
                

                PostgresIntegration problems

                We've gotten two different reports (#11897, https://discord.com/channels/621778831602221064/1242436171737333810) that using the postgres integration with Sentry is causing memory issues.

                Metadata

                Metadata

                Labels

                No labels
                No labels

                Projects

                No projects

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions