Bazel observability - Namespace Documentation
Documentation Index
Fetch the complete documentation index at: /docs/llms.txt
Use this file to discover all available pages before exploring further.
Assistant
Responses are generated using AI and may contain mistakes.
Inspect what happened during a Bazel invocation, from the dashboard or the CLI.Namespace records the Bazel invocations that pass through its remote cache and remote execution service. Each invocation can be inspected afterwards, whether it used caching alone or also ran actions on remote workers.
Invocations in the dashboard
The Bazel invocations page lists recent invocations for your workspace.
Select one to see its details.
Invocations from the CLI
The observability CLI commands require nsc v0.0.546 or later. Run nsc version ensure --at_least 0.0.546 to check and update the CLI if needed.
List recent invocations
List the most recent invocations with:
nsc bazel invocation list
Each row includes the invocation id you need to retrieve a report.
┌──────────────────────────────────────────────────────────────┐
│ Invocation ID Started Completed │
│──────────────────────────────────────────────────────────────│
│ 5f4aa0d0-4fe4-419b-ad18-b1a08a714497 1 day ago 1 day ago │
│ bb240743-a61e-458d-b22c-13dabd729c07 1 day ago 1 day ago │
...
Narrow the results
Use --since to narrow the list to a time window, and --max_entries to control how many rows come back:
nsc bazel invocation list --since 24h --max_entries 5
List invocations for scripts and agents
When scripting or driving the command from an agent, pass --output json to get machine-readable output:
nsc bazel invocation list --output json --max_entries 5
Pull a report
Stream a report for a single invocation with:
nsc bazel invocation report <invocation-id>
Redirect it to a file so you can inspect it or hand it to an agent for analysis:
nsc bazel invocation report <invocation-id> > report.json
What a report contains
A report is newline-delimited JSON, one record per line: metadata,
configurations, metrics, build_tool_logs, and targets, plus fetches and
actions when the invocation fetched or executed anything. On larger builds
actions is split across several records rather than one.Much of that is what Bazel already knows: action counts, timing per phase, the
critical path, targets and their outputs. The part Bazel does not have is in
actions, where every remotely executed action records whether it hit the cache,
which worker ran it, how long it queued, and how its time split between
hydration, execution, and output upload.
Reports scale with the invocation. A one-action bazel run might produce a few kilobytes, while a 1500-action build can produce over 400 KB. Slice out what you need before handing a large one to something with a limited context window:
jq 'select(.metrics) | .metrics.timing_metrics' report.json
Debugging failed builds
When a failure is in your code or your build definition, Bazel’s own output is usually enough. A compile error or a failing test assertion points at itself.Reports are for the failures Bazel cannot explain. Resource limits, configuration constraints, and images that fail to start all reach Bazel as an opaque failure. So does a test that depends on the environment, such as one that starts a database in a container, where the reason may only appear in that container’s output. Reports carry the surrounding detail, including which worker ran each action, so a failure can be traced back to the machine it ran on.That detail is spread across a lot of records, which makes it a good candidate for handing to an agent rather than reading yourself.
Analyzing a report with an agent
Reports are built for machine consumption. They carry most of what was observed during an invocation, which is more than is practical to read line by line, so handing one to an agent is often faster than reading it yourself.
Analyze a slow build
Save a report and point an agent at it:
nsc bazel invocation report <invocation-id> > report.json
Agent Prompt
Read report.json, a Namespace Bazel invocation report in newline-delimited JSON, one record per line. Work out why this build was slow.
Start with metrics.timing_metrics for the phase breakdown and metrics.runner_count for how much was cache hits, remote execution, and internal work. Read the critical path entry in build_tool_logs, which attributes time to queue, network, upload, setup, and process. Then use the actions records, which may span several lines, to find the slowest actions and check their scheduler_queue_ms, worker_queue_ms, and timing breakdown.
Tell me the three changes most likely to reduce wall-clock time, and quote the evidence for each.
Analyze a failed build
The same approach works for a failure rather than a slow build:
Agent Prompt
Read report.json, a Namespace Bazel invocation report in newline-delimited JSON, one record per line. The build failed.
Establish whether the cause was in the build itself or in the environment it ran in. Check metadata.result and the attempts list, then look for actions that failed and whether they ran remotely. If they did, note which worker ran them and whether several failures share a worker.
Quote the records that support your conclusion.
Reports describe your build rather than containing your source, but they do include target labels, workspace identifiers, host and user names, and your repository’s structure. Treat one as you would any other build log before sending it to a third-party service.
Last modified onSeptember 22, 2026
Ctrl+I
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Namespace Documentation","colors":{"primary":"#1C32FF","light":"#6B78FF","dark":"#1C32FF"},"logo":{"light":"https://mintcdn.com/namespace-labs/qOJQ7kaWRgoS8lyv/logo-light.svg?fit=max\\u0026auto=format\\u0026n=qOJQ7kaWRgoS8lyv\\u0026q=85\\u0026s=6827b0c81c335badc1cef13b83383e1d","dark":"https://mintcdn.com/namespace-labs/qOJQ7kaWRgoS8lyv/logo-dark.svg?fit=max\\u0026auto=format\\u0026n=qOJQ7kaWRgoS8lyv\\u0026q=85\\u0026s=63702d83d8fb259023deb79db06aabbb","href":"https://namespace.so"},"favicon":"https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/favicon.svg?fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=6f14a088da55e5f41847845796737353","navbar":{"links":\[{"href":"https://namespace.so/changelog","label":"Changelog"},{"href":"https://namespace.so/support","label":"Support"}\],"primary":{"type":"button","label":"Log in","href":"https://cloud.namespace.so"}},"footer":{"socials":{"github":"https://github.com/namespacelabs","linkedin":"https://www.linkedin.com/company/namespacelabs","x":"https://x.com/namespacelabs"}},"icons":{"library":"lucide"},"contextual":{"options":\["copy","view","chatgpt","claude"\],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"global":{"anchors":\[{"anchor":"Changelog","icon":"history","href":"https://namespace.so/changelog"},{"anchor":"Trust Center (SOC2)","icon":"shield-check","href":"https://trust.namespace.so/"},{"anchor":"Status","icon":"activity","href":"https://namespace-status.com/"},{"anchor":"Support","icon":"message-circle","href":"https://namespace.so/support"}\]},"pages":\[\]}},"deployment":{"deploymentMetadataValue":{"subdomain":"namespace-labs","hasAudioNarration":false,"actualSubdomain":"namespace-labs","customDomains":\["namespace.so"\],"gitSource":{"type":"github","owner":"namespacelabs","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae0862207896b4595e1934b","collectionId":"847aecca-4a0b-40b4-a393-e976cc214b43","liveDeploymentHistoryId":"6ae0862207896b4595e1934b","schemaVersion":"v3"},"entitlements":{"AI\_CHAT":{"status":"ENABLED"},"WEB\_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae0a8f6edbd4c098a94623c","clientVersion":"0.0.3971","searchFilterCounts":\[{"language":"default","tag":"Products","count":377},{"language":"default","tag":"CLI","count":166},{"language":"default","tag":"Command line","count":165},{"language":"default","tag":"Namespace CLI","count":131},{"language":"default","tag":"Documentation","count":104},{"language":"default","tag":"GitHub Actions","count":40},{"language":"default","tag":"Devbox CLI","count":34},{"language":"default","tag":"Integrations","count":33},{"language":"default","tag":"SDK","count":25},{"language":"default","tag":"Namespace SDK","count":23}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"snippets/diagrams/styles.css","content":".ns-diagram{--ns-diagram-background:#ffffff;--ns-diagram-grid:#e5e7ee;--ns-diagram-border:#e5e7ee;--ns-diagram-card:#ffffff;--ns-diagram-neutral-zone:#fafbfc;--ns-diagram-brand-zone-start:rgba(28, 50, 255, 0.04);--ns-diagram-brand-zone-end:rgba(28, 50, 255, 0.07);--ns-diagram-brand-border:#c8ceff;--ns-diagram-heading:#202938;--ns-diagram-muted:#8892a6;--ns-diagram-copy:#4a5468;position:relative;width:100%;margin:2rem 0;padding:clamp(20px,3.5vw,32px);overflow:hidden;color:var(--ns-diagram-heading);background:var(--ns-diagram-background);border:1px solid var(--ns-diagram-border);border-radius:20px;box-shadow:0 1px 0 rgba(32,41,56,.04),0 1px 2px rgba(32,41,56,.06)}.dark .ns-diagram{--ns-diagram-background:#111827;--ns-diagram-grid:#374151;--ns-diagram-border:#374151;--ns-diagram-card:#1f2937;--ns-diagram-neutral-zone:#171f2d;--ns-diagram-brand-zone-start:rgba(107, 120, 255, 0.1);--ns-diagram-brand-zone-end:rgba(107, 120, 255, 0.16);--ns-diagram-brand-border:#4f5fc7;--ns-diagram-heading:#f3f4f6;--ns-diagram-muted:#aeb6c5;--ns-diagram-copy:#cbd5e1}.ns-diagram-grid-background{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,var(--ns-diagram-grid) 1px,transparent 1px);background-size:16px 16px;opacity:.5;mask-image:linear-gradient(180deg,transparent 0,#000 10%,#000 90%,transparent 100%)}.ns-diagram-content{position:relative}.ns-diagram-caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ns-diagram-mark{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;margin:0;border-radius:8px}.ns-diagram-mark-anthropic{color:#d97757;background:#fcefe8}.ns-diagram-mark-devin{color:#4338ca;background:#eef0ff}.ns-diagram-mark-cursor{color:#111827;background:#eef0f3}.ns-diagram-mark-control{color:#1c32ff;background:#e0e7ff}.ns-diagram-mark-terminal{color:#fff;background:#202938}.ns-diagram-mark-worker{color:#4338ca;background:#eef1ff}.ns-diagram-zone{position:relative;display:flex;flex-direction:column;padding:1.25rem;background:var(--ns-diagram-neutral-zone);border:1px dashed #d2d6e0;border-radius:14px}.dark .ns-diagram-zone{border-color:#4b5563}.ns-diagram-zone-brand{background:linear-gradient(180deg,var(--ns-diagram-brand-zone-start),var(--ns-diagram-brand-zone-end));border:1px solid var(--ns-diagram-brand-border)}.ns-diagram-zone-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:var(--ns-diagram-copy);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.ns-diagram-zone-center{display:flex;flex:1;align-items:center}.ns-diagram-zone-center>*{width:100%}.ns-diagram-card{position:relative;display:flex;align-items:center;gap:1rem;min-width:0;padding:1rem 1.25rem;background:var(--ns-diagram-card);border:1px solid var(--ns-diagram-border);border-radius:12px;box-shadow:0 1px 0 rgba(32,41,56,.04),0 1px 2px rgba(32,41,56,.06)}.ns-diagram-card-brand{border-color:var(--ns-diagram-brand-border)}.ns-diagram-card-copy{display:flex;min-width:0;flex-direction:column}.ns-diagram-card-label{color:var(--ns-diagram-heading);font-size:16px;font-weight:600;line-height:1.25;letter-spacing:-.01em}.ns-diagram-card-sublabel{margin-top:.125rem;color:var(--ns-diagram-muted);font-size:12px;line-height:1.35}.ns-managed-layout{display:grid;grid-template-columns:1fr auto 1.05fr;align-items:stretch}.ns-managed-connector{display:flex;width:64px;flex-direction:column;align-items:center;justify-content:center;padding:0 .25rem;color:var(--ns-diagram-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10.5px}.ns-managed-connector>span{margin-bottom:.375rem}.ns-managed-connector-path{display:flex;width:56px;align-items:center}.ns-managed-connector-line{flex:1;height:1.5px;background:#d2d6e0}.ns-managed-connector-arrow{border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid #d2d6e0}.ns-mini-connector{display:flex;flex-direction:column;align-items:center;padding:.375rem 0}.ns-mini-connector>div{width:1.5px;height:12px;background:var(--ns-diagram-brand-border)}.ns-mini-connector>span{border-top:7px solid var(--ns-diagram-brand-border);border-right:5px solid transparent;border-left:5px solid transparent}.ns-devin-devboxes,.ns-devin-sessions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.ns-devin-mobile-layout{display:none}.ns-devin-connectors,.ns-devin-connectors>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ns-devin-connectors{gap:1.5rem}.ns-devin-connectors>div{padding:0 1rem}.ns-devin-connector{position:relative;display:flex;min-height:110px;align-items:center;justify-content:center;color:var(--ns-diagram-copy);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;line-height:1.25;text-align:center}.ns-devin-management-connector{min-height:70px;color:#6366f1}.ns-devin-connector-line{position:absolute;top:0;bottom:0;left:50%;width:1.5px;background:#d2d6e0;transform:translateX(-50%)}.ns-devin-management-connector .ns-devin-connector-line,.ns-diagram-connector-dashed .ns-diagram-vertical-line{width:0;background:0 0;border-left:1.5px dashed var(--ns-diagram-brand-border)}.ns-devin-connector>span,.ns-diagram-vertical-connector>span{position:relative;z-index:1;padding:0 .375rem;background:var(--ns-diagram-background)}.ns-control-plane-pill{display:flex;align-items:center;align-self:center;gap:.375rem;margin-bottom:1rem;padding:.375rem .75rem;color:#4338ca;background:#eef1ff;border:1px solid var(--ns-diagram-brand-border);border-radius:999px;font-size:12px;font-weight:500}.ns-diagram-vertical-connector{position:relative;display:flex;align-items:center;justify-content:center;color:var(--ns-diagram-copy);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;line-height:1.25;text-align:center}.ns-diagram-vertical-line{position:absolute;top:0;bottom:0;left:50%;width:1.5px;background:#d2d6e0;transform:translateX(-50%)}.ns-diagram-connector-dashed{color:#6366f1}.ns-diagram-arrow-down{position:absolute;bottom:0;left:50%;border-top:8px solid #d2d6e0;border-right:5px solid transparent;border-left:5px solid transparent;transform:translateX(-50%)}.ns-devin-management-connector .ns-diagram-arrow-down,.ns-diagram-connector-dashed .ns-diagram-arrow-down{border-top-color:var(--ns-diagram-brand-border)}.ns-bazel-connector-inset{padding:0 1rem}.ns-bazel-workers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}@media (max-width:767px){.ns-managed-layout{grid-template-columns:1fr}.ns-managed-connector{position:relative;width:auto;min-height:64px;padding:.5rem 0}.ns-managed-connector-path{width:auto;flex-direction:column}.ns-managed-connector-line{width:1.5px;height:24px;flex:none}.ns-managed-connector-arrow{border-top:9px solid #d2d6e0;border-right:6px solid transparent;border-bottom:0;border-left:6px solid transparent}.ns-devin-connectors,.ns-devin-devboxes,.ns-devin-sessions{grid-template-columns:1fr}.ns-devin-desktop-layout{display:none}.ns-devin-mobile-layout{display:block}.ns-devin-mobile-lane+.ns-devin-mobile-lane{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--ns-diagram-border)}.ns-devin-mobile-connectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 .5rem}.ns-devin-connector{min-height:80px}.ns-bazel-workers{grid-template-columns:1fr}}"},{"filePath":"style.css","content":":root{--namespace-radius-inline:0.25rem;--namespace-radius-control:0.375rem;--namespace-radius-container:0.5rem}#content-container,.almond-layout>div,.card,.chat-assistant-floating-input>div,.code-block,.frame,.pagination-next,.pagination-prev{border-radius:var(--namespace-radius-container)}.code-block [data-component-part=code-block-root],.frame>div{border-radius:inherit}#assistant-entry,#chat-assistant-textarea,#search-bar-entry,#search-input,.callout,.frame>.relative{border-radius:var(--namespace-radius-control)}.code-block-fade-overlay{border-radius:0 var(--namespace-radius-container) var(--namespace-radius-container) 0}#page-context-menu>button:first-child{border-radius:var(--namespace-radius-control) 0 0 var(--namespace-radius-control)}#page-context-menu>button:last-child{border-radius:0 var(--namespace-radius-control) var(--namespace-radius-control) 0}#content :not(pre)>code,#navigation-items li>a,#navigation-items li>button{border-radius:var(--namespace-radius-inline)}#navigation-items .nav-anchor>:is(svg, img),#navigation-items .sidebar-group-icon,#navigation-items [data-component-part=scroll-area-content]:has(>ul.nav-anchors),#navigation-items li>:is(a, button)>div[class=\"h-[1lh]\"]:first-child{display:flex;flex-direction:column}#navigation-items [data-component-part=scroll-area-content]>ul.nav-anchors{order:1;margin-top:1rem;padding-top:1rem;border-top:1px solid color-mix(in srgb,currentColor 10%,transparent)}#navigation-items [data-component-part=scroll-area-content]>ul.sidebar-group{margin-top:.5rem}#navigation-items [data-component-part=scroll-area-content]>ul.sidebar-group+div{margin-top:1rem}.tab-container{overflow:hidden;padding:0 1rem 1rem;border:1px solid color-mix(in srgb,currentColor 12%,transparent);border-radius:var(--namespace-radius-container)}.tab-container [data-component-part=tab-content]>[data-table-wrapper]:last-child{margin-bottom:0;padding-bottom:0}#content .katex-display>.katex{text-align:left}.compact-table table td{min-width:0}#navigation-items ul.sidebar-group>li.space-y-px+li.space-y-px{margin-top:.75rem}#navigation-items .my-2>.sidebar-group-header{margin-bottom:.625rem;font-size:.8125rem;line-height:1.625rem;font-weight:600;letter-spacing:-.02em;text-transform:none;opacity:1}#navigation-items ul.sidebar-group>li.space-y-px>button{font-size:.8125rem;font-weight:600;letter-spacing:-.02em;background-color:transparent}#navigation-items ul.sidebar-group>li.space-y-px>button:hover,#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>button:hover{background-color:color-mix(in srgb,currentColor 6%,transparent)}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>button,#navigation-items ul.sidebar-group>li.space-y-px>ul>li>a{padding-left:3rem!important;font-size:.8125rem;font-weight:400;letter-spacing:-.02em}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>ul>li[data-active-nav-item=true]>a,#navigation-items ul.sidebar-group>li.space-y-px>ul>li[data-active-nav-item=true]>a{color:#121516!important;background-color:rgb(18 21 22/6%)!important}.dark #navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>ul>li[data-active-nav-item=true]>a,.dark #navigation-items ul.sidebar-group>li.space-y-px>ul>li[data-active-nav-item=true]>a{color:#f4f4f5!important;background-color:rgb(255 255 255/8%)!important}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>button{background-color:transparent}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>button>div[class=\"h-[1lh]\"]:first-child{margin-left:-1.75rem}.dark #navigation-items img[src*=buildkite-mark]{filter:brightness(.7)}.dark img[src*=\"/icons/apple.svg\"]{filter:invert(1)}.dark img.tab-icon[src*=\"/icons/linux.svg\"]{filter:invert(.35) brightness(1.54)}#navigation-items ul.sidebar-group>li.space-y-px>ul>li.space-y-px>ul>li>a{padding-left:4rem!important;font-size:.8125rem;font-weight:400;letter-spacing:-.02em}@media (min-width:1024px){#sidebar-content{width:calc(16.5rem + 10px)}#content-container{margin-left:calc(16.5rem + 10px)}#navbar{container-type:inline-size}#navbar .nav-tabs{position:fixed;top:0;left:20rem;height:3.5rem;column-gap:2rem}#navbar div:has(>div>.nav-tabs){justify-content:flex-end}@container (max-width: 69rem){#navbar .navbar-link:has(>a[href=\"https://namespace.so/changelog\\"\]){display:none}}}@media (min-width:1280px){#content-container{padding-right:1.5rem;padding-left:3rem}#content-container>div{column-gap:1.5rem;justify-content:flex-start}#content-area{width:calc(100% - 13.5rem);max-width:52rem;flex:none}#content-side-layout{width:15rem;max-width:15rem;flex-basis:15rem}#content-side-layout>div{width:15rem;padding-left:1rem}#content-side-layout>div>div{width:14rem}}@media (min-width:1700px){#content-container>div{justify-content:center}}"},{"filePath":"reference/github-actions/runner-configuration.css","content":""},{"filePath":"workspaces/access.css","content":""},{"filePath":"platform/workspaces/access.css","content":""},{"filePath":"reference/devbox-cli/desktop.css","content":""}],"page":{"pagePath":"bazel/observability","slug":"/bazel/observability","pageMetadata":{"title":"Bazel observability","sidebarTitle":"Observability","description":null,"href":"/bazel/observability"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,Info,OptimizedImage}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Inspect what happened during a Bazel invocation, from the dashboard or the CLI.`}),`\n`,_jsxs(_components.p,{children:[`Namespace records the Bazel invocations that pass through its remote cache and\nremote execution service. Each invocation can be inspected afterwards, whether it\nused `,_jsx(_components.a,{href:`/bazel/cache`,children:`caching`}),` alone or also ran actions on\n`,_jsx(_components.a,{href:`/bazel/execution`,children:`remote workers`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`invocations-in-the-dashboard`,children:`Invocations in the dashboard`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.a,{href:`https://cloud.namespace.so/workspace/bazel/invocations\`,children:\`Bazel invocations`}),`\npage lists recent invocations for your workspace.`]}),`\n`,_jsx(Frame,{style:{maxWidth:800,marginInline:`auto`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-list.png?fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=f5c1b7433c854292b0da70ae0138ce59\`,alt:\`Bazel invocations list in the Namespace dashboard`,width:1600,height:585,\"data-og-width\":`1600`,\"data-og-height\":`585`,\"data-path\":`images/bazel/bazel-invocation-list.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-list.png?w=280\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=d128a2fe94e16219aef0efb7b33dbfc6 280w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-list.png?w=560\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=a4d9af8ad90d843f1c7affd1a2d8ce91 560w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-list.png?w=840\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=3f96d8605dec5fcf0b6c254234230fd3 840w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-list.png?w=1100\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=af7374425939ddb3746a10a68cc47276 1100w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-list.png?w=1650\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=7aa720363d82e0bc0b8a70dc1b60d46e 1650w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-list.png?w=2500\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=fff3a97868b32ccb2ac25f0ddbf12ea5 2500w`})}),`\n`,_jsx(_components.p,{children:`Select one to see its details.`}),`\n`,_jsx(Frame,{style:{maxWidth:800,marginInline:`auto`},children:_jsx(OptimizedImage,{src:`https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-details.png?fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=88f724780db3800b0b51e57052157e85\`,alt:\`Bazel invocations details in the Namespace dashboard`,width:1600,height:619,\"data-og-width\":`1600`,\"data-og-height\":`619`,\"data-path\":`images/bazel/bazel-invocation-details.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-details.png?w=280\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=d3f4b65d4719bf9bcec5e2dcc3b12c97 280w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-details.png?w=560\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=953df48686abb9d901a4686ae24dd5c0 560w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-details.png?w=840\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=69996ce3c8cc572a19b1b782e6d144ba 840w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-details.png?w=1100\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=32b571bbf0793f239964b621c1653f8d 1100w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-details.png?w=1650\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=4650169c51087e9c45f22f5f11ba6dd7 1650w, https://mintcdn.com/namespace-labs/MoefQ379UcpNU680/images/bazel/bazel-invocation-details.png?w=2500\\u0026fit=max\\u0026auto=format\\u0026n=MoefQ379UcpNU680\\u0026q=85\\u0026s=2f57c19539772086cd84db2036c33475 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`invocations-from-the-cli`,children:`Invocations from the CLI`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`The observability CLI commands require `,_jsx(_components.strong,{children:`nsc v0.0.546`}),` or later. Run `,_jsx(_components.code,{children:`nsc version ensure --at_least 0.0.546`}),` to check and update the CLI if needed.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`list-recent-invocations`,children:`List recent invocations`}),`\n`,_jsx(_components.p,{children:`List the most recent invocations with:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nsc`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bazel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` invocation`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Each row includes the invocation id you need to retrieve a report.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`7`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`┌──────────────────────────────────────────────────────────────┐`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│ Invocation ID Started Completed │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│──────────────────────────────────────────────────────────────│`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│ 5f4aa0d0-4fe4-419b-ad18-b1a08a714497 1 day ago 1 day ago │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`│ bb240743-a61e-458d-b22c-13dabd729c07 1 day ago 1 day ago │`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`...`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`4`,id:`narrow-the-results`,children:`Narrow the results`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`--since`}),` to narrow the list to a time window, and `,_jsx(_components.code,{children:`--max_entries`}),` to control how many rows come back:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nsc`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bazel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` invocation`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --since`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 24h`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --max_entries`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 5`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`4`,id:`list-invocations-for-scripts-and-agents`,children:`List invocations for scripts and agents`}),`\n`,_jsxs(_components.p,{children:[`When scripting or driving the command from an agent, pass `,_jsx(_components.code,{children:`--output json`}),` to get machine-readable output:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nsc`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bazel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` invocation`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --output`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` json`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --max_entries`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 5`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`pull-a-report`,children:`Pull a report`}),`\n`,_jsx(_components.p,{children:`Stream a report for a single invocation with:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nsc`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bazel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` invocation`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` report`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`invocation-i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Redirect it to a file so you can inspect it or hand it to an agent for analysis:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nsc`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bazel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` invocation`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` report`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`invocation-i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` report.json`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`what-a-report-contains`,children:`What a report contains`}),`\n`,_jsxs(_components.p,{children:[`A report is newline-delimited JSON, one record per line: `,_jsx(_components.code,{children:`metadata`}),`,\n`,_jsx(_components.code,{children:`configurations`}),`, `,_jsx(_components.code,{children:`metrics`}),`, `,_jsx(_components.code,{children:`build_tool_logs`}),`, and `,_jsx(_components.code,{children:`targets`}),`, plus `,_jsx(_components.code,{children:`fetches`}),` and\n`,_jsx(_components.code,{children:`actions`}),` when the invocation fetched or executed anything. On larger builds\n`,_jsx(_components.code,{children:`actions`}),` is split across several records rather than one.`]}),`\n`,_jsxs(_components.p,{children:[`Much of that is what Bazel already knows: action counts, timing per phase, the\ncritical path, targets and their outputs. The part Bazel does not have is in\n`,_jsx(_components.code,{children:`actions`}),`, where every remotely executed action records whether it hit the cache,\nwhich worker ran it, how long it queued, and how its time split between\nhydration, execution, and output upload.`]}),`\n`,_jsxs(Info,{children:[_jsxs(_components.p,{children:[`Reports scale with the invocation. A one-action `,_jsx(_components.code,{children:`bazel run`}),` might produce a few kilobytes, while a 1500-action build can produce over 400 KB. Slice out what you need before handing a large one to something with a limited context window:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`jq`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'select(.metrics) | .metrics.timing_metrics'`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` report.json`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`debugging-failed-builds`,children:`Debugging failed builds`}),`\n`,_jsx(_components.p,{children:`When a failure is in your code or your build definition, Bazel’s own output is\nusually enough. A compile error or a failing test assertion points at itself.`}),`\n`,_jsx(_components.p,{children:`Reports are for the failures Bazel cannot explain. Resource limits, configuration\nconstraints, and images that fail to start all reach Bazel as an opaque failure.\nSo does a test that depends on the environment, such as one that starts a\ndatabase in a container, where the reason may only appear in that container’s\noutput. Reports carry the surrounding detail, including which worker ran each\naction, so a failure can be traced back to the machine it ran on.`}),`\n`,_jsxs(_components.p,{children:[`That detail is spread across a lot of records, which makes it a good candidate\nfor `,_jsx(_components.a,{href:`#analyzing-a-report-with-an-agent`,children:`handing to an agent`}),` rather than reading\nyourself.`]}),`\n`,_jsx(Heading,{level:`2`,id:`analyzing-a-report-with-an-agent`,children:`Analyzing a report with an agent`}),`\n`,_jsx(_components.p,{children:`Reports are built for machine consumption. They carry most of what was observed\nduring an invocation, which is more than is practical to read line by line, so\nhanding one to an agent is often faster than reading it yourself.`}),`\n`,_jsx(Heading,{level:`3`,id:`analyze-a-slow-build`,children:`Analyze a slow build`}),`\n`,_jsx(_components.p,{children:`Save a report and point an agent at it:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`nsc`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` bazel`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` invocation`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` report`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`invocation-i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` >`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` report.json`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:`Agent Prompt`,wrap:`true`,numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Read report.json, a Namespace Bazel invocation report in newline-delimited JSON, one record per line. Work out why this build was slow.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Start with metrics.timing_metrics for the phase breakdown and metrics.runner_count for how much was cache hits, remote execution, and internal work. Read the critical path entry in build_tool_logs, which attributes time to queue, network, upload, setup, and process. Then use the actions records, which may span several lines, to find the slowest actions and check their scheduler_queue_ms, worker_queue_ms, and timing breakdown.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Tell me the three changes most likely to reduce wall-clock time, and quote the evidence for each.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`analyze-a-failed-build`,children:`Analyze a failed build`}),`\n`,_jsx(_components.p,{children:`The same approach works for a failure rather than a slow build:`}),`\n`,_jsx(CodeBlock,{filename:`Agent Prompt`,wrap:`true`,numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Read report.json, a Namespace Bazel invocation report in newline-delimited JSON, one record per line. The build failed.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Establish whether the cause was in the build itself or in the environment it ran in. Check metadata.result and the attempts list, then look for actions that failed and whether they ran remotely. If they did, note which worker ran them and whether several failures share a worker.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Quote the records that support your conclusion.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Reports describe your build rather than containing your source, but they do\ninclude target labels, workspace identifiers, host and user names, and your\nrepository’s structure. Treat one as you would any other build log before sending\nit to a third-party service.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Bazel observability","sidebarTitle":"Observability","description":null,"href":"/bazel/observability"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Invocations in the dashboard","slug":"invocations-in-the-dashboard","depth":2,"children":[]},{"title":"Invocations from the CLI","slug":"invocations-from-the-cli","depth":2,"children":[{"title":"List recent invocations","slug":"list-recent-invocations","depth":3,"children":[]},{"title":"Narrow the results","slug":"narrow-the-results","depth":4,"children":[]},{"title":"List invocations for scripts and agents","slug":"list-invocations-for-scripts-and-agents","depth":4,"children":[]},{"title":"Pull a report","slug":"pull-a-report","depth":3,"children":[]}]},{"title":"What a report contains","slug":"what-a-report-contains","depth":2,"children":[]},{"title":"Debugging failed builds","slug":"debugging-failed-builds","depth":2,"children":[]},{"title":"Analyzing a report with an agent","slug":"analyzing-a-report-with-an-agent","depth":2,"children":[{"title":"Analyze a slow build","slug":"analyze-a-slow-build","depth":3,"children":[]},{"title":"Analyze a failed build","slug":"analyze-a-failed-build","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/namespace-labs/fa018fe02fd436c8/navigation.js","/docs/_mintlify/custom/namespace-labs/4276600b7cb636ff/legacy-anchor-redirects.js"],"subdomain":"namespace-labs","siteName":"Namespace Documentation","title":"Bazel observability - Namespace Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T10:46:19.031Z","gitLastModified":"2026-09-22T09:40:17.000Z","originalFileLocation":"bazel/observability.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Namespace Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Bazel observability - Namespace Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Namespace Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://namespace.so/docs/bazel/observability\\">\\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://namespace-labs.mintlify.app/\_mintlify/api/og/v2?division=Bazel\\u0026amp;title=Bazel+observability\\u0026amp;theme=1f89d53762a6d5304d1c63c4\\u0026amp;signature=911cd4c38b7b0e1d3ad4e83ddbe388863410666cbd3c81b79a533582563c7fd0\\">\\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Bazel observability - Namespace Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://namespace-labs.mintlify.app/\_mintlify/api/og/v2?division=Bazel\\u0026amp;title=Bazel+observability\\u0026amp;theme=1f89d53762a6d5304d1c63c4\\u0026amp;signature=911cd4c38b7b0e1d3ad4e83ddbe388863410666cbd3c81b79a533582563c7fd0\\">\\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/namespace-labs/kZKeJ4zhJEuE6_kI/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Namespace Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1C32FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://namespace.so/docs/bazel/observability\\">\\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/bazel/observability.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\\",\\"@graph\\":\[{\\"@type\\":\\"Organization\\",\\"@id\\":\\"https://namespace.so/#organization\\",\\"name\\":\\"Namespace Documentation\",\"url\":\"https://namespace.so\\",\\"logo\\":{\\"@type\\":\\"ImageObject\\",\\"url\\":\\"https://mintcdn.com/namespace-labs/qOJQ7kaWRgoS8lyv/logo-light.svg?fit=max\\u0026auto=format\\u0026n=qOJQ7kaWRgoS8lyv\\u0026q=85\\u0026s=6827b0c81c335badc1cef13b83383e1d\\"}},{\\"@type\\":\\"WebSite\\",\\"@id\\":\\"https://namespace.so/docs#website\\",\\"name\\":\\"Namespace Documentation\",\"url\":\"https://namespace.so/docs\\",\\"publisher\\":{\\"@id\\":\\"https://namespace.so/#organization\\"}},{\\"@type\\":\\"WebPage\\",\\"@id\\":\\"https://namespace.so/docs/bazel/observability#webpage\\",\\"url\\":\\"https://namespace.so/docs/bazel/observability\\",\\"name\\":\\"Bazel observability\",\"dateModified\":\"2026-09-22T09:40:17.000Z\",\"isPartOf\":{\"@id\":\"https://namespace.so/docs#website\\"},\\"breadcrumb\\":{\\"@id\\":\\"https://namespace.so/docs/bazel/observability#breadcrumb\\"}},{\\"@type\\":\\"BreadcrumbList\\",\\"@id\\":\\"https://namespace.so/docs/bazel/observability#breadcrumb\\",\\"itemListElement\\":\[{\\"@type\\":\\"ListItem\\",\\"position\\":1,\\"name\\":\\"Products\\",\\"item\\":\\"https://namespace.so/docs/solutions/github-actions/index\\"},{\\"@type\\":\\"ListItem\\",\\"position\\":2,\\"name\\":\\"Bazel\\",\\"item\\":\\"https://namespace.so/docs/bazel/index\\"},{\\"@type\\":\\"ListItem\\",\\"position\\":3,\\"name\\":\\"Bazel observability\",\"item\":\"https://namespace.so/docs/bazel/observability\\"}\]},{\\"@type\\":\[\\"Article\\",\\"TechArticle\\"\],\\"@id\\":\\"https://namespace.so/docs/bazel/observability#article\\",\\"headline\\":\\"Bazel observability\",\"name\":\"Bazel observability\",\"url\":\"https://namespace.so/docs/bazel/observability\\",\\"mainEntityOfPage\\":{\\"@id\\":\\"https://namespace.so/docs/bazel/observability#webpage\\"},\\"dateModified\\":\\"2026-09-22T09:40:17.000Z\\",\\"publisher\\":{\\"@id\\":\\"https://namespace.so/#organization\\"},\\"isPartOf\\":{\\"@id\\":\\"https://namespace.so/docs#website\\"}}\]}\\u003c/script>\\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\\",\\"@type\\":\\"WebSite\\",\\"name\\":\\"Namespace Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\\"}}\\u003c/script>","siteName":"Namespace Documentation","nav":{"global":{"anchors":[{"anchor":"Changelog","icon":"history","href":"https://namespace.so/changelog"},{"anchor":"Trust Center (SOC2)","icon":"shield-check","href":"https://trust.namespace.so/"},{"anchor":"Status","icon":"activity","href":"https://namespace-status.com/"},{"anchor":"Support","icon":"message-circle","href":"https://namespace.so/support"}\]},"products":\[{"product":"Products","description":"Turnkey products built on the Namespace platform","tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Namespace Documentation","sidebarTitle":"Overview","href":""},{"group":"Products","pages":[{"group":"GitHub Actions","icon":"github","pages":[{"title":"Accelerate your GitHub Actions with Namespace","sidebarTitle":"Getting Started","href":"/solutions/github-actions/index"},{"group":"Cache Volumes","pages":[{"title":"Caching in GitHub Actions","sidebarTitle":"Overview","href":"/solutions/github-actions/caching/index"},{"title":"Container Images","href":"/solutions/github-actions/caching/container-images"},{"title":"Git Checkouts","href":"/solutions/github-actions/caching/git-checkouts"},{"title":"Toolchains","sidebarTitle":"Toolchains","href":"/solutions/github-actions/caching/toolchains"},{"title":"Actions","sidebarTitle":"Actions","href":"/solutions/github-actions/caching/actions"},{"title":"Build System Integrations","sidebarTitle":"Build Systems","href":"/solutions/github-actions/caching/build-systems"},{"title":"Troubleshooting cache volumes","sidebarTitle":"Troubleshooting","href":"/solutions/github-actions/caching/troubleshooting"}]},{"title":"Fast repository checkouts with Git snapshots","sidebarTitle":"Git Snapshots","href":"/solutions/github-actions/git-snapshots"},{"title":"Optimizing Docker build performance","sidebarTitle":"Docker Builds","href":"/solutions/github-actions/docker-builds"},{"title":"Custom base images for GitHub Actions","sidebarTitle":"Custom Base Images","href":"/solutions/github-actions/custom-base-images/index"},{"group":"Debugging","pages":[{"title":"Debugging GitHub Actions","sidebarTitle":"Overview","href":"/solutions/github-actions/debugging/index"},{"title":"Interactive Access","href":"/solutions/github-actions/debugging/interactive-access"},{"title":"Remote Display","href":"/solutions/github-actions/debugging/remote-display"},{"title":"Performance Metrics","href":"/solutions/github-actions/debugging/performance-metrics"},{"title":"Advanced Logging","href":"/solutions/github-actions/debugging/logging"},{"title":"Out of memory (OOM) detection","sidebarTitle":"OOM Detection","href":"/solutions/github-actions/debugging/oom-detection"},{"title":"Crash Dumps","href":"/solutions/github-actions/debugging/crash-dumps"},{"title":"Queue Time","href":"/solutions/github-actions/debugging/queue-time"}]},{"group":"Runner Controls","pages":[{"title":"Runner Controls","sidebarTitle":"Overview","href":"/solutions/github-actions/runner-controls"},{"title":"Concurrent runners","href":"/solutions/github-actions/runner-controls/concurrent-runners"},{"title":"Job Ordering \u0026 Priority","sidebarTitle":"Job Ordering","href":"/solutions/github-actions/runner-controls/job-ordering"},{"title":"Privileged Workflows","sidebarTitle":"Privileged Workflows","href":"/solutions/github-actions/runner-controls/privileged-workflows"},{"title":"Landlock","sidebarTitle":"Landlock","href":"/solutions/github-actions/runner-controls/landlock"},{"title":"Swap Space","sidebarTitle":"Swap Space","href":"/solutions/github-actions/runner-controls/swap"},{"title":"Tailscale","sidebarTitle":"Tailscale","href":"/solutions/github-actions/runner-controls/tailscale"},{"title":"Access Levels","sidebarTitle":"Access Levels","href":"/solutions/github-actions/runner-controls/access-levels"},{"title":"Running jobs in containers","sidebarTitle":"Containerized Jobs","href":"/solutions/github-actions/runner-controls/containerized-jobs"}]},{"title":"Optimizing Usage","href":"/solutions/github-actions/optimizing-usage"},{"title":"Runner Labels","sidebarTitle":"Runner Labels","href":"/reference/github-actions/runner-configuration"},{"group":"Actions","expanded":false,"pages":[{"title":"nscloud-setup","href":"/reference/github-actions/nscloud-setup"},{"title":"nscloud-setup-buildx-action","href":"/reference/github-actions/nscloud-setup-buildx-action"},{"title":"nscloud-cluster-action","href":"/reference/github-actions/nscloud-cluster-action"},{"title":"nscloud-cache-action","href":"/reference/github-actions/nscloud-cache-action"},{"title":"nscloud-checkout-action","href":"/reference/github-actions/nscloud-checkout-action"},{"title":"nscloud-expose-kubernetes-action","href":"/reference/github-actions/nscloud-expose-kubernetes-action"},{"title":"breakpoint-action","href":"/reference/github-actions/breakpoint"},{"title":"upload-artifact","href":"/reference/github-actions/upload-artifact"},{"title":"download-artifact","href":"/reference/github-actions/download-artifact"},{"title":"setup-turbocache","href":"/reference/github-actions/setup-turbocache"}]}]},{"group":"Devboxes","icon":"container","pages":[{"title":"High-Performance Developer Environments with Devboxes","sidebarTitle":"Getting Started","href":"/devbox/index"},{"group":"Managing Devboxes","expanded":false,"pages":[{"title":"Devbox Lifecycle","sidebarTitle":"Lifecycle","href":"/devbox/lifecycle"},{"title":"Devbox Blueprints","sidebarTitle":"Blueprints","href":"/devbox/blueprint"},{"title":"Devbox Services","sidebarTitle":"Services","href":"/devbox/services"},{"title":"Shareable URLs","href":"/devbox/url"},{"title":"Custom Images","href":"/devbox/images"}]},{"group":"Working in a Devbox","expanded":false,"pages":[{"title":"Connecting to a Devbox","sidebarTitle":"SSH \u0026 Sessions","href":"/devbox/connecting"},{"title":"Executing Commands","href":"/devbox/exec"},{"title":"Running long tasks","sidebarTitle":"Long Running Tasks","href":"/guides/devbox/long-running-tasks"},{"title":"Computer Controls","sidebarTitle":"Computer Use","href":"/devbox/computer-use"},{"title":"Remote Desktop","sidebarTitle":"Remote Desktop","href":"/devbox/remote-desktop"},{"title":"Open IDE","href":"/devbox/ides"}]},{"group":"Managed Agents","tag":"Integrations","expanded":false,"pages":[{"title":"Amp Orbs","sidebarTitle":"Amp Orbs","href":"/integrations/amp"},{"title":"Claude Managed Agents","sidebarTitle":"Claude Managed Agents","href":"/integrations/claude"},{"title":"Cursor Cloud Agents","sidebarTitle":"Cursor Cloud Agents","href":"/integrations/cursor"},{"title":"Devin on Devboxes","sidebarTitle":"Devin","href":"/integrations/devin"}]}]},{"group":"Bazel","icon":"hammer","pages":[{"title":"Speed up your Bazel builds with Namespace","sidebarTitle":"Introduction","href":"/bazel/index"},{"title":"Bazel cache","sidebarTitle":"Caching","href":"/bazel/cache"},{"title":"Bazel Remote Execution","sidebarTitle":"Remote Build Execution","description":null,"href":"/bazel/execution"},{"title":"Bazel observability","sidebarTitle":"Observability","href":"/bazel/observability"}]},{"group":"Docker Builders","icon":"container","pages":[{"title":"Speed up your Docker Builds with Namespace","sidebarTitle":"Getting Started","description":null,"href":"/solutions/docker-builders/index"},{"title":"Container Registry","href":"/solutions/docker-builders/registry"},{"title":"Docker Build Observability","sidebarTitle":"Tracing \u0026 Logs","href":"/solutions/docker-builders/tracing-and-logs"}]},{"group":"Buildkite Agents","icon":"workflow","pages":[{"title":"Run Buildkite Jobs on Namespace","sidebarTitle":"Getting Started","href":"/solutions/buildkite-agents/index"},{"title":"Managing Buildkite Queues","sidebarTitle":"Managing Queues","href":"/solutions/buildkite-agents/managing-queues"},{"title":"Configure Buildkite Agents","sidebarTitle":"Configuration","href":"/solutions/buildkite-agents/configuration"},{"title":"Fast repository checkouts with Git snapshots","sidebarTitle":"Git Snapshots","href":"/solutions/buildkite-agents/git-snapshots"}]}]},{"group":"Platform","pages":[{"group":"Compute","icon":"cpu","pages":[{"title":"Compute Platform","sidebarTitle":"Overview","href":"/architecture/compute/index"},{"title":"Linux","href":"/architecture/compute/linux"},{"title":"macOS","href":"/architecture/compute/macos"},{"title":"Windows","href":"/architecture/compute/windows"},{"title":"Observability","href":"/architecture/compute/observability"},{"title":"SSH / Remote Display with Namespace Compute","sidebarTitle":"SSH / Remote Display","href":"/architecture/compute/ssh-remote-display"},{"title":"Machine Shapes","href":"/architecture/compute/machine-shapes"},{"title":"Resource Limits","href":"/architecture/compute/resource-limits"}]},{"group":"Storage","icon":"database","pages":[{"title":"Storage","sidebarTitle":"Overview","href":"/architecture/storage/index"},{"title":"Cache Volumes","href":"/architecture/storage/cache-volumes"},{"title":"Container Registry","href":"/architecture/storage/container-registry"},{"title":"Artifact Storage","href":"/architecture/storage/artifact-storage"},{"title":"Secrets","href":"/architecture/storage/secrets"}]},{"group":"Networking","icon":"network","pages":[{"title":"Networking","sidebarTitle":"Overview","href":"/architecture/networking/index"},{"title":"Ingress","href":"/architecture/networking/ingress"},{"title":"Network Performance Optimizations","sidebarTitle":"Performance","href":"/architecture/networking/performance"},{"title":"Network Security","sidebarTitle":"Security","href":"/architecture/networking/security"},{"title":"Egress policies","href":"/security/egress-policy"}]}]},{"group":"Administration","pages":[{"group":"Workspaces","icon":"briefcase-business","pages":[{"title":"Workspaces","sidebarTitle":"Overview","href":"/workspaces/index"},{"title":"Workspace Access Controls","sidebarTitle":"Access","href":"/workspaces/access"},{"title":"Billing \u0026 Included Amounts","sidebarTitle":"Billing and limits","href":"/workspaces/billing-and-limits"},{"title":"Data Residency for Workspaces","sidebarTitle":"Data residency","href":"/workspaces/data-residency"},{"title":"Security \u0026 Compliance","sidebarTitle":"Security","href":"/workspaces/security"},{"title":"Audit Logs","sidebarTitle":"Audit logging","href":"/security/auditlog"},{"title":"Permissions","href":"/security/permissions"}]},{"group":"Federation","icon":"shield-check","pages":[{"title":"Workload Federation","sidebarTitle":"Overview","href":"/federation/index"},{"title":"Workload Federation with AWS","sidebarTitle":"AWS","href":"/federation/aws"},{"title":"Workload Federation with GCP","sidebarTitle":"GCP","href":"/federation/gcp"},{"title":"Workload Federation with OpenID Connect","sidebarTitle":"OpenID","href":"/federation/openid"},{"title":"Identity Federation with GitHub Actions","sidebarTitle":"Github Actions","href":"/federation/github-actions"},{"title":"Identity Federation with CircleCI","sidebarTitle":"CircleCI","href":"/federation/circleci"},{"title":"Identity Federation with RWX","sidebarTitle":"RWX","href":"/federation/rwx"}]},{"group":"Dashboard","icon":"layout-dashboard","pages":[{"title":"GitHub Actions Overview","sidebarTitle":"GitHub Actions","href":"/dashboard/github-actions"},{"title":"Builds UI","sidebarTitle":"Builds","href":"/dashboard/builds"},{"title":"Registry UI","sidebarTitle":"Registry","href":"/dashboard/registry"},{"title":"Usage Explorer","href":"/dashboard/usage-explorer"}]}]}]},{"tab":"Integrations","icon":"blocks","pages":[{"title":"Integrations","href":"/integrations/turborepo"}]},{"tab":"CLI","icon":"square-terminal","pages":[{"title":"CLI","href":"/reference/cli"}]},{"tab":"SDK","icon":"braces","pages":[{"title":"SDK","href":"/reference/sdk"}]},{"tab":"MCP","icon":"plug","pages":[{"title":"MCP","href":"/reference/mcp"}]}]},{"product":"Platform","description":"Lower-level primitives to build your own","pages":[{"title":"Platform","href":"/platform"}]}]},"title":"Bazel observability - Namespace Documentation","buildId":"dpl_GvhK4qVXq51DpfYJLCtPpYNN4YHN","deploymentId":"dpl_GvhK4qVXq51DpfYJLCtPpYNN4YHN","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-5VlDM5Io.js","DynamicMarkdown-DO1Fz7ar.js","zoom-image-lightbox-uyuQJRFs.js","lightbox-handle-r17bVUz3.js"]}