-
Notifications
You must be signed in to change notification settings - Fork 826
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(sdk-metrics): Add missing catch and handle error in promise of PeriodicExportingMetricReader
#5006
fix(sdk-metrics): Add missing catch and handle error in promise of PeriodicExportingMetricReader
#5006
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I see:
if the attributes are pending AND the promise form waitForAsyncAttributes()
resolves, then doExport()
is called, and IF that rejects (that happens when when the exporter returns failure) then the the promise is unhandled.
Good catch 👍
I feel like the whole code-block should've really been:
// Avoid scheduling a promise to make the behavior more predictable and easier to test
if (resourceMetrics.resource.asyncAttributesPending) {
try {
await resourceMetrics.resource.waitForAsyncAttributes?.();
} catch (err) {
diag.debug('Error while resolving async portion of resource: ', err);
return;
}
}
await doExport();
to ensure that the error reprorted to globalErrorHandler
actually has the correct stacktrace on it.
Please also add a changelog (./CHANGELOG.md
) entry. Thanks for fixing this. 🙂
ee2ed87
to
bd39689
Compare
ty! Added changelog. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #5006 +/- ##
==========================================
+ Coverage 93.39% 93.92% +0.53%
==========================================
Files 46 310 +264
Lines 712 8138 +7426
Branches 120 1633 +1513
==========================================
+ Hits 665 7644 +6979
- Misses 47 494 +447
|
![snyk-top-banner](https://redirect.github.com/andygongea/OWASP-Benchmark/assets/818805/c518c423-16fe-447e-b67f-ad5a49b5d123) <h3>Snyk has created this PR to upgrade @opentelemetry/resources from 1.27.0 to 1.28.0.</h3> :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project. <hr/> - The recommended version is **1 version** ahead of your current version. - The recommended version was released **a month ago**. <details> <summary><b>Release notes</b></summary> <br/> <details> <summary>Package name: <b>@opentelemetry/resources</b></summary> <ul> <li> <b>1.28.0</b> - <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/releases/tag/semconv%2Fv1.28.0">2024-11-18</a></br><h2>1.28.0</h2> <h3>🚀 (Enhancement)</h3> <ul> <li>feat: update semantic conventions to 1.28.0 <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5181" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5181/hovercard">#5181</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trentm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/trentm">@ trentm</a></li> </ul> <h3>📚 (Refine Doc)</h3> <ul> <li>chore: Improve documentation on entry-points (top-level and "incubating") and on deprecations. <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/5025" data-hovercard-type="issue" data-hovercard-url="/open-telemetry/opentelemetry-js/issues/5025/hovercard">#5025</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trentm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/trentm">@ trentm</a></li> </ul> <h3>🏠 (Internal)</h3> <ul> <li>chore: Update the comments of some deprecated constants to point to the currently relevant replacement constant, if any. <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5160" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5160/hovercard">#5160</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trentm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/trentm">@ trentm</a></li> <li>chore: Minor improvements to formatting of comments. <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5100" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5100/hovercard">#5100</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trentm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/trentm">@ trentm</a></li> </ul> </li> <li> <b>1.27.0</b> - <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/releases/tag/v1.27.0">2024-10-23</a></br><h2>1.27.0</h2> <h3>🚀 (Enhancement)</h3> <ul> <li>feat: add processors for adding session.id attribute to spans and logs <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/4972" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/4972/hovercard">#4972</a></li> </ul> <h3>🐛 (Bug Fix)</h3> <ul> <li>fix(sdk-trace-base): avoid keeping non-string <code>status.message</code> on <code>Span#setStatus()</code> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/4999" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/4999/hovercard">#4999</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pichlermarc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/pichlermarc">@ pichlermarc</a></li> <li>fix(sdk-metrics): Add missing catch and handle error in promise of <code>PeriodicExportingMetricReader</code> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5006" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5006/hovercard">#5006</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jj22ee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/jj22ee">@ jj22ee</a></li> <li>fix(opentelemetry-core): confusing log extract of composite propagator <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5017" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5017/hovercard">#5017</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rv2673/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/rv2673">@ rv2673</a></li> <li>fix(propagator-aws-xray-*): move propagators back to contrib repository <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/4966" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/4966/hovercard">#4966</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pichlermarc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/pichlermarc">@ pichlermarc</a> <ul> <li>The <a href="https://redirect.github.com/open-telemetry/opentelemetry-specification/blob/6672dbc97ddeb34f36c020a0f0a30323c8bc4d95/specification/context/api-propagators.md?plain=1#L354-L356">specification</a> prohibits hosting these packages in the core repository</li> <li><code>@ opentelemetry/propagator-aws-xray</code> is now located in <a href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib">open-telemetry/opentelemetry-js-contrib</a></li> <li><code>@ opentelemetry/propagator-aws-xray-lambda</code> is now located in <a href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib">open-telemetry/opentelemetry-js-contrib</a></li> </ul> </li> </ul> <h3>🏠 (Internal)</h3> <ul> <li>deps: set <code>@ opentelemetry/api</code> dependency min version to 1.3.0 in <code>examples</code>, <code>experimental/packages</code>, <code>integration-tests</code> and <code>selenium-tests</code><br> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/4992" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/4992/hovercard">#4992</a></li> <li>refactor(sdk-metrics): replace <code>MetricsAttributes</code> with <code>Attributes</code> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5021" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5021/hovercard">#5021</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/david-luna/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/david-luna">@ david-luna</a></li> <li>refactor(instrumentation-http): replace <code>SpanAttributes</code> and <code>MetricsAttributes</code> with <code>Attributes</code> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5023" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5023/hovercard">#5023</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/david-luna/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/david-luna">@ david-luna</a></li> <li>chore(exporter-zipkin): remove usages of Span constructor <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5030" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5030/hovercard">#5030</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/david-luna/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/david-luna">@ david-luna</a></li> <li>test(instrumentation-http): remove usages of <code>new Span</code> in tests <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5035" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5035/hovercard">#5035</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/david-luna/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/david-luna">@ david-luna</a></li> </ul> </li> </ul> from <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/releases">@opentelemetry/resources GitHub release notes</a> </details> </details> --- > [!IMPORTANT] > > - Check the changes in this PR to ensure they won't cause issues with your project. > - This PR was automatically created by Snyk using the credentials of a real user. --- **Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs._ **For more information:** <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI3NmZlY2E0OC0xYzFkLTRiOTItOGMzNC1lYmNkNzM3ODg3MTciLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijc2ZmVjYTQ4LTFjMWQtNGI5Mi04YzM0LWViY2Q3Mzc4ODcxNyJ9fQ==" width="0" height="0"/> > - 🧐 [View latest project report](https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17?utm_source=github&utm_medium=referral&page=upgrade-pr) > - 📜 [Customise PR templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template) > - 🛠 [Adjust upgrade PR settings](https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17/settings/integration?utm_source=github&utm_medium=referral&page=upgrade-pr) > - 🔕 [Ignore this dependency or unsubscribe from future upgrade PRs](https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17/settings/integration?pkg=@opentelemetry/resources&utm_source=github&utm_medium=referral&page=upgrade-pr#auto-dep-upgrades) [//]: # 'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@opentelemetry/resources","from":"1.27.0","to":"1.28.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"76feca48-1c1d-4b92-8c34-ebcd73788717","prPublicId":"76feca48-1c1d-4b92-8c34-ebcd73788717","packageManager":"npm","priorityScoreList":[],"projectPublicId":"12a8a5f5-3e19-438c-8280-eb8f4ee06d17","projectUrl":"https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17?utm_source=github&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":1,"publishedDate":"2024-11-18T10:41:43.016Z"},"vulns":[]}'
…8.0 (#12) ![snyk-top-banner](https://redirect.github.com/andygongea/OWASP-Benchmark/assets/818805/c518c423-16fe-447e-b67f-ad5a49b5d123) <h3>Snyk has created this PR to upgrade @opentelemetry/semantic-conventions from 1.27.0 to 1.28.0.</h3> :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project. <hr/> - The recommended version is **1 version** ahead of your current version. - The recommended version was released **a month ago**. <details> <summary><b>Release notes</b></summary> <br/> <details> <summary>Package name: <b>@opentelemetry/semantic-conventions</b></summary> <ul> <li> <b>1.28.0</b> - <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/releases/tag/semconv%2Fv1.28.0">2024-11-20</a></br><h2>1.28.0</h2> <h3>🚀 (Enhancement)</h3> <ul> <li>feat: update semantic conventions to 1.28.0 <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5181" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5181/hovercard">#5181</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trentm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/trentm">@ trentm</a></li> </ul> <h3>📚 (Refine Doc)</h3> <ul> <li>chore: Improve documentation on entry-points (top-level and "incubating") and on deprecations. <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/issues/5025" data-hovercard-type="issue" data-hovercard-url="/open-telemetry/opentelemetry-js/issues/5025/hovercard">#5025</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trentm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/trentm">@ trentm</a></li> </ul> <h3>🏠 (Internal)</h3> <ul> <li>chore: Update the comments of some deprecated constants to point to the currently relevant replacement constant, if any. <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5160" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5160/hovercard">#5160</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trentm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/trentm">@ trentm</a></li> <li>chore: Minor improvements to formatting of comments. <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5100" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5100/hovercard">#5100</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/trentm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/trentm">@ trentm</a></li> </ul> </li> <li> <b>1.27.0</b> - <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/releases/tag/v1.27.0">2024-08-28</a></br><h2>1.27.0</h2> <h3>🚀 (Enhancement)</h3> <ul> <li>feat: add processors for adding session.id attribute to spans and logs <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/4972" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/4972/hovercard">#4972</a></li> </ul> <h3>🐛 (Bug Fix)</h3> <ul> <li>fix(sdk-trace-base): avoid keeping non-string <code>status.message</code> on <code>Span#setStatus()</code> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/4999" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/4999/hovercard">#4999</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pichlermarc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/pichlermarc">@ pichlermarc</a></li> <li>fix(sdk-metrics): Add missing catch and handle error in promise of <code>PeriodicExportingMetricReader</code> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5006" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5006/hovercard">#5006</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jj22ee/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/jj22ee">@ jj22ee</a></li> <li>fix(opentelemetry-core): confusing log extract of composite propagator <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5017" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5017/hovercard">#5017</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/rv2673/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/rv2673">@ rv2673</a></li> <li>fix(propagator-aws-xray-*): move propagators back to contrib repository <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/4966" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/4966/hovercard">#4966</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pichlermarc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/pichlermarc">@ pichlermarc</a> <ul> <li>The <a href="https://redirect.github.com/open-telemetry/opentelemetry-specification/blob/6672dbc97ddeb34f36c020a0f0a30323c8bc4d95/specification/context/api-propagators.md?plain=1#L354-L356">specification</a> prohibits hosting these packages in the core repository</li> <li><code>@ opentelemetry/propagator-aws-xray</code> is now located in <a href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib">open-telemetry/opentelemetry-js-contrib</a></li> <li><code>@ opentelemetry/propagator-aws-xray-lambda</code> is now located in <a href="https://redirect.github.com/open-telemetry/opentelemetry-js-contrib">open-telemetry/opentelemetry-js-contrib</a></li> </ul> </li> </ul> <h3>🏠 (Internal)</h3> <ul> <li>deps: set <code>@ opentelemetry/api</code> dependency min version to 1.3.0 in <code>examples</code>, <code>experimental/packages</code>, <code>integration-tests</code> and <code>selenium-tests</code><br> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/4992" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/4992/hovercard">#4992</a></li> <li>refactor(sdk-metrics): replace <code>MetricsAttributes</code> with <code>Attributes</code> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5021" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5021/hovercard">#5021</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/david-luna/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/david-luna">@ david-luna</a></li> <li>refactor(instrumentation-http): replace <code>SpanAttributes</code> and <code>MetricsAttributes</code> with <code>Attributes</code> <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5023" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5023/hovercard">#5023</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/david-luna/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/david-luna">@ david-luna</a></li> <li>chore(exporter-zipkin): remove usages of Span constructor <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5030" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5030/hovercard">#5030</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/david-luna/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/david-luna">@ david-luna</a></li> <li>test(instrumentation-http): remove usages of <code>new Span</code> in tests <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/pull/5035" data-hovercard-type="pull_request" data-hovercard-url="/open-telemetry/opentelemetry-js/pull/5035/hovercard">#5035</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/david-luna/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://redirect.github.com/david-luna">@ david-luna</a></li> </ul> </li> </ul> from <a href="https://redirect.github.com/open-telemetry/opentelemetry-js/releases">@opentelemetry/semantic-conventions GitHub release notes</a> </details> </details> --- > [!IMPORTANT] > > - Check the changes in this PR to ensure they won't cause issues with your project. > - This PR was automatically created by Snyk using the credentials of a real user. --- **Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs._ **For more information:** <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiIzMTNmOWJhMy0yZmY0LTQ3Y2YtYjQ0Yi05YTg5NjY4NTFkMTgiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjMxM2Y5YmEzLTJmZjQtNDdjZi1iNDRiLTlhODk2Njg1MWQxOCJ9fQ==" width="0" height="0"/> > - 🧐 [View latest project report](https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17?utm_source=github&utm_medium=referral&page=upgrade-pr) > - 📜 [Customise PR templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template) > - 🛠 [Adjust upgrade PR settings](https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17/settings/integration?utm_source=github&utm_medium=referral&page=upgrade-pr) > - 🔕 [Ignore this dependency or unsubscribe from future upgrade PRs](https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17/settings/integration?pkg=@opentelemetry/semantic-conventions&utm_source=github&utm_medium=referral&page=upgrade-pr#auto-dep-upgrades) [//]: # 'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"@opentelemetry/semantic-conventions","from":"1.27.0","to":"1.28.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"313f9ba3-2ff4-47cf-b44b-9a8966851d18","prPublicId":"313f9ba3-2ff4-47cf-b44b-9a8966851d18","packageManager":"npm","priorityScoreList":[],"projectPublicId":"12a8a5f5-3e19-438c-8280-eb8f4ee06d17","projectUrl":"https://app.snyk.io/org/newkdr/project/12a8a5f5-3e19-438c-8280-eb8f4ee06d17?utm_source=github&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":1,"publishedDate":"2024-11-20T20:31:21.818Z"},"vulns":[]}'
Which problem is this PR solving?
PeriodicExportingMetricReader
'sdoExport
method will throw an Error if metrics export failed, and is expected to be caught within this try-catch.This method is called in two locations within the same
if-else
, but is only caught/handled in theelse
while not being caught/handled in theif
. Although theif-else
is within atry-catch
, one of thedoExport
invocations is called within a Promise.then(), which isn't being caught right nowLocation 1 (
doExport
's error is NOT caught):opentelemetry-js/packages/sdk-metrics/src/export/PeriodicExportingMetricReader.ts
Lines 141 to 145 in 6515ed8
Location 2 (
doExport
's error is caught):opentelemetry-js/packages/sdk-metrics/src/export/PeriodicExportingMetricReader.ts
Line 147 in 6515ed8
This PR ensures that
doExport
in Location 1 is caught.Short description of the changes
doExport
in thethen
statementType of change
Please delete options that are not relevant.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Test in my application involving
PeriodicExportingMetricReader
with small metric export interval and many resource detectors (which causesresourceMetrics.resource.asyncAttributesPending
to be true)Checklist: