Implementation:MaterializeInc Materialize Debug Symbols Uploader
| Knowledge Sources | |
|---|---|
| Domains | CI/CD, Profiling, Observability |
| Last Updated | 2026-02-08 00:00 GMT |
Overview
The Debug Symbols Uploader uploads debug information (debuginfo) and source files from Materialize build artifacts to Polar Signals for continuous profiling support.
Description
This module provides the upload_debug_symbols_to_polarsignals CI script that extracts debug symbols from built Materialize Docker images and uploads them to Polar Signals (the continuous profiling provider). It supports downloading debuginfo via S3 or HTTP from the debuginfo.dev.materialize.com endpoint, handles multiple CPU architectures (x86_64, aarch64), and authenticates with one or more Polar Signals API tokens. The upload is restricted to tagged release builds to control costs, as Polar Signals storage is expensive. It uses the parca-debuginfo CLI tool for the actual upload operation.
Usage
Use this module in CI release pipelines to ensure debug symbols are available in Polar Signals for profiling production Materialize deployments. It is only invoked for tagged release builds.
Code Reference
Source Location
- Repository: MaterializeInc_Materialize
- File: misc/python/materialize/ci_util/upload_debug_symbols_to_polarsignals.py
Signature
DEBUGINFO_URL = "https://debuginfo.dev.materialize.com"
DEFAULT_TOKENS = [
t for t in (
os.getenv("POLAR_SIGNALS_API_TOKEN"),
os.getenv("POLAR_SIGNALS_SELF_MANAGED_1_API_TOKEN"),
) if t is not None
]
def main() -> None: ...
Import
from materialize.ci_util.upload_debug_symbols_to_polarsignals import main
I/O Contract
| Input | Type | Description |
|---|---|---|
| --arch | str |
Target architecture: "x86_64" or "aarch64" |
| --protocol | str |
Download protocol: "s3" or "http" |
| --token | str |
Polar Signals API token(s) (repeatable, defaults to env vars) |
| --build-id | str |
Optional specific build ID to upload (skips Docker image resolution) |
| --release | bool |
Use release (LTO) build artifacts |
| Output | Type | Description |
|---|---|---|
| upload | Polar Signals API | Debug symbols uploaded via parca-debuginfo CLI |
Usage Examples
# Upload debug symbols for a release build
python -m materialize.ci_util.upload_debug_symbols_to_polarsignals --release --arch x86_64
# Upload for a specific build ID
python -m materialize.ci_util.upload_debug_symbols_to_polarsignals --build-id abc123