@oleus/browser
v1.2.0
Published
Oleus browser observability SDK — CWV, JS errors, sessions, fetch instrumentation, session replay, feature flags, surveys, heatmaps
Maintainers
Readme
@oleus/browser
Browser RUM SDK for the Oleus platform — Core Web Vitals (LCP/CLS/FID/INP), JS errors with sourcemap symbolication server-side, fetch/XHR timing, sessions, and SPA route changes (works with Next.js client routing).
npm install @oleus/browserimport { init } from '@oleus/browser'
init({
service: 'rondo-web',
endpoint: 'https://api.dashboard.oleus.io/otlp',
apiKey: process.env.NEXT_PUBLIC_OLEUS_INGEST_KEY, // per-app bearer key
version: process.env.NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA, // release for sourcemaps
})Identifying users
Every event carries a distinct_id. Before login it's a persisted anonymous id;
call identify() after login to tie the anonymous history to the user — Oleus
resolves both to one person.
import { getSDK } from '@oleus/browser'
const oleus = getSDK()
// after login
oleus.identify(user.id, { email: user.email, plan: user.plan })
// same person across devices (e.g. links a mobile session)
oleus.alias(mobileDistinctId)
// update person properties without changing identity
oleus.setPersonProperties({ plan: 'enterprise' })
// on logout — forget the user, start a fresh anonymous id + session
oleus.reset()identify emits a $identify event containing the prior anonymous id, so
pre-login pageviews/events stitch to the identified person. getDistinctId()
returns the id currently being sent.
Migrating from
setUser({ id, email, name })? It still works but is deprecated — it now forwards toidentify(id, { email, name }).
Or via script tag (UMD build):
<script src="https://unpkg.com/@oleus/browser/dist/index.global.js"
data-service="your-app-name" data-endpoint="https://api.dashboard.oleus.io/otlp"
data-api-key="bik_live_YOUR_INGEST_KEY" defer></script>Upload sourcemaps per deploy so minified stacks symbolicate:
curl -F "service=rondo-web" -F "release=$VERCEL_GIT_COMMIT_SHA" \
-F "[email protected]/static/chunks/abc.js.map;filename=abc.js" \
https://api.dashboard.oleus.io/api/symbols/sourcemaps