Skip to main content

trace.csv reference

The Moderne CLI and platform record telemetry for each command as a row in a trace.csv file, one row per repository per command. For how that telemetry is generated and collected, see Understanding CLI usage across your organization; for how to replicate it to your own cloud storage and query it, see Querying and BI.

This page is the field reference for those rows.

How to read this reference

  • Traces are hierarchical. Each command writes its own stage plus every earlier stage in the workflow. A mod run row therefore carries the sync, build, and run columns; a mod git commit row carries everything through commit. A stage a command didn't reach is left empty.
  • organization is the last of the stage columns. Because each command type carries a different set of stages, the row width and the position of organization differ by type. If you use trace tags, one tag.<key> column per tag is appended after organization, so it is not the last column in that case.
  • Every field is written as text. The Type column below is the logical type of the value (what it represents), not a storage type; a CSV field is always text until you cast it.
  • Column headers are mixed-case in the file (runStartTime). Query engines that fold identifiers to lowercase (Athena, Trino) will expose them lowercased (runstarttime).
  • Every *Outcome column holds one of Succeeded, Failed, Canceled, or Skipped.
  • Columns change between CLI versions, and new fields land mid-stage rather than at the end. Older partitions can be both narrower and differently ordered, which a positional reader will not warn you about. Prefer reading by column name.
  • *Log columns are not exported. Each stage records a local log path, but those columns are stripped when the trace is queued for upload, so they never appear in the CSV that lands in your bucket.

Trace hierarchy

Each command produces a trace that includes its own stage plus all prior stages. The type value identifies the command.

CommandtypeStages included
mod git syncsyncSync
mod buildbuildSync + Build
mod runrunSync + Build + Run
mod git applyapplySync + Build + Run + Apply
mod git addaddSync + Build + Run + Apply + Add
mod git commitcommitSync + Build + Run + Apply + Add + Commit
mod git pushpushSync + Build + Run + Apply + Add + Commit + Push
mod publishpublishSync + Build + Publish
mod execexecExec (standalone)
MCP server tool callmcpMCP (standalone)

mod publish branches off after Build rather than continuing the Run → Apply → Add → Commit → Push chain, so its rows carry the Sync + Build + Publish columns and none of the Run/Apply/Add/Commit/Push columns. mod exec and MCP tool calls are standalone: they carry the common columns plus their own stage, with no earlier workflow stages.

mod git checkout also writes a trace, but only into the .moderne/ directory of the repository it touched. It is never queued for upload, so there is no type=checkout partition to query.

Common fields

Present in every row.

ColumnTypeDescriptionExample
originstringSCM hostgithub.com
pathstringRepository path (org/repo)openrewrite/rewrite
branchstringBranch namemain
developerstringUser emailuser@example.com

Sync stage

Populated after mod git sync (and by any command that syncs first).

ColumnTypeDescriptionExample
syncOutcomestringClone/sync resultSucceeded
syncCloneUristringClone URLhttps://github.com/org/repo
syncLstDownloadUristringLST download URL (empty if built locally)
syncStartTimeISO 8601Sync start timestamp2026-02-19T00:07:11.946Z
syncEndTimeISO 8601Sync end timestamp2026-02-19T00:07:13.704Z
syncChangesetstringGit commit SHA at synca3b1862d...
syncElapsedTimeMsintegerDuration in milliseconds1758

Build stage

Populated after mod build.

ColumnTypeDescriptionExample
buildOutcomestringBuild resultSucceeded
buildStartTimeISO 8601Build start timestamp2026-02-19T00:12:22.215Z
buildEndTimeISO 8601Build end timestamp2026-02-19T00:12:47.263Z
buildIdstringBuild identifier20260219000719-cYGAL
buildDependencyResolutionTimeMsintegerDependency resolution time (ms)13534
buildChangesetstringGit SHA at build timea3b1862d...
buildMavenVersionstringMaven version used3.8.4
buildGradleVersionstringGradle version used
buildBazelVersionstringBazel version used
buildDotnetVersionstring.NET version used
buildPythonVersionstringPython version used
buildNodeVersionstringNode.js version used
buildOsNamestringBuild host OSLinux
buildOsVersionstringOS kernel version4.14.355-280.710.amzn2.x86_64
buildOsEolstringLine ending formatLF
buildGitAutocrlfstringGit autocrlf settingFalse
buildGitEolstringGit eol settingNative
buildSourceFileCountintegerSource files in repo256
buildLineCountintegerTotal lines of code41015
buildParseErrorCountintegerParse errors during build1
buildWeightintegerLST weight83285
buildMaxWeightintegerMax single-file weight6617
buildMaxWeightSourceFilestringHeaviest file pathsrc/test/MessageMLContextTest.java
buildCliVersionstringCLI version used3.57.8
buildElapsedTimeMsintegerBuild duration (ms)25048

