Getting started
The following is a first example of how to initialize the Web SDK:
dash0-init.ts12345678910111213import { init } from "@dash0hq/sdk-web";init({serviceName: "my-app",endpoint: {// Get in the OTLP over HTTP tab of https://app.dash0.com/settings/endpointsurl: "...",// Get or create from the https://app.dash0.com/settings/auth-tokensauthToken: "...",},sessionInactivityTimeoutMillis: 30 * 60 * 1000, // 30 minsessionTerminationTimeoutMillis: 4 * 60 * 60 * 1000, // 4 hours});
In this example, if a user is inactive for 30 minutes, the session ends. Additionally, any session automatically terminates after 4 hours—even if the user remains active.
For more detailed guidance, refer to the Dash0 Web SDK documentation on GitHub.
Dash0 Web SDK
This SDK enables users of Dash0's web monitoring features to instrument a website or single-page-application to capture and transmit telemetry to Dash0.
Features include:
- Page view instrumentation
- Navigation timing instrumentation
- HTTP request instrumentation
- Error tracking
Getting started
Prerequisites
To setup the web sdk you'll need the following:
-
Log in to your desired Dash0 account. You can sign up here
-
Retrieve the following information from your Dash0 account:
-
endpointURL for your Dash0 region (Dash0 link) -
authTokenwithIngestingpermissions for the dataset (Dash0 link)- Auth tokens for client monitoring will be public as part of your website, please make sure to:
- Use a separate token, exclusively for website monitoring; if you want to monitor multiple websites, it is best to use a dedicated token for each
- Limit the dataset permissions on the auth token to the dataset you want to ingest Website Monitoring data with
- Limit permissions on the auth token to
Ingesting
- Auth tokens for client monitoring will be public as part of your website, please make sure to:
-
Installation steps
- Add the SDK to your dependencies
# npm
npm install @dash0/sdk-web
# yarn
yarn add @dash0/sdk-web
# pnpm
pnpm install @dash0/sdk-web
- Initialize the SDK in your code: you'll need to call the
initfunction at a convenient time in your applications lifecycle. Ideally this should happen as early as possible in the web page initialization, as most instrumentations shipped by the SDK can only observe events after init has been called.
import { init } from "@dash0/sdk-web";
init({
serviceName: "my-website",
endpoint: {
// Replace this with the endpoint URL for your Dash0 region, that you retrieved earlier in "prerequisites"
url: "{endpoint}",
// Replace this with your auth token you retrieved earlier in "prerequisites"
// Ideally, you will inject the value at build time in order not commit the token to git,
// even if its effectively public in the HTML you ship to the end user's browser
authToken: "{authToken}",
},
});
For more detailed instructions, refer to INSTALL.md.
Development
See DEVELOPMENT.md for instructions on the development setup, testing and release process.
Tracking Users
The SDK automatically tracks sessions, but to count users you need to call the identify() method:
count-users.js123456789import { identify } from "@dash0/sdk-web";// For logged-in usersidentify("user123", {name: "johndoe",fullName: "John Doe",email: "john@example.com",roles: ["admin", "user"],});
Tracking anonymous visitors
For websites with anonymous visitors, generate and persist an anonymous ID before calling identify:
track-anonymous-visitors.js1234567let anonymousId = localStorage.getItem('dash0_anonymous_id');if (!anonymousId) {// Use your preferred method to generate a unique string identifieranonymousId = generateUniqueId(); // Implement this function based on your needslocalStorage.setItem('dash0_anonymous_id', anonymousId);}identify(anonymousId);
When the user logs in, call identify again with the authenticated user ID to maintain continuity between anonymous and logged-in sessions.
For more details, refer to our documentation in Install.md.
Last updated: November 18, 2025