Skip to main content
The commands on this page call MoleSignal’s API and take an API token: set MOLESIGNAL_URL and MOLESIGNAL_TOKEN in the pipeline, or pass --url and --token. Create the token at Identity & Access → API tokens, with a role that holds the permission each command names.

Report a deployment

The deployment appears on the service’s timeline in APM, which compares its version with the one before. In CI, the commit, the repository, the pull request, the author, and the link to the run come from the environment of GitHub Actions, GitLab CI/CD, Jenkins, CircleCI, Buildkite, Bitbucket Pipelines, or Azure Pipelines. Elsewhere, the commit and the repository come from git. The token’s role needs apm.deploy. Given a command after --, the CLI runs it first, records the deployment as succeeded or failed by how the command ended, and exits as the command did:
The fields are those of Report deployments from CI.

Upload source maps

Every .map file under the folders is uploaded under its own name, which must be the deployed bundle’s name and .map. Files are gzipped on the way, four at a time; --concurrency changes that. Two maps of the same name would replace each other, so the command refuses them. --application, --service, and --release must match what the RUM SDK reports: its applicationId, service, and version. For Flutter Web, add --platform flutter and the --debug-id the app was built with. The token’s role needs streams.configure. --dry-run lists what would be uploaded. molesignal source-maps list lists the uploaded maps, and molesignal source-maps delete <id> deletes one.

Upload mobile and native symbols

Each file is matched by what it is: --debug-id, --platform, and --arch replace what a file tells; for a dSYM, --arch keeps one architecture. --dry-run lists every file with the IDs read from it. molesignal symbols list and molesignal symbols delete <id> list and delete uploads. The token’s role needs streams.configure. RUM source maps and symbols explains how frames are matched.

Check a release

molesignal synthetics run <check> --wait --yes runs a synthetic check at each of its locations and exits with 1 when a run fails. molesignal services compare <service> <baseline> <candidate> --fail-on-regression exits with 1 when the candidate regressed. See Incidents and changes and Metrics, traces, and services.

Send lines to a stream

molesignal send sends each line of standard input to a log stream: a line that is a JSON object as its fields, any other line as its message. Logs go in batches as they come, so it can follow a file:
--field name=value adds a field to every log, --raw sends every line as a message, and --batch sets the most logs per request, 500 by default. A busy server is tried again. The command exits with 1 when MoleSignal rejected logs. The token’s role needs streams.write, as an intake token’s does.

Keep the output of a job

molesignal run runs a command, shows its output as usual, and sends each line to a log stream, then one more log with the exit status and how long it took. It exits as the command did:
Each log has the fields message, output (stdout or stderr), command, run_id, and host; the last one adds exit_code, duration_ms, and level. --quiet hides the output here, and --field adds a field.

GitHub Actions

Save the address and the token as repository secrets, then add steps to the deploy job. if: always() reports a failed deployment too:

GitLab CI/CD

Add MOLESIGNAL_URL and MOLESIGNAL_TOKEN as masked CI/CD variables, then run the deploy command through the CLI:
The environment comes from environment, and the commit, merge request, and job link from GitLab.
Last modified on October 26, 2026