Run stage

Populated after mod run.

ColumnTypeDescriptionExample
runOutcomestringRecipe run resultSucceeded
runStartTimeISO 8601Run start timestamp2026-02-19T20:53:58.396Z
runEndTimeISO 8601Run end timestamp2026-02-19T20:54:29.312Z
runIdstringRun identifier20260219145356-EWS22
runUnlicensedAttemptbooleanWas this an unlicensed attempt?false
runStreamingbooleanStreaming mode?false
runRecipeIdstringFully qualified recipe nameorg.openrewrite.java.OrderImports
runRecipeInstanceNamestringDisplay nameOrder imports
runRecipeOptionsstringJSON recipe options{}
runRecipeArtifactstringRecipe artifact GAVorg.openrewrite:rewrite-java:8.70.0
runEstimatedEffortTimeSavingsMsintegerEstimated time saved (ms)23100000
runDependencyResolutionTimeMsintegerDependency resolution time (ms)0
runPomCacheHitRatefloatPOM cache hit rate0.919
runResolvedPomCacheHitRatefloatResolved POM cache hit rate1.0
runFilesWithFixResultsintegerFiles with fix results77
runFilesWithSearchResultsintegerFiles with search results0
runFilesWithErrorsintegerFiles with errors0
runFilesSearchedintegerTotal files searched252
runLinesAddedintegerLines added across the recipe's changes, counted with git semantics418
runLinesRemovedintegerLines removed across the recipe's changes, counted with git semantics126
runDataTablesintegerData tables produced2
runThreadstringThread nameForkJoinPool.commonPool-worker-10
runElapsedTimeMsintegerRecipe run duration (ms)30916

Apply stage

Populated after mod git apply.

ColumnTypeDescriptionExample
applyOutcomestringApply resultSucceeded
applyStartTimeISO 8601Apply start timestamp2026-02-19T21:28:30.330Z
applyEndTimeISO 8601Apply end timestamp2026-02-19T21:28:30.621Z
applyIdstringApply identifier20260219152829-UpYgU
applyElapsedTimeMsintegerDuration (ms)291

Add stage

Populated after mod git add.

ColumnTypeDescriptionExample
addOutcomestringGit add resultSucceeded
addStartTimeISO 8601Add start timestamp2026-02-19T21:28:31.090Z
addEndTimeISO 8601Add end timestamp2026-02-19T21:28:32.485Z
addIdstringAdd identifier20260219152830-FN6kt
addElapsedTimeMsintegerDuration (ms)1395

Commit stage

Populated after mod git commit.

ColumnTypeDescriptionExample
commitOutcomestringCommit resultSucceeded
commitStartTimeISO 8601Commit start timestamp2026-02-19T21:28:32.965Z
commitEndTimeISO 8601Commit end timestamp2026-02-19T21:28:33.064Z
commitIdstringCommit identifier20260219152832-ztzOh
commitBranchstringTarget branchmain
commitElapsedTimeMsintegerDuration (ms)99

Push stage

Populated after mod git push.

ColumnTypeDescriptionExample
pushOutcomestringPush resultSucceeded
pushStartTimeISO 8601Push start timestamp2026-02-19T21:28:34.100Z
pushEndTimeISO 8601Push end timestamp2026-02-19T21:28:35.500Z
pushIdstringPush identifier20260219152834-Ph1kd
pushRemoteBranchstringBranch pushed to on the remotemoderne/order-imports
pushSetUpstreambooleanWhether the push set the upstream tracking branchtrue
pushElapsedTimeMsintegerDuration (ms)1400

