Before You Start
The sourcemap processor is compatible with Honeycomb OpenTelemetry Web SDK version 0.12.0 and later. To use the sourcemap processor, you need:-
OpenTelemetry Collector built with
CGOenabled. -
An environment or container image with
glibcsupport. We recommendgcr.io/distroless/cc, a secure and lightweight container image with CGO andglibcsupport.
Install
By default, the Honeycomb OpenTelemetry Collector distribution includes the sourcemap processor, so you can skip to the next section if you’re using it. If you use another collector distribution or build your own, it must be built with CGO enabled. You can install the sourcemap processor by adding it to your OpenTelemetry Collector build configuration file:Source Files and Source Maps
The sourcemap processor requires access to your minimized JS source files and associated source maps. These can be stored in your local file system, Amazon S3, or Google Cloud Storage. To support symbolication, your minified source files must have a comment with asourceMappingURL pointing to the relative path of the source map file.
vendor.1c285a50f5307be9648d.js.
This helps prevent conflicts and ensure the correct file versions are used.
Configure a File Store
Add thesource_map_symbolicator as a processor in your OpenTelemetry Collector configuration:
- Local File Store
- Amazon S3 Store
- Google Cloud Storage Store
By default, the sourcemap processor loads source map files from a local directory.
You can set the file path in your collector configuration:Make sure your collector can access the
path directory you set, and that file paths in stack traces match the structure of your configured file store.How the Processor Retrieves Files from Local Disk
When retrieving files from local disk, the processor:- Gets the base file name from the URL included in the stack trace.
- The
path, if configured, is joined with the base file name. - Reads the file using the joined path from disk.
- Original URL:
https://example.com/static/dist/main.c383b093b0b66825a9c3.js pathis set to/tmp/sourcemaps- New path:
/tmp/sourcemaps/main.c383b093b0b66825a9c3.js.map
Advanced Configuration
In addition to basic setup, you can customize how the sourcemap processor handles stack traces by configuring attribute mappings and additional processing options.Mapping Attributes
Use these configuration options to specify which attributes the processor should read from and write to when handling stack traces:Additional Processing Options
Use these configuration options to control how stack traces are processed and managed:Language-Based Routing
The source map processor supports language-based routing to ensure it only processes signals from JavaScript/TypeScript applications. This prevents the processor from running on signals from other languages (like Java or Swift), improving performance and avoiding unnecessary processing. Example configuration:allowed_languages configuration behavior:
- Empty
allowed_languages(default): Processes all signals, regardless of language attribute. - With
allowed_languagesconfigured: Only processes signals where the language attribute matches one of the allowed values (case-insensitive). - Missing language attribute: Skips processing when
allowed_languagesis configured.