@groundcover/browser
v0.0.59
Published
groundcover browser SDK
Readme
groundcover RUM Browser Monitoring
groundcover’s Real User Monitoring (RUM) SDK allows you to capture front-end performance data, user events, and errors from your web applications.
See the dedicated groundcover documentation for more details.
Installation
npm install @groundcover/browserInitialize the SDK
import groundcover from "@groundcover/browser";
groundcover.init({
apiKey: "your-api-key",
cluster: "your-cluster",
environment: "production",
dsn: "your-dsn",
appId: "your-app-id",
});Micro-frontend Session Synchronization
For micro-frontend architectures, you can synchronize sessions across different frontend applications by passing a shared sessionId:
// Main application generates a sessionId
const sharedSessionId = "session-12345";
// Initialize SDK in main app
groundcover.init({
apiKey: "your-api-key",
cluster: "your-cluster",
environment: "production",
dsn: "your-dsn",
appId: "your-app-id",
sessionId: sharedSessionId, // Use shared sessionId
});
// Initialize SDK in micro-frontend with same sessionId
groundcover.init({
apiKey: "your-api-key",
cluster: "your-cluster",
environment: "production",
dsn: "your-dsn",
appId: "micro-frontend-app-id",
sessionId: sharedSessionId, // Same sessionId for session continuity
});Identify users
Link RUM data to specific users:
groundcover.identifyUser({
id: "John Doe",
email: "[email protected]",
organization: "groundcover",
});Send custom events
Send custom events to groundcover:
groundcover.track("custom-event");Capture errors
Capture errors from your web application:
groundcover.captureException(new Error("Something went wrong"));You can also attach metadata to provide additional context:
groundcover.captureException(new Error("Payment failed"), {
userId: "123",
feature: "checkout",
cart: { items: 3, total: 99.99 },
});Optional Configuration
You can customize SDK behavior (event sampling, data masking, enabled events). The following properties are customizable:
export interface SDKOptions {
batchSize: number;
batchTimeout: number;
eventSampleRate: number;
sessionSampleRate: number;
environment: string;
debug: boolean;
tracePropagationUrls: string[];
}You can pass the values by calling the init function:
groundcover.init({
apiKey: "your-api-key",
cluster: "your-cluster",
environment: "production",
dsn: "your-dsn",
appId: "your-app-id",
sessionId: "optional-session-id", // For micro-frontend synchronization
options: {
batchSize: 50,
sessionSampleRate: 0.5, // 50% sessions sampled
eventSampleRate: 0.5,
},
});Or via the updateConfig function:
groundcover.updateConfig({
batchSize: 20,
});