Publish stage

Populated after mod publish. These columns appear only in mod publish rows; they are not part of the mod git syncmod git push workflow chain. Because mod publish branches off after Build, the publish columns slot in immediately after the build stage.

ColumnTypeDescriptionExample
publishOutcomestringPublish resultSucceeded
publishStartTimeISO 8601Publish start timestamp2026-04-10T15:30:00.000Z
publishEndTimeISO 8601Publish end timestamp2026-04-10T15:30:04.512Z
publishIdstringPublish command identifier20260410103000-PbLsh
publishUristringDestination URI of the published LST artifact (empty when publish was skipped or failed before upload)https://artifacts.example.com/org/repo/1.0/repo-1.0.jar
publishElapsedTimeMsintegerDuration (ms)4512

Exec stage

Populated by mod exec. Exec rows are standalone: they carry the common columns plus the exec columns, with no sync/build/run stages.

execCommand records the full command line and execExecutionDirectory records an absolute local path. Pass credentials to mod exec through environment variables rather than as command arguments, so they are not captured in telemetry.

ColumnTypeDescriptionExample
execOutcomestringCommand resultSucceeded
execStartTimeISO 8601Start timestamp2026-05-02T14:10:03.120Z
execEndTimeISO 8601End timestamp2026-05-02T14:10:09.882Z
execIdstringExec command identifier20260502091003-Xk2Lm
execCommandstringThe command as writtenmvn -q test
execCommandWithSubstitutionsstringThe command after variable substitutionmvn -q test
execExitCodeintegerProcess exit code0
execRecipeRunIdstringRun identifier, when the exec was scoped to a recipe run20260502090958-EWS22
execExecutionDirectorystringDirectory the command ran in/home/user/repos/org/repo
execVarJavaHomestringJAVA_HOME as seen by the command/usr/lib/jvm/java-21
execVarModerneJavaHomestringMODERNE_JAVA_HOME
execVarModerneJavaVersionstringMODERNE_JAVA_VERSION21
execVarModerneJavaJdkstringMODERNE_JAVA_JDK
execVarModerneBuildToolstringMODERNE_BUILD_TOOLmaven
execVarModerneBuildToolCompilestringMODERNE_BUILD_TOOL_COMPILE
execVarModerneBuildToolCheckstringMODERNE_BUILD_TOOL_CHECK
execVarModerneBuildToolDirstringMODERNE_BUILD_TOOL_DIR
execVarModerneBuildToolExecutablestringMODERNE_BUILD_TOOL_EXECUTABLE
execElapsedTimeMsintegerDuration (ms)6762

MCP fields

Populated by Moderne MCP server tool calls. MCP rows are standalone: they carry the common columns plus the MCP columns, with no sync/build/run stages.

ColumnTypeDescriptionExample
mcpOutcomestringTool-call resultSucceeded
mcpStartTimeISO 8601Tool-call start timestamp2026-06-14T10:15:02.100Z
mcpEndTimeISO 8601Tool-call end timestamp2026-06-14T10:15:02.640Z
mcpSessionIdstringMCP session identifiera1b2c3d4
mcpToolNamestringName of the MCP tool invokedfind_types
mcpRecipeIdstringRecipe referenced by the call, if anyorg.openrewrite.java.OrderImports
mcpMatchCountintegerMatches returned by the call12
mcpChangeCountintegerChanges produced by the call3
mcpRunIdstringRun identifier, if the call triggered a run20260614101500-AbCdE
mcpResultBytesintegerSize of the result payload in bytes4096
mcpArgumentsstringTruncated (roughly 120 character) summary of the arguments passed to the tool. Not guaranteed to be parseable JSON, so do not apply json_extract to it.{"query":"order imports"}
mcpElapsedTimeMsintegerDuration in milliseconds540

Organization and trace tags

organization is the last of the stage columns.

ColumnTypeDescriptionExample
organizationstringModerne organization the command ran withinALL/Company/Team

If you run a command with trace tags, each tag adds one column named tag.<key>, appended after organization. Running mod exec --trace-tag team=docs produces a row ending:

...,execElapsedTimeMs,organization,tag.team

Tag columns vary by who ran the command and with what tags, so treat them as optional and read them by name.