feat(node): Add genericPool integration using opentelemetry instrumentation - #13356

Closed
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node
Closed

feat(node): Add genericPool integration using opentelemetry instrumentation#13356
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node

Conversation

@Zen-cronic

Copy link
Copy Markdown
Contributor

For #13308

Implement genericPool OTL instrumentation in packages/node

Todo:

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).

Zen-cronicand others added 3 commits August 13, 2024 10:47
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@lforstlforst self-assigned this Aug 14, 2024
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

hey @lforst , thanks for assigning to this pr.

This is how I'm currently testing the updated @sentry/node package in node-integration-tests:

  1. yarn build (in root)
  2. yarn yalc:publish (in root)
  3. cd dev-packages/node-integration-tests && yalc add @sentry/node @sentry/utils @sentry/types @sentry/core (according to this guide)

The changes are observed (so it's working!), but yalc generates a .yalc dir and yalc.lock in node-integration-tests that contains the linked packages. But it doesn't seem like the right approach (we can't push those yalc-related to CI).

Is yarn link a more suitable approach (but this also generates yalc.lock)?

nicohrubecand others added 23 commits August 26, 2024 13:37
…ted (getsentry#13278)
[ref](getsentry#12351)
This PR moves the `SentryGlobalFilter` out of the root module, which led
to the filter overriding user exception filters in certain scenarios.
Now there is two ways to setup sentry error monitoring:
- If users have no catch-all exception filter in their application they
add the `SentryGlobalFilter` as a provider in their main module.
- If users have a catch-all exception filter (annotated with `@Catch()`
they can use the newly introduced `SentryCaptureException()` decorator
to capture alle exceptions caught by this filter.
Testing:
Added a new sample application to test the second setup option and
expanded the test suite in general.
Side note:
- Also removed the `@sentry/microservices` dependency again, since it
does not come out of the box with every nest application so we cannot
rely on it.
This streamlines some caching stuff for CI:
1. Extract dependency installation & cache out into a composite action
for reusability
2. Updated the cache key for dependencies to only include package &
dev-package `package.json`, not the E2E test ones.
Instead of having to keep to separate lists of include/excludes, we now
keep this in a single list and invert it when necessary.
This way, we should no longer have problems where tests are either run
multiple times, or not in the correct env - just add the test to the
`browser` list in `ci-unit-tests.ts` to make sure it is not run in
multiple node versions unnecessarily. I also added this step to the new
package checklist.
This improves a few things in our size-limit CI action:
1. Show change in bytes, in addition to the change in percentage. 2. Add a link below the table to the base comparison run.
3. If we detect that the workflow run we used as base is not the latest
one, show a warning on top.
![image](https://github.com/user-attachments/assets/4678ff04-a463-4579-ad91-74cbf9b7d781)
…etsentry#13338)
This streamlines some stuff in our browser integration tests, to fix
some flakiness (hopefully).
The biggest change is that instead of always building into `dist` for
each test file, each test will now build into a random subfolder, e.g.
`dist/abc`. This way, multiple tests in a single file will never
conflict with each other.
Additionally it also streamlines some of the tests I encountered while
looking at stuff, hopefully reducing flakes further.
Closesgetsentry#13321
Reverts getsentry#13118
There has been quite a bit of segmentation faults in CI after this PR
was merged.
I tried spending time to look into this in more detail, but it didn't
get far, so not worrying about this too much for now. Let's revert and
re-examine later.
relax the pageload transaction assertion. Web vitals are too
flaky to hard-assert on them and they are covered in browser integration
tests
Minor changes: I realized that the formatting was broken for `v8` and
that the migration guide wasn't linking to the specific section like
other changelogs.
CI is angery. Crypto is only on global from Node 19 onwards.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See getsentry#13395
Co-authored-by: mydea <2411343+mydea@users.noreply.github.com>
If the domain is not in `Allowed Domains` in the Sentry project
settings, it would cause a 403 error. The default setting is `*` so this
only occurs when the user changes these settings.
Fixesgetsentry#9856
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

Apologies for the mess. Please check out the new PR at #13465

@lforstlforst removed their assignment Aug 28, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

11 participants

@Zen-cronic@lforst@nicohrubec@mydea@Lms24@getsentry-bot@andreiborza@chargome@AbhiPrasad@charpeni@c298lee
, '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

feat(node): Add genericPool integration using opentelemetry instrumentation - #13356

Closed
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node
Closed

feat(node): Add genericPool integration using opentelemetry instrumentation#13356
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node

Conversation

@Zen-cronic

Copy link
Copy Markdown
Contributor

For #13308

Implement genericPool OTL instrumentation in packages/node

Todo:

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).

Zen-cronicand others added 3 commits August 13, 2024 10:47
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@lforstlforst self-assigned this Aug 14, 2024
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

hey @lforst , thanks for assigning to this pr.

This is how I'm currently testing the updated @sentry/node package in node-integration-tests:

  1. yarn build (in root)
  2. yarn yalc:publish (in root)
  3. cd dev-packages/node-integration-tests && yalc add @sentry/node @sentry/utils @sentry/types @sentry/core (according to this guide)

The changes are observed (so it's working!), but yalc generates a .yalc dir and yalc.lock in node-integration-tests that contains the linked packages. But it doesn't seem like the right approach (we can't push those yalc-related to CI).

Is yarn link a more suitable approach (but this also generates yalc.lock)?

nicohrubecand others added 23 commits August 26, 2024 13:37
…ted (getsentry#13278)
[ref](getsentry#12351)
This PR moves the `SentryGlobalFilter` out of the root module, which led
to the filter overriding user exception filters in certain scenarios.
Now there is two ways to setup sentry error monitoring:
- If users have no catch-all exception filter in their application they
add the `SentryGlobalFilter` as a provider in their main module.
- If users have a catch-all exception filter (annotated with `@Catch()`
they can use the newly introduced `SentryCaptureException()` decorator
to capture alle exceptions caught by this filter.
Testing:
Added a new sample application to test the second setup option and
expanded the test suite in general.
Side note:
- Also removed the `@sentry/microservices` dependency again, since it
does not come out of the box with every nest application so we cannot
rely on it.
This streamlines some caching stuff for CI:
1. Extract dependency installation & cache out into a composite action
for reusability
2. Updated the cache key for dependencies to only include package &
dev-package `package.json`, not the E2E test ones.
Instead of having to keep to separate lists of include/excludes, we now
keep this in a single list and invert it when necessary.
This way, we should no longer have problems where tests are either run
multiple times, or not in the correct env - just add the test to the
`browser` list in `ci-unit-tests.ts` to make sure it is not run in
multiple node versions unnecessarily. I also added this step to the new
package checklist.
This improves a few things in our size-limit CI action:
1. Show change in bytes, in addition to the change in percentage. 2. Add a link below the table to the base comparison run.
3. If we detect that the workflow run we used as base is not the latest
one, show a warning on top.
![image](https://github.com/user-attachments/assets/4678ff04-a463-4579-ad91-74cbf9b7d781)
…etsentry#13338)
This streamlines some stuff in our browser integration tests, to fix
some flakiness (hopefully).
The biggest change is that instead of always building into `dist` for
each test file, each test will now build into a random subfolder, e.g.
`dist/abc`. This way, multiple tests in a single file will never
conflict with each other.
Additionally it also streamlines some of the tests I encountered while
looking at stuff, hopefully reducing flakes further.
Closesgetsentry#13321
Reverts getsentry#13118
There has been quite a bit of segmentation faults in CI after this PR
was merged.
I tried spending time to look into this in more detail, but it didn't
get far, so not worrying about this too much for now. Let's revert and
re-examine later.
relax the pageload transaction assertion. Web vitals are too
flaky to hard-assert on them and they are covered in browser integration
tests
Minor changes: I realized that the formatting was broken for `v8` and
that the migration guide wasn't linking to the specific section like
other changelogs.
CI is angery. Crypto is only on global from Node 19 onwards.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See getsentry#13395
Co-authored-by: mydea <2411343+mydea@users.noreply.github.com>
If the domain is not in `Allowed Domains` in the Sentry project
settings, it would cause a 403 error. The default setting is `*` so this
only occurs when the user changes these settings.
Fixesgetsentry#9856
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

Apologies for the mess. Please check out the new PR at #13465

@lforstlforst removed their assignment Aug 28, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

11 participants

@Zen-cronic@lforst@nicohrubec@mydea@Lms24@getsentry-bot@andreiborza@chargome@AbhiPrasad@charpeni@c298lee
, '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

feat(node): Add genericPool integration using opentelemetry instrumentation - #13356

Closed
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node
Closed

feat(node): Add genericPool integration using opentelemetry instrumentation#13356
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node

Conversation

@Zen-cronic

Copy link
Copy Markdown
Contributor

For #13308

Implement genericPool OTL instrumentation in packages/node

Todo:

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).

Zen-cronicand others added 3 commits August 13, 2024 10:47
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@lforstlforst self-assigned this Aug 14, 2024
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

hey @lforst , thanks for assigning to this pr.

This is how I'm currently testing the updated @sentry/node package in node-integration-tests:

  1. yarn build (in root)
  2. yarn yalc:publish (in root)
  3. cd dev-packages/node-integration-tests && yalc add @sentry/node @sentry/utils @sentry/types @sentry/core (according to this guide)

The changes are observed (so it's working!), but yalc generates a .yalc dir and yalc.lock in node-integration-tests that contains the linked packages. But it doesn't seem like the right approach (we can't push those yalc-related to CI).

Is yarn link a more suitable approach (but this also generates yalc.lock)?

nicohrubecand others added 23 commits August 26, 2024 13:37
…ted (getsentry#13278)
[ref](getsentry#12351)
This PR moves the `SentryGlobalFilter` out of the root module, which led
to the filter overriding user exception filters in certain scenarios.
Now there is two ways to setup sentry error monitoring:
- If users have no catch-all exception filter in their application they
add the `SentryGlobalFilter` as a provider in their main module.
- If users have a catch-all exception filter (annotated with `@Catch()`
they can use the newly introduced `SentryCaptureException()` decorator
to capture alle exceptions caught by this filter.
Testing:
Added a new sample application to test the second setup option and
expanded the test suite in general.
Side note:
- Also removed the `@sentry/microservices` dependency again, since it
does not come out of the box with every nest application so we cannot
rely on it.
This streamlines some caching stuff for CI:
1. Extract dependency installation & cache out into a composite action
for reusability
2. Updated the cache key for dependencies to only include package &
dev-package `package.json`, not the E2E test ones.
Instead of having to keep to separate lists of include/excludes, we now
keep this in a single list and invert it when necessary.
This way, we should no longer have problems where tests are either run
multiple times, or not in the correct env - just add the test to the
`browser` list in `ci-unit-tests.ts` to make sure it is not run in
multiple node versions unnecessarily. I also added this step to the new
package checklist.
This improves a few things in our size-limit CI action:
1. Show change in bytes, in addition to the change in percentage. 2. Add a link below the table to the base comparison run.
3. If we detect that the workflow run we used as base is not the latest
one, show a warning on top.
![image](https://github.com/user-attachments/assets/4678ff04-a463-4579-ad91-74cbf9b7d781)
…etsentry#13338)
This streamlines some stuff in our browser integration tests, to fix
some flakiness (hopefully).
The biggest change is that instead of always building into `dist` for
each test file, each test will now build into a random subfolder, e.g.
`dist/abc`. This way, multiple tests in a single file will never
conflict with each other.
Additionally it also streamlines some of the tests I encountered while
looking at stuff, hopefully reducing flakes further.
Closesgetsentry#13321
Reverts getsentry#13118
There has been quite a bit of segmentation faults in CI after this PR
was merged.
I tried spending time to look into this in more detail, but it didn't
get far, so not worrying about this too much for now. Let's revert and
re-examine later.
relax the pageload transaction assertion. Web vitals are too
flaky to hard-assert on them and they are covered in browser integration
tests
Minor changes: I realized that the formatting was broken for `v8` and
that the migration guide wasn't linking to the specific section like
other changelogs.
CI is angery. Crypto is only on global from Node 19 onwards.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See getsentry#13395
Co-authored-by: mydea <2411343+mydea@users.noreply.github.com>
If the domain is not in `Allowed Domains` in the Sentry project
settings, it would cause a 403 error. The default setting is `*` so this
only occurs when the user changes these settings.
Fixesgetsentry#9856
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

Apologies for the mess. Please check out the new PR at #13465

@lforstlforst removed their assignment Aug 28, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

11 participants

@Zen-cronic@lforst@nicohrubec@mydea@Lms24@getsentry-bot@andreiborza@chargome@AbhiPrasad@charpeni@c298lee
, '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

feat(node): Add genericPool integration using opentelemetry instrumentation - #13356

Closed
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node
Closed

feat(node): Add genericPool integration using opentelemetry instrumentation#13356
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node

Conversation

@Zen-cronic

Copy link
Copy Markdown
Contributor

For #13308

Implement genericPool OTL instrumentation in packages/node

Todo:

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).

Zen-cronicand others added 3 commits August 13, 2024 10:47
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@lforstlforst self-assigned this Aug 14, 2024
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

hey @lforst , thanks for assigning to this pr.

This is how I'm currently testing the updated @sentry/node package in node-integration-tests:

  1. yarn build (in root)
  2. yarn yalc:publish (in root)
  3. cd dev-packages/node-integration-tests && yalc add @sentry/node @sentry/utils @sentry/types @sentry/core (according to this guide)

The changes are observed (so it's working!), but yalc generates a .yalc dir and yalc.lock in node-integration-tests that contains the linked packages. But it doesn't seem like the right approach (we can't push those yalc-related to CI).

Is yarn link a more suitable approach (but this also generates yalc.lock)?

nicohrubecand others added 23 commits August 26, 2024 13:37
…ted (getsentry#13278)
[ref](getsentry#12351)
This PR moves the `SentryGlobalFilter` out of the root module, which led
to the filter overriding user exception filters in certain scenarios.
Now there is two ways to setup sentry error monitoring:
- If users have no catch-all exception filter in their application they
add the `SentryGlobalFilter` as a provider in their main module.
- If users have a catch-all exception filter (annotated with `@Catch()`
they can use the newly introduced `SentryCaptureException()` decorator
to capture alle exceptions caught by this filter.
Testing:
Added a new sample application to test the second setup option and
expanded the test suite in general.
Side note:
- Also removed the `@sentry/microservices` dependency again, since it
does not come out of the box with every nest application so we cannot
rely on it.
This streamlines some caching stuff for CI:
1. Extract dependency installation & cache out into a composite action
for reusability
2. Updated the cache key for dependencies to only include package &
dev-package `package.json`, not the E2E test ones.
Instead of having to keep to separate lists of include/excludes, we now
keep this in a single list and invert it when necessary.
This way, we should no longer have problems where tests are either run
multiple times, or not in the correct env - just add the test to the
`browser` list in `ci-unit-tests.ts` to make sure it is not run in
multiple node versions unnecessarily. I also added this step to the new
package checklist.
This improves a few things in our size-limit CI action:
1. Show change in bytes, in addition to the change in percentage. 2. Add a link below the table to the base comparison run.
3. If we detect that the workflow run we used as base is not the latest
one, show a warning on top.
![image](https://github.com/user-attachments/assets/4678ff04-a463-4579-ad91-74cbf9b7d781)
…etsentry#13338)
This streamlines some stuff in our browser integration tests, to fix
some flakiness (hopefully).
The biggest change is that instead of always building into `dist` for
each test file, each test will now build into a random subfolder, e.g.
`dist/abc`. This way, multiple tests in a single file will never
conflict with each other.
Additionally it also streamlines some of the tests I encountered while
looking at stuff, hopefully reducing flakes further.
Closesgetsentry#13321
Reverts getsentry#13118
There has been quite a bit of segmentation faults in CI after this PR
was merged.
I tried spending time to look into this in more detail, but it didn't
get far, so not worrying about this too much for now. Let's revert and
re-examine later.
relax the pageload transaction assertion. Web vitals are too
flaky to hard-assert on them and they are covered in browser integration
tests
Minor changes: I realized that the formatting was broken for `v8` and
that the migration guide wasn't linking to the specific section like
other changelogs.
CI is angery. Crypto is only on global from Node 19 onwards.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See getsentry#13395
Co-authored-by: mydea <2411343+mydea@users.noreply.github.com>
If the domain is not in `Allowed Domains` in the Sentry project
settings, it would cause a 403 error. The default setting is `*` so this
only occurs when the user changes these settings.
Fixesgetsentry#9856
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

Apologies for the mess. Please check out the new PR at #13465

@lforstlforst removed their assignment Aug 28, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

11 participants

@Zen-cronic@lforst@nicohrubec@mydea@Lms24@getsentry-bot@andreiborza@chargome@AbhiPrasad@charpeni@c298lee
, '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

feat(node): Add genericPool integration using opentelemetry instrumentation - #13356

Closed
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node
Closed

feat(node): Add genericPool integration using opentelemetry instrumentation#13356
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node

Conversation

@Zen-cronic

Copy link
Copy Markdown
Contributor

For #13308

Implement genericPool OTL instrumentation in packages/node

Todo:

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).

Zen-cronicand others added 3 commits August 13, 2024 10:47
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@lforstlforst self-assigned this Aug 14, 2024
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

hey @lforst , thanks for assigning to this pr.

This is how I'm currently testing the updated @sentry/node package in node-integration-tests:

  1. yarn build (in root)
  2. yarn yalc:publish (in root)
  3. cd dev-packages/node-integration-tests && yalc add @sentry/node @sentry/utils @sentry/types @sentry/core (according to this guide)

The changes are observed (so it's working!), but yalc generates a .yalc dir and yalc.lock in node-integration-tests that contains the linked packages. But it doesn't seem like the right approach (we can't push those yalc-related to CI).

Is yarn link a more suitable approach (but this also generates yalc.lock)?

nicohrubecand others added 23 commits August 26, 2024 13:37
…ted (getsentry#13278)
[ref](getsentry#12351)
This PR moves the `SentryGlobalFilter` out of the root module, which led
to the filter overriding user exception filters in certain scenarios.
Now there is two ways to setup sentry error monitoring:
- If users have no catch-all exception filter in their application they
add the `SentryGlobalFilter` as a provider in their main module.
- If users have a catch-all exception filter (annotated with `@Catch()`
they can use the newly introduced `SentryCaptureException()` decorator
to capture alle exceptions caught by this filter.
Testing:
Added a new sample application to test the second setup option and
expanded the test suite in general.
Side note:
- Also removed the `@sentry/microservices` dependency again, since it
does not come out of the box with every nest application so we cannot
rely on it.
This streamlines some caching stuff for CI:
1. Extract dependency installation & cache out into a composite action
for reusability
2. Updated the cache key for dependencies to only include package &
dev-package `package.json`, not the E2E test ones.
Instead of having to keep to separate lists of include/excludes, we now
keep this in a single list and invert it when necessary.
This way, we should no longer have problems where tests are either run
multiple times, or not in the correct env - just add the test to the
`browser` list in `ci-unit-tests.ts` to make sure it is not run in
multiple node versions unnecessarily. I also added this step to the new
package checklist.
This improves a few things in our size-limit CI action:
1. Show change in bytes, in addition to the change in percentage. 2. Add a link below the table to the base comparison run.
3. If we detect that the workflow run we used as base is not the latest
one, show a warning on top.
![image](https://github.com/user-attachments/assets/4678ff04-a463-4579-ad91-74cbf9b7d781)
…etsentry#13338)
This streamlines some stuff in our browser integration tests, to fix
some flakiness (hopefully).
The biggest change is that instead of always building into `dist` for
each test file, each test will now build into a random subfolder, e.g.
`dist/abc`. This way, multiple tests in a single file will never
conflict with each other.
Additionally it also streamlines some of the tests I encountered while
looking at stuff, hopefully reducing flakes further.
Closesgetsentry#13321
Reverts getsentry#13118
There has been quite a bit of segmentation faults in CI after this PR
was merged.
I tried spending time to look into this in more detail, but it didn't
get far, so not worrying about this too much for now. Let's revert and
re-examine later.
relax the pageload transaction assertion. Web vitals are too
flaky to hard-assert on them and they are covered in browser integration
tests
Minor changes: I realized that the formatting was broken for `v8` and
that the migration guide wasn't linking to the specific section like
other changelogs.
CI is angery. Crypto is only on global from Node 19 onwards.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See getsentry#13395
Co-authored-by: mydea <2411343+mydea@users.noreply.github.com>
If the domain is not in `Allowed Domains` in the Sentry project
settings, it would cause a 403 error. The default setting is `*` so this
only occurs when the user changes these settings.
Fixesgetsentry#9856
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

Apologies for the mess. Please check out the new PR at #13465

@lforstlforst removed their assignment Aug 28, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

11 participants

@Zen-cronic@lforst@nicohrubec@mydea@Lms24@getsentry-bot@andreiborza@chargome@AbhiPrasad@charpeni@c298lee
, '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

feat(node): Add genericPool integration using opentelemetry instrumentation - #13356

Closed
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node
Closed

feat(node): Add genericPool integration using opentelemetry instrumentation#13356
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node

Conversation

@Zen-cronic

Copy link
Copy Markdown
Contributor

For #13308

Implement genericPool OTL instrumentation in packages/node

Todo:

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).

Zen-cronicand others added 3 commits August 13, 2024 10:47
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@lforstlforst self-assigned this Aug 14, 2024
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

hey @lforst , thanks for assigning to this pr.

This is how I'm currently testing the updated @sentry/node package in node-integration-tests:

  1. yarn build (in root)
  2. yarn yalc:publish (in root)
  3. cd dev-packages/node-integration-tests && yalc add @sentry/node @sentry/utils @sentry/types @sentry/core (according to this guide)

The changes are observed (so it's working!), but yalc generates a .yalc dir and yalc.lock in node-integration-tests that contains the linked packages. But it doesn't seem like the right approach (we can't push those yalc-related to CI).

Is yarn link a more suitable approach (but this also generates yalc.lock)?

nicohrubecand others added 23 commits August 26, 2024 13:37
…ted (getsentry#13278)
[ref](getsentry#12351)
This PR moves the `SentryGlobalFilter` out of the root module, which led
to the filter overriding user exception filters in certain scenarios.
Now there is two ways to setup sentry error monitoring:
- If users have no catch-all exception filter in their application they
add the `SentryGlobalFilter` as a provider in their main module.
- If users have a catch-all exception filter (annotated with `@Catch()`
they can use the newly introduced `SentryCaptureException()` decorator
to capture alle exceptions caught by this filter.
Testing:
Added a new sample application to test the second setup option and
expanded the test suite in general.
Side note:
- Also removed the `@sentry/microservices` dependency again, since it
does not come out of the box with every nest application so we cannot
rely on it.
This streamlines some caching stuff for CI:
1. Extract dependency installation & cache out into a composite action
for reusability
2. Updated the cache key for dependencies to only include package &
dev-package `package.json`, not the E2E test ones.
Instead of having to keep to separate lists of include/excludes, we now
keep this in a single list and invert it when necessary.
This way, we should no longer have problems where tests are either run
multiple times, or not in the correct env - just add the test to the
`browser` list in `ci-unit-tests.ts` to make sure it is not run in
multiple node versions unnecessarily. I also added this step to the new
package checklist.
This improves a few things in our size-limit CI action:
1. Show change in bytes, in addition to the change in percentage. 2. Add a link below the table to the base comparison run.
3. If we detect that the workflow run we used as base is not the latest
one, show a warning on top.
![image](https://github.com/user-attachments/assets/4678ff04-a463-4579-ad91-74cbf9b7d781)
…etsentry#13338)
This streamlines some stuff in our browser integration tests, to fix
some flakiness (hopefully).
The biggest change is that instead of always building into `dist` for
each test file, each test will now build into a random subfolder, e.g.
`dist/abc`. This way, multiple tests in a single file will never
conflict with each other.
Additionally it also streamlines some of the tests I encountered while
looking at stuff, hopefully reducing flakes further.
Closesgetsentry#13321
Reverts getsentry#13118
There has been quite a bit of segmentation faults in CI after this PR
was merged.
I tried spending time to look into this in more detail, but it didn't
get far, so not worrying about this too much for now. Let's revert and
re-examine later.
relax the pageload transaction assertion. Web vitals are too
flaky to hard-assert on them and they are covered in browser integration
tests
Minor changes: I realized that the formatting was broken for `v8` and
that the migration guide wasn't linking to the specific section like
other changelogs.
CI is angery. Crypto is only on global from Node 19 onwards.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See getsentry#13395
Co-authored-by: mydea <2411343+mydea@users.noreply.github.com>
If the domain is not in `Allowed Domains` in the Sentry project
settings, it would cause a 403 error. The default setting is `*` so this
only occurs when the user changes these settings.
Fixesgetsentry#9856
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

Apologies for the mess. Please check out the new PR at #13465

@lforstlforst removed their assignment Aug 28, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

11 participants

@Zen-cronic@lforst@nicohrubec@mydea@Lms24@getsentry-bot@andreiborza@chargome@AbhiPrasad@charpeni@c298lee
, '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

feat(node): Add genericPool integration using opentelemetry instrumentation - #13356

Closed
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node
Closed

feat(node): Add genericPool integration using opentelemetry instrumentation#13356
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node

Conversation

@Zen-cronic

Copy link
Copy Markdown
Contributor

For #13308

Implement genericPool OTL instrumentation in packages/node

Todo:

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).

Zen-cronicand others added 3 commits August 13, 2024 10:47
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@lforstlforst self-assigned this Aug 14, 2024
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

hey @lforst , thanks for assigning to this pr.

This is how I'm currently testing the updated @sentry/node package in node-integration-tests:

  1. yarn build (in root)
  2. yarn yalc:publish (in root)
  3. cd dev-packages/node-integration-tests && yalc add @sentry/node @sentry/utils @sentry/types @sentry/core (according to this guide)

The changes are observed (so it's working!), but yalc generates a .yalc dir and yalc.lock in node-integration-tests that contains the linked packages. But it doesn't seem like the right approach (we can't push those yalc-related to CI).

Is yarn link a more suitable approach (but this also generates yalc.lock)?

nicohrubecand others added 23 commits August 26, 2024 13:37
…ted (getsentry#13278)
[ref](getsentry#12351)
This PR moves the `SentryGlobalFilter` out of the root module, which led
to the filter overriding user exception filters in certain scenarios.
Now there is two ways to setup sentry error monitoring:
- If users have no catch-all exception filter in their application they
add the `SentryGlobalFilter` as a provider in their main module.
- If users have a catch-all exception filter (annotated with `@Catch()`
they can use the newly introduced `SentryCaptureException()` decorator
to capture alle exceptions caught by this filter.
Testing:
Added a new sample application to test the second setup option and
expanded the test suite in general.
Side note:
- Also removed the `@sentry/microservices` dependency again, since it
does not come out of the box with every nest application so we cannot
rely on it.
This streamlines some caching stuff for CI:
1. Extract dependency installation & cache out into a composite action
for reusability
2. Updated the cache key for dependencies to only include package &
dev-package `package.json`, not the E2E test ones.
Instead of having to keep to separate lists of include/excludes, we now
keep this in a single list and invert it when necessary.
This way, we should no longer have problems where tests are either run
multiple times, or not in the correct env - just add the test to the
`browser` list in `ci-unit-tests.ts` to make sure it is not run in
multiple node versions unnecessarily. I also added this step to the new
package checklist.
This improves a few things in our size-limit CI action:
1. Show change in bytes, in addition to the change in percentage. 2. Add a link below the table to the base comparison run.
3. If we detect that the workflow run we used as base is not the latest
one, show a warning on top.
![image](https://github.com/user-attachments/assets/4678ff04-a463-4579-ad91-74cbf9b7d781)
…etsentry#13338)
This streamlines some stuff in our browser integration tests, to fix
some flakiness (hopefully).
The biggest change is that instead of always building into `dist` for
each test file, each test will now build into a random subfolder, e.g.
`dist/abc`. This way, multiple tests in a single file will never
conflict with each other.
Additionally it also streamlines some of the tests I encountered while
looking at stuff, hopefully reducing flakes further.
Closesgetsentry#13321
Reverts getsentry#13118
There has been quite a bit of segmentation faults in CI after this PR
was merged.
I tried spending time to look into this in more detail, but it didn't
get far, so not worrying about this too much for now. Let's revert and
re-examine later.
relax the pageload transaction assertion. Web vitals are too
flaky to hard-assert on them and they are covered in browser integration
tests
Minor changes: I realized that the formatting was broken for `v8` and
that the migration guide wasn't linking to the specific section like
other changelogs.
CI is angery. Crypto is only on global from Node 19 onwards.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See getsentry#13395
Co-authored-by: mydea <2411343+mydea@users.noreply.github.com>
If the domain is not in `Allowed Domains` in the Sentry project
settings, it would cause a 403 error. The default setting is `*` so this
only occurs when the user changes these settings.
Fixesgetsentry#9856
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

Apologies for the mess. Please check out the new PR at #13465

@lforstlforst removed their assignment Aug 28, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

11 participants

@Zen-cronic@lforst@nicohrubec@mydea@Lms24@getsentry-bot@andreiborza@chargome@AbhiPrasad@charpeni@c298lee
, '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

feat(node): Add genericPool integration using opentelemetry instrumentation - #13356

Closed
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node
Closed

feat(node): Add genericPool integration using opentelemetry instrumentation#13356
Zen-cronic wants to merge 26 commits into
getsentry:developfrom
Zen-cronic:feat/genericPoolIntegration-node

Conversation

@Zen-cronic

Copy link
Copy Markdown
Contributor

For #13308

Implement genericPool OTL instrumentation in packages/node

Todo:

  • If you've added code that should be tested, please add tests.
  • Ensure your code lints and the test suite passes (yarn lint) & (yarn test).

Zen-cronicand others added 3 commits August 13, 2024 10:47
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@lforstlforst self-assigned this Aug 14, 2024
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

hey @lforst , thanks for assigning to this pr.

This is how I'm currently testing the updated @sentry/node package in node-integration-tests:

  1. yarn build (in root)
  2. yarn yalc:publish (in root)
  3. cd dev-packages/node-integration-tests && yalc add @sentry/node @sentry/utils @sentry/types @sentry/core (according to this guide)

The changes are observed (so it's working!), but yalc generates a .yalc dir and yalc.lock in node-integration-tests that contains the linked packages. But it doesn't seem like the right approach (we can't push those yalc-related to CI).

Is yarn link a more suitable approach (but this also generates yalc.lock)?

nicohrubecand others added 23 commits August 26, 2024 13:37
…ted (getsentry#13278)
[ref](getsentry#12351)
This PR moves the `SentryGlobalFilter` out of the root module, which led
to the filter overriding user exception filters in certain scenarios.
Now there is two ways to setup sentry error monitoring:
- If users have no catch-all exception filter in their application they
add the `SentryGlobalFilter` as a provider in their main module.
- If users have a catch-all exception filter (annotated with `@Catch()`
they can use the newly introduced `SentryCaptureException()` decorator
to capture alle exceptions caught by this filter.
Testing:
Added a new sample application to test the second setup option and
expanded the test suite in general.
Side note:
- Also removed the `@sentry/microservices` dependency again, since it
does not come out of the box with every nest application so we cannot
rely on it.
This streamlines some caching stuff for CI:
1. Extract dependency installation & cache out into a composite action
for reusability
2. Updated the cache key for dependencies to only include package &
dev-package `package.json`, not the E2E test ones.
Instead of having to keep to separate lists of include/excludes, we now
keep this in a single list and invert it when necessary.
This way, we should no longer have problems where tests are either run
multiple times, or not in the correct env - just add the test to the
`browser` list in `ci-unit-tests.ts` to make sure it is not run in
multiple node versions unnecessarily. I also added this step to the new
package checklist.
This improves a few things in our size-limit CI action:
1. Show change in bytes, in addition to the change in percentage. 2. Add a link below the table to the base comparison run.
3. If we detect that the workflow run we used as base is not the latest
one, show a warning on top.
![image](https://github.com/user-attachments/assets/4678ff04-a463-4579-ad91-74cbf9b7d781)
…etsentry#13338)
This streamlines some stuff in our browser integration tests, to fix
some flakiness (hopefully).
The biggest change is that instead of always building into `dist` for
each test file, each test will now build into a random subfolder, e.g.
`dist/abc`. This way, multiple tests in a single file will never
conflict with each other.
Additionally it also streamlines some of the tests I encountered while
looking at stuff, hopefully reducing flakes further.
Closesgetsentry#13321
Reverts getsentry#13118
There has been quite a bit of segmentation faults in CI after this PR
was merged.
I tried spending time to look into this in more detail, but it didn't
get far, so not worrying about this too much for now. Let's revert and
re-examine later.
relax the pageload transaction assertion. Web vitals are too
flaky to hard-assert on them and they are covered in browser integration
tests
Minor changes: I realized that the formatting was broken for `v8` and
that the migration guide wasn't linking to the specific section like
other changelogs.
CI is angery. Crypto is only on global from Node 19 onwards.
This PR adds the external contributor to the CHANGELOG.md file, so that
they are credited for their contribution. See getsentry#13395
Co-authored-by: mydea <2411343+mydea@users.noreply.github.com>
If the domain is not in `Allowed Domains` in the Sentry project
settings, it would cause a 403 error. The default setting is `*` so this
only occurs when the user changes these settings.
Fixesgetsentry#9856
…tation
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
…tation
Set up initial code and include this instrumentation as a default integration.
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
Signed-off-by: Kaung Zin Hein <kaungzinhein113@gmail.com>
@Zen-cronic

Copy link
Copy Markdown
ContributorAuthor

Apologies for the mess. Please check out the new PR at #13465

@lforstlforst removed their assignment Aug 28, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

11 participants

@Zen-cronic@lforst@nicohrubec@mydea@Lms24@getsentry-bot@andreiborza@chargome@AbhiPrasad@charpeni@c298lee