CDN
Sentry supports loading its JavaScript SDK via a CDN. Generally we suggest using our npm package (@sentry/browser
) as utilizing a CDN create scenarios where Sentry is unable to load due to networking issues or common extensions like ad blockers. If you must use a CDN, take a look at loading Sentry lazily with our JS loader.
<script
src="https://browser.sentry-cdn.com/8.24.0/bundle.min.js"
integrity="sha384-7KtWflhUrm3yHehS4Ve9sFWf2DzaRFe0WHTTKYRPYuaIacyIttUqDxozcoZur4eP"
crossorigin="anonymous"
></script>
Performance Bundle
To use Sentry's performance tracing an alternative bundle is needed. This allows us to keep the filesize down for users who only need error monitoring.
<script
src="https://browser.sentry-cdn.com/8.24.0/bundle.tracing.min.js"
integrity="sha384-JJJw4DbjOsDg3bP8VddEg9VZRjwjIVHXUGl7vcAdg8EmxN7gvZkov6/1NuH/4YId"
crossorigin="anonymous"
></script>
You only need to load bundle.tracing.min.js
, which provides both error and performance monitoring.
The most important thing to note here is that Sentry.Integrations
has been made available, and can be referenced in your call to Sentry.init
:
Sentry.init({
dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",
// this assumes your build process sets "npm_package_version" in the env
release: "my-project-name@" + process.env.npm_package_version,
integrations: [new Sentry.Integrations.BrowserTracing()],
// We recommend adjusting this value in production, or using tracesSampler
// for finer control
tracesSampleRate: 1.0,
});
Available Bundles
A variety of bundles are provided which are optimized for Sentry's various integrations.
File | Integrity Checksum |
---|---|
browserprofiling.debug.min.js | sha384-TUfLPous++FH2QVqSNuYXHLt9kCDrUWYOwQRV72RBzk6L9B4SDdUxc1EegdkHi1s |
browserprofiling.js | sha384-GT9kzD2XZDKwgcRLRdKw8+OIgD2n9b0McSbHpW071VIqOkVYSqENzsKAyMwWA2dJ |
browserprofiling.min.js | sha384-uE6YxRSn/bwiYPaf9HB1/3ASAwurdsD5sE0eb2fkM9bYvXLzbBNgrSnfvoqQAC2H |
bundle.debug.min.js | sha384-CKfJscj59JhneFA4ej1KnPPfvvLQjAjF9KWGdB+66dl+LkPjLBccledq3bt8IZva |
bundle.feedback.debug.min.js | sha384-3cAKygA7StcTPmpbNiVoY+fUCZ//K1tmvm4Z+Ha8z22KS1+rbXdr9H4C7OFwpzQY |
bundle.feedback.js | sha384-rJBjNA8FipN7KmfhfKFPNSsjgjD/DLt9LoCPsa1N7vqZNySwiRuysqkk2pDOxJ8D |
bundle.feedback.min.js | sha384-PUl1CMVjEjIkoI0q7J8VJSysvMxmhtAXlDa3szryxA2joNlgeICOZ4gnVeFI80yA |
bundle.js | sha384-JOSfVR5KLe0FBlgIVmEZ/5C96sPB+SyZ2MGXNBbu7wGs08r9/JDiD9BYvdgm0YYy |
bundle.min.js | sha384-7KtWflhUrm3yHehS4Ve9sFWf2DzaRFe0WHTTKYRPYuaIacyIttUqDxozcoZur4eP |
bundle.replay.debug.min.js | sha384-HxMK4PdMo4/xVDAVZywFkwWDVRE9RzBGV1PaAt5pfDb+PKK+9tIIrVu8TXE1wsjs |
bundle.replay.js | sha384-ckFTiDA5fhza/xR8t4FWiqa9NjPxKrFKmyVcH98tpbiwnQcZ/2c2x0KnLKuvuZ42 |
bundle.replay.min.js | sha384-hcJkA6udaEjcWRsHYWrFHXrfI90QSz3JTrrHii9qp2wnCdXXbLX+olBVILsTlVqf |
bundle.tracing.debug.min.js | sha384-faYTz1Lsp5RWbB07Dvq+4Rd0d53zKIJ8qHO63NQJBkZazCiLzd+hd+Q7aa244v9d |
bundle.tracing.js | sha384-/lxoQOjDofRm8/8zXpHJfQ5+okp1fAjJZmWy1bCtsrytOjqbKCdF0wPWhRIK4gkf |
bundle.tracing.min.js | sha384-JJJw4DbjOsDg3bP8VddEg9VZRjwjIVHXUGl7vcAdg8EmxN7gvZkov6/1NuH/4YId |
bundle.tracing.replay.debug.min.js | sha384-2ICw40DwWC3OvKlxCKv3HolEBALefWbkfqO+SUa70bjXPngqm0OrXWIzpjiIGDlU |
bundle.tracing.replay.feedback.debug.min.js | sha384-X1/IsMwInf0phel16h4N/f19bGTCleIRA4FemHxszk3XvbXA/cDBhtnxPxKZgVIk |
bundle.tracing.replay.feedback.js | sha384-tFDxX87Zb4rTwWmimzqjOyyZtKc/+4PC811rRvHTF2BKkc6cEj7WYbHUNdjTZ3v9 |
bundle.tracing.replay.feedback.min.js | sha384-0GCkAsgDcjK2qiRpdp8xjGvE2OljdeGBDOilJ2s72zzeUSjiT5pA/WkX0yNv/poA |
bundle.tracing.replay.js | sha384-c1b1m3T24FdPd7GSp8JmShbnQRZZQIIDM8Eg+Jeud9hlwKj64h2ivTuVmIZhsx/X |
bundle.tracing.replay.min.js | sha384-eEn/WSvcP5C2h5g0AGe5LCsheNNlNkn/iV8y5zOylmPoOfSyvZ23HBDnOhoB0sdL |
captureconsole.debug.min.js | sha384-J4sG3YL7oHEN8yUvrISUoKI6RZ1hSmpjuo/5/fTgjesMFfOSvOnARJcBHTWPzeFS |
captureconsole.js | sha384-jP7SjF11v34Ee+SRL8UweZaTeaCfsJKOLNXtkPB3RbMlWj3dRumCBSn2tijQyL4x |
captureconsole.min.js | sha384-4ytgn9U5jlII3rnKqQ2zJClGV0p5IrUFjXoT2PD+4Vxw9WJA6uDQuFUE7/nwnzpk |
contextlines.debug.min.js | sha384-t4TJRLovdyoO9VA73mCRmowleVS2Fc+Jil8955Wy6K5NgFas+cRQVmrnsLEYHg+k |
contextlines.js | sha384-M3TAAek5nCnnDkvgk34owt/5xbXAD1ONuPQRYpd+6QIDPTUIr4RL/B7DacX2p//G |
contextlines.min.js | sha384-oXfyKTI/CEyIK54FrOwlY6Qe/8R/rY+YTp1/rTbksffoxG+SCX6un348dlQp+Jw9 |
debug.debug.min.js | sha384-VaG02FDHTNfo3ev1CA2xfC0+HO6+T6grwbWtgZb7QSC3Iw7Hd9tokp1YY/x7o0H4 |
debug.js | sha384-Rx+OvfKCQicrpxXoQhxzcD1su/3DLnPWSgDbrupfQxc59+K9r7m/DNyk78hMFCcY |
debug.min.js | sha384-suNrCeMTanaOdmvpSYB0VAgQXeXNXHHBHPkMIKdrR+b5e2/0LHPrdvsMPElCd+El |
dedupe.debug.min.js | sha384-UIq5WmxtkgcYlmGgbcu6eb8cjqayCahxqcDUdhpIu1yE4tfej1e0ehtliAPRYqEM |
dedupe.js | sha384-hP7ubDu5P3IdhyWwvlKVvSb6/+y/OIy9G63mBIAC31Mdpij8h6pQ8tsZUgO/tZUV |
dedupe.min.js | sha384-LSKW0//bDBMhg+S7dCCRg0yC2VfeP4sOIgajkxXUOvswrZC9xlv7ocFFOze4mi8s |
extraerrordata.debug.min.js | sha384-B5xs9uiEMX/fJtvrhQbLS98IDyc7yBHIkRvw+Nltig5kWhFhkxSHbERrDFyBYqTi |
extraerrordata.js | sha384-Y8/SfInouv22LLAnvEw30Ov9ydDcqDs8hJ4T0VpmPyJKj4Xw33nbqKSLZ7rvznyd |
extraerrordata.min.js | sha384-SQHNqOvHjY88Viee1ZI4+i47aWxrsNPyFIP4Lm32whMYVVzog2jUgohHe+n8NN1A |
feedback-modal.debug.min.js | sha384-t4Am4JDI4h0kTRj07TTSh8wrVKnXY79RY19755WokKqeSdFiCfhaA52bCYpPm80I |
feedback-modal.js | sha384-4uYYn8br8JJXUtSEmO5ZPOCOJsNjEy/MYDL21QOWPXcMbka5skjcycT0qEsOyxnn |
feedback-modal.min.js | sha384-YLfJNNYpsEL74Mi+vHihMaKob8vnwRpy31sfIYbvjbkkyqXT6mTXYELfq0Uu9WfA |
feedback-screenshot.debug.min.js | sha384-VfnfnnjYWFElHRaass2N6LPS5SHdUnvRAuEnp4JT297uutYXs/7F+pfLRVEEM9Z6 |
feedback-screenshot.js | sha384-SXFjcUqmvcbiaTuLaczTs6Z0+QO10pIhYRUREw3Z71q8kWBuhFIXGeOPJPtCycJ6 |
feedback-screenshot.min.js | sha384-hw0cQwmc21grbO40bkiA6KZKNMUIFfdi4wkhX9yaTC45DlrJQyeL+xeS+sl7Ep7R |
feedback.debug.min.js | sha384-7kknhcpA4Mk3fyeEoAxiYSjHHIyXFAisx805uZC7htvWSs7fFY6pGZBva0vgGN6r |
feedback.js | sha384-S77CQCB0kgszkKv78oDt+D/E/r+zwdboMJX5EXVRHzABCJ/KIXHimiaKPJ3ng7Ia |
feedback.min.js | sha384-CJbhBQgYVsNWUJUP+ghML0/+btEgH3lpypTNNoi27qGxcUlM+nB4AJvE4ONbH5TB |
httpclient.debug.min.js | sha384-xGN/WXgplQ1hr/4OCXz9va55aoJ9XlCwD9UFj0+v/jTKtqQ3H5oBssaIhRH66NNy |
httpclient.js | sha384-tVg/g5q6g/yRiQSErdO3F1+LTYZUaYAnsFO6O9Qfmn4DuGTZOHD0Cjs+2lmLPDGk |
httpclient.min.js | sha384-kJ5a5V6pxQiqp3ndD453TnifwRykUObAjwb4lol/YAPIVCUvoNFvutB6Egu/X+ZD |
replay-canvas.debug.min.js | sha384-EXU4aZZa9AVYg5R0ra3htMOXMw8SC5reQXvO6ImlnnePZsIjjF/7kNnYQaYB4cA8 |
replay-canvas.js | sha384-azZS68ozqkCSOFj2qhXG+WVAstR9+xRoemRGDU+M9+wPM8jK4mHdJ7Gid19QiKRP |
replay-canvas.min.js | sha384-gSFCG8IdZobb6PWs7SwuaES/R5PPt+gw4y6N/Kkwlic+1Hzf21EUm5Dg/WbYMxTE |
reportingobserver.debug.min.js | sha384-Ht5gjKOe6LC5T3me4Z4+IqwVyGAZQdTxHgLXToWHd7WSPIuDAw9hVPLKYvD3OGMf |
reportingobserver.js | sha384-/kd34ZIpA02A6GFgqfIfoBt25bmxMIb3SoupDbByc+dcvWvLMaRtsab7PjbgSbU6 |
reportingobserver.min.js | sha384-ougIQfYzNROAzzLgI78hhYXSZGdPu0/y7mQcE+mb/mLjIWFnP6g984hyK44bbal3 |
rewriteframes.debug.min.js | sha384-InSqT4Wpb9oTnC5TH+iZLmKqqBIO8O02B4Oh9zakquT40TYle4r/dG8pUiy8NeDO |
rewriteframes.js | sha384-6520WZbuILRpWh0juvnUknaSjPXKM2Kq4gkajceiA3vCHBo4vE/94pyR2EXJG2D+ |
rewriteframes.min.js | sha384-XjG1/Z/D35Re0eOor97i/Y6urMz5CAoEVPfJHo8q3QXueY1sTnX4ac3M263jZRte |
sessiontiming.debug.min.js | sha384-ZMK3yCUXrlhX1gcpJXPsorVPMdnofuPCrCh1FZdL616G8J7b6d6O7r9DwvdgE/1c |
sessiontiming.js | sha384-ojc0GAWD/wTcCqwnndOT/ZHkBYBQ7nidauyXXSCaQl2emSaX8xOIYlg/UnWGP55d |
sessiontiming.min.js | sha384-JK5DgGVAFhJGnmMPYOHQHO53QtE4YjlzZzYiz1wsyrlL/X1C8VGmJF5QXgOKQsGQ |
Additional Configuration
Using defer
If you use the defer
script attribute, we strongly recommend that you place the script tag for the browser SDK first and mark all of your other scripts with defer
(but not async
). This will guarantee that that the Sentry SDK is executed before any of the others.
Without doing this you will find that it's possible for errors to occur before Sentry is loaded, which means you'll be flying blind to those issues.
Content Security Policy
If you have a Content Security Policy (CSP) set up on your site, you will need to add the script-src
of wherever you're loading the SDK from, and the origin of your DSN. For example:
script-src: https://browser.sentry-cdn.com
connect-src: *.sentry.io
- Package:
- npm:@sentry/browser
- Version:
- 8.24.0
- Repository:
- https://github.com/getsentry/sentry-javascript