getsentry / sentry-javascript

Official Sentry SDKs for JavaScript
https://sentry.io
MIT License
7.98k stars 1.57k forks source link

Sentry CDN is now blocked #1421

Closed astanciu closed 6 years ago

astanciu commented 6 years ago

https://github.com/lightswitch05/hosts/blame/b3369bd0356ca2bde7ca99393796f260e92234b3/ads-and-tracking.txt#L361

This causes it to be blocked by many dns providers, pihole, add blockers, etc... that use this list.

FYI

dcramer commented 6 years ago

Your best bet is to use the npm module and host it on your own domain. Unfortunately we’re never going to stop the fan club that is “block all trackers”. We’ve worked to get it removed from some lists but people generally lump sentry in with advertising (nope) or analytics (maybe).

I’d also note that many of these lists have very limited use.

grobmeier commented 5 years ago

@dramer it would be fantastic if this was visible on the raven website. I was including ravenjs in a angularjs 1 (yes, i know) project and the website recommended me to use the cdn, which I did. However, some customers reported failures. Apparantely they have adblockers installed, at least it looks like this from the screenshots.

My suggestion is to recommend the use of local files instead of the CDN.

dcramer commented 5 years ago

@grobmeier there's a lot of major positive about using our CDN instead of a local bundle, the last of which is our edge distribution. Long term our CDN will also push configuration down to the client which improves data scrubbing/rate limiting/etc. There's obviously the caveat, but its ultimately a problem that's hard to avoid. If adblockers wanted to they could just block the network requests to sentry.io (some do already), so you're still in trouble.

grobmeier commented 5 years ago

@dcramer my customers don't care about any positive things which I might have using your CDN. I need to make sure my software works all the time; so I certainly do hope Sentry will continue to support locally hosted files, otherwise I will need add extra work to check if Raven/Sentry actually has been loaded or not, before using it. If a request is being blocked - no issue. If Sentry fails - big trouble. Probably provide a mock implementation, in case the download of Raven fails so I don't have to write one. Cheers!

dcramer commented 5 years ago

How would you deal with any other service failing? You should simply check for presence before calling a global.

window.Raven && Raven
grobmeier commented 5 years ago

Yes and I would have to do it with each and any call to the Raven lib. That's a lot of if/else for a blocked CDN

dcramer commented 5 years ago

And what about the situations where your customer is on bad network? Where a DNS issue happens? You need to deal w/ this problem with external dependencies generically if you're embedding them from another source. My point is that this isn't a new problem.

I'm closing this thread as there's nothing actionable that will come of this and it notifies a lot of people.