Honeycomb features
If telemetry hasn't been set up for your project yet, please refer to the setup guide before continuing.
To monitor application performance, Workleap has adopted Honeycomb, a tool that helps teams capture and analyze distributed traces and metrics to understand and monitor complex systems, application behaviors, and performance. Built on OpenTelemetry, Honeycomb provides a robust API for frontend telemetry.
While Honeycomb's in-house HoneycombWebSDK includes great default instrumentation, the @workleap/telemetry package provides a slightly altered default instrumentation which is adapted for Workleap's applications' requirements.
Default instrumentation
Workleap’s Honeycomb instrumentation includes a few default traces 👇
Fetch requests
Individual fetch request performance can be monitored from end to end:
Document load
The loading performance of the DOM can be monitored:
Unmanaged error
When an unmanaged error occurs, it's automatically recorded:
Real User Monitoring (RUM)
Performance data is collected from real user sessions to generate metrics and insights:
Correlation ids
Two correlation ids are automatically added to every trace:
app.telemetry_id: Identifies a single application load. It's primarily used to correlate Honeycomb traces with the other telemetry platforms.app.device_id: Identifies the user's device across sessions. This value is extracted from the sharedwl-identitycookie, which is used across Workleap's marketing sites and web applications.

LogRocket session URL
If LogRocket instrumentation is enabled, Honeycomb traces are enriched with the LogRocket session URL as soon as it becomes available:
Set custom attributes
Most applications need to set custom attributes about the current user environment on all traces. To help with that, HoneycombInstrumentationClient expose the setGlobalSpanAttributes method:
import { useHoneycombInstrumentationClient } from "@workleap/telemetry/react";
const client = useHoneycombInstrumentationClient();
client.setGlobalSpanAttributes({
"app.user_id": "123"
});
Now, every trace recorded after the execution of setGlobalSpanAttributes will include the custom attribute app.user_id: