Browser telemetry SDK for monitoring page views, errors, web vitals, and HTTP requests with OpenTelemetry integration
Complete browser compatibility information for Dash0 Web SDK.
The SDK requires the following browser APIs:
fetch API: For telemetry transmissionlocalStorage or sessionStorage: For session persistence (falls back to in-memory if unavailable)Performance API: For navigation timing and web vitalsPromise: For asynchronous operationsURL and URLSearchParams: For URL parsing| Browser | Minimum Version | Support Level | Notes |
|---|---|---|---|
| Chrome | 90+ | Full | All features supported |
| Firefox | 88+ | Full | All features supported |
| Safari | 14+ | Full | All features supported |
| Edge | 90+ | Full | All features supported |
| Opera | 76+ | Full | All features supported |
| Mobile Chrome | 90+ | Full | All features supported |
| Mobile Safari | 14+ | Full | All features supported |
| IE11 | - | Not Supported | Missing required APIs |
✅ Full Support:
❌ Limited Support:
Impact: Storage APIs may be unavailable
Behavior:
Detection:
function isPrivateBrowsing() {
try {
localStorage.setItem("test", "test");
localStorage.removeItem("test");
return false;
} catch {
return true;
}
}Impact: May block telemetry transmission
Behavior:
Mitigation: Use first-party endpoints when possible
Impact: May block inline scripts or external resources
Required CSP Directives:
script-src 'self' 'unsafe-inline' https://unpkg.com;
connect-src 'self' https://ingress.dash0.com;Impact: Extensions may interfere with telemetry collection
Common Issues:
function checkBrowserSupport() {
const required = {
fetch: typeof fetch !== "undefined",
storage: typeof localStorage !== "undefined",
performance: typeof Performance !== "undefined",
promise: typeof Promise !== "undefined",
url: typeof URL !== "undefined",
};
const allSupported = Object.values(required).every(Boolean);
if (!allSupported) {
console.warn("Some required browser APIs are not available:", required);
}
return allSupported;
}if (checkBrowserSupport()) {
init({
serviceName: "my-website",
endpoint: { url: "...", authToken: "..." },
});
} else {
// Fallback behavior or show warning
console.warn("Dash0 SDK not supported in this browser");
}Notes:
Notes:
Some browsers throttle JavaScript in background tabs:
Mobile browsers have stricter memory limits:
Possible Causes:
Solutions:
Possible Causes:
Solutions:
Possible Causes:
Solutions:
See Edge Cases for more troubleshooting scenarios.
Install with Tessl CLI
npx tessl i tessl/npm-dash0hq--sdk-web