-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
[Call for Feedback] Roadmap to Sentry JavaScript SDK v7 #2817
Comments
My biggest gripe was always that my error logging library is one of my largest third party libraries. I've often considered lazy loading Sentry 5-10 seconds after first page load to get a better page speed score so I’m very excited you are addressing this ❤️ |
For me the |
Hi,
I'm +1'ing this, in case this changes anything. And I'll add this: in my web app, Sentry initialization takes 30ms (on a fast computer), which is way too much for a diagnostics logger, and in the React Native app, it's significantly worse, because its bundler (Metro) is not capable of tree shaking, so Sentry imports a whopping 78 files, and also measurably contributes (a few %) to startup time. |
Hi, just some data from React Native: This is profiled on an iPhone X. Sentry takes a whopping 54ms at launch - ~40 just to import the bulk of the files, ~15 to initialize JS code. Add to that ~30ms blocking the main thread to initialize native side, and there's some time unaccounted for in lexing/parsing Sentry's JS (of which there's a lot) - i suspect 5-15ms, but haven't measured precisely. In total - 90-100ms - that's 15% of the total time to launch my app! |
Great question! I'd like to see more flexible logging options (or how to docs) for production apps where you don't want to expose the user to any console.log's, but you do want them captured as breadcrumbs. This could solve for issues like getsentry/sentry#12618 and #1883. Maybe Sentry breadcrumbs could integrate with a logging library like debug or loglevel. This seems like a common use case for production apps, and maybe it's supported with some DIY approaches already, but it's not really clear if this is possible based on the current docs. (Or if it is and I somehow missed it, then I'd be grateful any tips). Thanks! |
Hi, i have a recommendation about initialization of SDK. Instead of calling Sentry.init with options, SDK can be automatically check an SentryOptions like named global variable to fetch DSN id and other options. We are dynamically loading JS files when required and It's hard to track load event of bundle js in cross domain requests or networking issues. Automatically checking this variable would helpful to this and no need to exclusively call to init function. |
SDK failed to send event indication I'd like to have some sort of indication that the This would be really helpful for offline-first apps (progressive web apps). There are situations when browser is in online state, but network request fails due to flaky connection/ timeout (ie. travelling trough areas with poor network coverage). There is an Offline integration however it relies on the Online and Offline events which is not enough to cover that case. Network errors may cause application that doesn't consider such situation to throw errors which fail to be logged by Sentry and just disappear in the void. |
I have a project that is a PWA and I don't get events when the app is offline, and there is no way to do a background sync in the service worker, because is not registered for the sentry ingest domain. |
@edelvalle // service-worker.js
import { registerRoute } from 'workbox-routing'
import { NetworkOnly } from 'workbox-strategies'
import { BackgroundSyncPlugin } from 'workbox-background-sync'
registerRoute(
new RegExp('^https://[^\\.]+\\.ingest\\.sentry\\.io/api/.*$'),
new NetworkOnly({
plugins: [
new BackgroundSyncPlugin('project-name/sentry-event-queue', {
maxRetentionTime: 7 * 24 * 60, // 7 days
})
],
}),
'POST'
) |
Hi, love to see |
Why not drop IE11 support either? Many large sites, including Microsoft, will end support for this browser by the end of the year. Of course the question is if this really affects the size of the library. |
@kamilogorek any idea when v6 might be coming? I also agree with @xr0master and think IE support should be dropped entirely including IE11 in the new version. |
// This is not nice, as it doesn't get auto-completion when importing
import * as Sentry from '@sentry/browser'
// This is better, but has given me problems on Sentry 5.x
import { captureException } from '@sentry/browser'
|
Support for health. |
Are there plans for using AsyncLocalStorage on Node versions that support it? |
So we shipped |
It would be awesome to expose the framework integrations separately from |
react-router integration to support loading and unloading a secondary react app inside the same document with lazy invocation, using it's own router and more specific routes |
One of my biggest blocker for fully adopting Sentry for tracing in my org is missing integration with the OpenTelemetry ecosystem. |
Hey guys, do we roughly have an idea when Sentry JavaScript SDK v7 is going to release? We need this fix badly:
thanks! |
We are adding Sentry to our React apps and have run into an issue that prevents multiple clients from working on the same page (why is there only a single Carrier / Hub on the global / window and why do events only go to the last-added Client / Scope)? It's good to see that this is on your roadmap for v7, but since this may not come out for a while (only 12% complete in last 6 months) are there any recommended workarounds for this? We are investigating possibly creating customized versions of the various Integrations like Also, not sure if this is currently possible, but it would be really helpful if errors events could be scoped to either the entire page or just specific sub-sections. Right now we're thinking we'll have to manually inspect the DOM inside our custom Integration to see if the target event is a child of the specified ancestor node, which is not ideal. Is there a better way to do this? |
We are aiming to release v7 early Q2. This 12% meter is not used in any way, and we only use it to categorize some issues, so no worries :) Reworking integrations/multiple-clients experience and bundle size are the main areas of focus, and they both will definitely be solved. |
react-router 6 intergration, maybe |
On our side we deploy our apps using CDN. |
That raises an interesting point. Would be nice if there was some modular part that we could load that "just" catches the errors, queueing them for processing and sending off to the server, and then at a later point in time (whenever we want to, e.g. |
A few things related to noise:
|
@EtienneBruines This separate sentry bundle could even be included in a service worker |
I was under the impression that it already supports health: https://docs.sentry.io/platforms/javascript/configuration/releases/#release-health ...but I can't make it work in our stand-alone environment. It's just not showing up even though I'm sending trace/sessions. Are you having the same problem as me? This is of course not a support thread, but if health indeed is missing then I would love for it to happen in v7 as well. (Sorry for bloating the thread) |
And if this is not an option but it would drastically reduce size, perhaps an alternative would be to make IE11 support optional by means of a plugin/integration? |
It's not added they really need to update their advertising to show it's not available yet. |
Support for react router v6 would be nice. The top level router in v6 no longer takes a |
Health is already released in JS SDK and is coming to Node.js soon (it's already opt-in, which we play around with): https://blog.sentry.io/2021/01/27/track-session-data-with-sentry-for-javascript |
@kamilogorek Thanks, are you sure it's on self-hosted Sentry yet? We're running self-hosted |
@prewk That's a couple months out of date. I did a quick check and I'm almost positive that self-hosted should be able to process release health info. I would say try upgrading and if that doesn't resolve it then take it up in the forums/discord/onpremise repo. |
@kamilogorek What's the ETA on releasing v7 with a drastically reduced bundle size? The sentry bundle size is currently our biggest gripe with Sentry and it's measurably impacting our website's performance. |
Sentry Node pretty serious flaws with async-await. In servers like Next that support async-await in API routes, Sentry doesn't properly track the call stack and all logs/breadcrumbs pollute each other when multiple requests are being processed at the same time. I believe this is due to the dependency on the deprecated node |
@jpike88 you already commented on how inconvenient the SDK is multiple times within one hour. We hear you, and we are working on it :) |
Support for Vue 3 👀 |
OpenTelemetry support would be great. The go lib has something already: https://levelup.gitconnected.com/golang-opentelemetry-and-sentry-the-underrated-distributed-tracing-stack-69dcda886ffe |
Hello! Just wondering if there is any update on the timeline for when v7 can be expected? |
This issue has gone three weeks without activity. In another week, I will close it. But! If you comment or otherwise update it, I will reset the clock, and if you label it "A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀 |
lol; guess version 7 isn't coming |
Hey folks, I know it's been a long while, but we've finally got a plan for what the major bump release will look like: #4240. Please leave feedback for the plan in that issue! No timeline for this atm, but we will be actively working on this going forward. For those concerned with bundle size/better treeshaking support, we've created a seperate milestone to track that: https://github.com/getsentry/sentry-javascript/milestone/11 |
Just an update from another dev team. Logic is simple here. |
¡Hola amigos!
Sentry helps every developer diagnose and fix their code. We are planning to start work on a new major version of the JavaScript SDK and we want to make it our best piece of software to date.
However, to do that, we need some feedback from you.
What are the biggest pain points when using the SDK?
What features are you missing the most?
What would you like to be changed?
We already plan to tackle some of the issues listed below:
Help us help you, and let us know your thoughts! We'll make sure to answer all the comments, so every voice matters.
Cheers!
Kamil
The text was updated successfully, but these errors were encountered: