Telemetry / Logging
June 26, 2026 · View on GitHub
The visionOS tools emit structured logs with tracing so each build job can be tracked by job_id. This page summarizes configuration and examples.
RuntimeModeTelemetry
- Emitted at startup by
src/lib/telemetry.rs::RuntimeModeTelemetry. - Fields:
transport(stdio),config_path(absolute),pending_jobs,instructions,launch_args. - Use
RUST_LOG=rmcp_sample=infoor higher to see JSON/text on stderr (Runbook uses this for startup checks).
Example:
INFO rmcp_sample::runtime: starting MCP server
transport="stdio" config_path="/Users/example/app/seiro-mcp.toml" pending_jobs=0 instructions="Loaded config /Users/example/app/seiro-mcp.toml; waiting in stdio mode from a local MCP client."
tracing init
src/lib/telemetry.rs::init_tracingis called frommain; control level withRUST_LOG(defaultinfo).- Uses
EnvFilter, so you can setexport RUST_LOG=rmcp_sample=debug,rmcp_sample::visionos=traceto tune per target. - MCP clients can pass
RUST_LOGvia theirenvsection.
About JobSpan
JobSpan::start(job_id, job_kind)begins a span underrmcp_sample::visionos.- Close with
finish(status, exit_code), always recordingstatus(succeeded/failed…) andelapsed_ms. - Tool usage:
validate_sandbox_policy: emits a validation span; on failure includesSandboxPolicyErrorcode.build_visionos_app: wraps xcodebuild; logsexit_codeandartifact_path.fetch_build_output: logs artifact retrieval withjob_id/include_logs.
Log examples
2024-05-12T01:23:45.123Z INFO rmcp_sample::visionos{job_id=1ec5c5c4-6bdc-4f42-9d3c-0d24ebc69212 job_kind="build_visionos_app"}: visionOS job completed
status="succeeded" exit_code=Some(0) elapsed_ms=5123 artifact_zip="target/visionos-builds/1ec5c5c4-6bdc-4f42-9d3c-0d24ebc69212/artifact.zip"
2024-05-12T01:30:02.010Z INFO rmcp_sample::visionos{job_id=de3077d4-1fd5-4a52-89fb-02f6d5c7e5bf job_kind="validate_sandbox_policy"}: visionOS job completed
status="failed" exit_code=None elapsed_ms=220 code="path_not_allowed"
Operational notes
- All logs go to stderr; Codex CLI shows them under “logs”. For persistence, set
RUST_TRACING_FORMAT=jsonand redirect to an external logger. tests/integration/visionos_build.rsasserts via the job store, not spans; if you change log format, update this doc and README accordingly.- See
docs/runbook.mdfor startup/shutdown exit codes and log checks.
References
src/lib/telemetry.rs—init_tracingandJobSpansrc/tools/visionos/build.rs— span start/end pointssrc/tools/visionos/artifacts.rs— job success/failure and TTL tracking