Learn to compare AI traces side-by-side in Netra to debug regressions and analyze performance differences between prompt versions or model updates.
Trace comparison helps you understand why two executions of the same workflow produced different results, latencies, or costs. This is useful for debugging regressions, A/B testing prompts, and analyzing performance variations.
The comparison view displays two traces side-by-side, making it easy to spot differences in execution flow, timing, and outcomes.
Each trace shows its complete timeline with expandable spans. You can see:
Trace ID and timestamp at the top of each panel
Hierarchical span structure showing the full execution flow (e.g., pdf-qa-query → retrieval → query-embedding → openai.embedding)
Duration for each span displayed on the right side
Color coding — error spans are shown in red, successfully executed spans in green
Click on any span to expand it and see its child spans. The Metadata panel below each timeline shows detailed attributes for the selected span — session ID, user ID, environment, HTTP details, instrumentation info, and any custom attributes you’ve added. For LLM calls, this also includes the full prompt and response content.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Netra Docs","description":"Get started with Netra, the agent observability, evaluation, and simulation platform: quick start, features, configuration, SDKs, and analytics.","colors":{"primary":"#de8900","light":"#ffb030","dark":"#c28015"},"logo":{"light":"https://mintcdn.com/netra/1ia3d6PyPeHWosXy/images/logo.webp?fit=max\u0026auto=format\u0026n=1ia3d6PyPeHWosXy\u0026q=85\u0026s=e02f03f860c5d038c9e54a14d75f3bdc","dark":"https://mintcdn.com/netra/1ia3d6PyPeHWosXy/images/logo.webp?fit=max\u0026auto=format\u0026n=1ia3d6PyPeHWosXy\u0026q=85\u0026s=e02f03f860c5d038c9e54a14d75f3bdc","href":"https://docs.getnetra.ai/netra"},"favicon":"https://mintlify.s3.us-west-1.amazonaws.com/netra/images/favicon.webp","navbar":{"links":[{"href":"https://getnetra.ai/contact-us/","label":"Help \u0026 Support"}],"primary":{"type":"button","label":"Get Netra","href":"https://getnetra.ai/"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/getnetra","youtube":"https://www.youtube.com/@getnetra","x-twitter":"https://x.com/getnetraAI"}},"integrations":{"ga4":{"measurementId":"G-3YDX95VL9Y"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Github","icon":"github","href":"https://github.com/KeyValueSoftwareSystems/netra-sdk-py"},{"anchor":"Python SDK","icon":"python","href":"https://docs.getnetra.ai/sdk-reference/sdk/python"},{"anchor":"TypeScript SDK","icon":"js","href":"https://docs.getnetra.ai/sdk-reference/sdk/typescript"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"netra","hasAudioNarration":false,"actualSubdomain":"netra","customDomains":["docs.getnetra.ai"],"gitSource":{"type":"github","owner":"keyvaluesoftwaresystems","repo":"netra-ai-docs","deployBranch":"chore/doc-revamp-v1","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad732bcf1eac1c6bf423343","collectionId":"c1e6439e-37f4-4945-923f-0c8269682ca4","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad732bcf1eac1c6bf423343"},"entitlements":{},"buildId":"6ad732bcf1eac1c6bf423343","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Documentation","count":57},{"language":"default","tag":"Integrations","count":43},{"language":"default","tag":"Observability","count":17},{"language":"default","tag":"LLM Providers","count":14},{"language":"default","tag":"SDK","count":14},{"language":"default","tag":"LLM Frameworks","count":10},{"language":"default","tag":"Cookbooks","count":9},{"language":"default","tag":"Traces","count":9},{"language":"default","tag":"Get Started","count":8},{"language":"default","tag":"Evaluations","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"Tutorials/comparing-traces","slug":"/Tutorials/comparing-traces","pageMetadata":{"title":"Comparing Traces","description":"Learn to compare AI traces side-by-side in Netra to debug regressions and analyze performance differences between prompt versions or model updates.","icon":"code-compare","href":"/Tutorials/comparing-traces"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn to compare AI traces side-by-side in Netra to debug regressions and analyze performance differences between prompt versions or model updates.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"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`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Frame,Heading,OptimizedImage}=_components;if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Trace comparison helps you understand why two executions of the same workflow produced different results, latencies, or costs. This is useful for debugging regressions, A/B testing prompts, and analyzing performance variations.`}),`\n`,_jsx(Heading,{level:`2`,id:`when-to-compare-traces`,children:`When to Compare Traces`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Debugging regressions`}),` - Compare a failing trace with a successful one to spot differences`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`A/B testing`}),` - Compare traces from different prompt versions or model configurations`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Performance analysis`}),` - Identify why some requests are slower than others`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cost optimization`}),` - Compare token usage across different approaches`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`accessing-trace-comparison`,children:`Accessing Trace Comparison`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Navigate to `,_jsx(_components.strong,{children:`Observability → Traces`}),` in the Netra dashboard`]}),`\n`,_jsx(_components.li,{children:`Select the first trace you want to compare by clicking on it`}),`\n`,_jsxs(_components.li,{children:[`Hold `,_jsx(_components.code,{children:`Shift`}),` and click on the second trace, or use the checkbox selection`]}),`\n`,_jsxs(_components.li,{children:[`Click the `,_jsx(_components.strong,{children:`Compare`}),` button in the toolbar`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintlify.s3.us-west-1.amazonaws.com/netra/images/trace-compare-select.png`,alt:`Select Traces for Comparison`}),`\n`,_jsx(Heading,{level:`2`,id:`understanding-the-comparison-view`,children:`Understanding the Comparison View`}),`\n`,_jsx(_components.p,{children:`The comparison view displays two traces side-by-side, making it easy to spot differences in execution flow, timing, and outcomes.`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/netra/UP2HIbcHMsDfisp5/images/trace-compare-view.png?fit=max\u0026auto=format\u0026n=UP2HIbcHMsDfisp5\u0026q=85\u0026s=1c84b8ea60241e3021bc5a6223c129cd`,alt:`Trace Comparison View`,\"data-og-width\":`2418`,width:`2418`,\"data-og-height\":`1668`,height:`1668`,\"data-path\":`images/trace-compare-view.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/netra/UP2HIbcHMsDfisp5/images/trace-compare-view.png?w=280\u0026fit=max\u0026auto=format\u0026n=UP2HIbcHMsDfisp5\u0026q=85\u0026s=8c6e341eaf9711c5ba6dd61d1e4c3c5c 280w, https://mintcdn.com/netra/UP2HIbcHMsDfisp5/images/trace-compare-view.png?w=560\u0026fit=max\u0026auto=format\u0026n=UP2HIbcHMsDfisp5\u0026q=85\u0026s=20ea01c638bafe3e2d9fef8547ae21e5 560w, https://mintcdn.com/netra/UP2HIbcHMsDfisp5/images/trace-compare-view.png?w=840\u0026fit=max\u0026auto=format\u0026n=UP2HIbcHMsDfisp5\u0026q=85\u0026s=c46d10c53c3b8ba722743d8e3dbcfcfc 840w, https://mintcdn.com/netra/UP2HIbcHMsDfisp5/images/trace-compare-view.png?w=1100\u0026fit=max\u0026auto=format\u0026n=UP2HIbcHMsDfisp5\u0026q=85\u0026s=91db91ef22a2d635198234b894f0af40 1100w, https://mintcdn.com/netra/UP2HIbcHMsDfisp5/images/trace-compare-view.png?w=1650\u0026fit=max\u0026auto=format\u0026n=UP2HIbcHMsDfisp5\u0026q=85\u0026s=43d6dfeb93203881b5f127ee9d274ee7 1650w, https://mintcdn.com/netra/UP2HIbcHMsDfisp5/images/trace-compare-view.png?w=2500\u0026fit=max\u0026auto=format\u0026n=UP2HIbcHMsDfisp5\u0026q=85\u0026s=4b6dec0c9da83a1b62ce7c71bfa5fcaf 2500w`})}),`\n`,_jsx(_components.p,{children:`Each trace shows its complete timeline with expandable spans. You can see:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Trace ID and timestamp`}),` at the top of each panel`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Hierarchical span structure`}),` showing the full execution flow (e.g., `,_jsx(_components.code,{children:`pdf-qa-query`}),` → `,_jsx(_components.code,{children:`retrieval`}),` → `,_jsx(_components.code,{children:`query-embedding`}),` → `,_jsx(_components.code,{children:`openai.embedding`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Duration for each span`}),` displayed on the right side`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Color coding`}),` — error spans are shown in red, successfully executed spans in green`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Click on any span to expand it and see its child spans. The `,_jsx(_components.strong,{children:`Metadata`}),` panel below each timeline shows detailed attributes for the selected span — session ID, user ID, environment, HTTP details, instrumentation info, and any custom attributes you’ve added. For LLM calls, this also includes the full prompt and response content.`]}),`\n`,_jsx(Heading,{level:`2`,id:`comparison-scenarios`,children:`Comparison Scenarios`}),`\n`,_jsx(Heading,{level:`3`,id:`scenario-1-debugging-a-slow-request`,children:`Scenario 1: Debugging a Slow Request`}),`\n`,_jsx(_components.p,{children:`You notice some requests taking 5x longer than usual. Compare a slow trace with a fast one:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Filter traces by duration to find a slow example`}),`\n`,_jsx(_components.li,{children:`Find a similar request with normal duration`}),`\n`,_jsx(_components.li,{children:`Compare the two traces`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`What to look for:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Spans that are significantly slower in one trace`}),`\n`,_jsx(_components.li,{children:`Additional spans in the slow trace (retry loops, fallbacks)`}),`\n`,_jsx(_components.li,{children:`Different code paths being executed`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`scenario-2-comparing-prompt-versions`,children:`Scenario 2: Comparing Prompt Versions`}),`\n`,_jsx(_components.p,{children:`You’ve updated a prompt and want to verify the change:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Run both prompt versions with the same input`}),`\n`,_jsx(_components.li,{children:`Capture the trace IDs or find them by timestamp`}),`\n`,_jsx(_components.li,{children:`Compare the traces`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`What to look for:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Token count differences (is the new prompt more efficient?)`}),`\n`,_jsx(_components.li,{children:`Response quality differences in the completion content`}),`\n`,_jsx(_components.li,{children:`Latency changes`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`scenario-3-investigating-failures`,children:`Scenario 3: Investigating Failures`}),`\n`,_jsx(_components.p,{children:`A request that usually succeeds is now failing:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Find a recent failed trace`}),`\n`,_jsx(_components.li,{children:`Find a recent successful trace for the same operation`}),`\n`,_jsx(_components.li,{children:`Compare to identify the divergence point`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`What to look for:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The span where the error occurred`}),`\n`,_jsx(_components.li,{children:`Input differences that might have caused the failure`}),`\n`,_jsx(_components.li,{children:`Missing or different API responses`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`tips-for-effective-comparison`,children:`Tips for Effective Comparison`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Use consistent naming`}),` - Ensure your spans have consistent names across traces so they align properly in comparison view.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Add identifying attributes`}),` - Include attributes like `,_jsx(_components.code,{children:`request.id`}),`, `,_jsx(_components.code,{children:`user.id`}),`, or `,_jsx(_components.code,{children:`experiment.variant`}),` to make traces easier to find and compare.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Compare similar operations`}),` - Comparing traces from completely different workflows won’t be useful. Filter to the same operation type.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Check timestamps`}),` - Ensure you’re comparing traces from similar time periods to avoid infrastructure differences.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`exporting-comparison-data`,children:`Exporting Comparison Data`}),`\n`,_jsx(_components.p,{children:`To share comparison results with your team:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Export`}),` in the comparison view`]}),`\n`,_jsxs(_components.li,{children:[`Choose your format:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`PDF`}),` - Visual report with timeline and metrics`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`JSON`}),` - Raw data for programmatic analysis`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.li,{children:`The export includes both traces and highlighted differences`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/Tutorials/custom-trace-views`,children:`Custom Trace Views`}),` - Create saved views to quickly find traces for comparison`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/Observability/Traces/overview`,children:`Traces Overview`}),` - Learn more about traces and spans`]}),`\n`]})]})}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":"Comparing Traces","description":"Learn to compare AI traces side-by-side in Netra to debug regressions and analyze performance differences between prompt versions or model updates.","icon":"code-compare","href":"/Tutorials/comparing-traces"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When to Compare Traces","slug":"when-to-compare-traces","depth":2,"children":[]},{"title":"Accessing Trace Comparison","slug":"accessing-trace-comparison","depth":2,"children":[]},{"title":"Understanding the Comparison View","slug":"understanding-the-comparison-view","depth":2,"children":[]},{"title":"Comparison Scenarios","slug":"comparison-scenarios","depth":2,"children":[{"title":"Scenario 1: Debugging a Slow Request","slug":"scenario-1-debugging-a-slow-request","depth":3,"children":[]},{"title":"Scenario 2: Comparing Prompt Versions","slug":"scenario-2-comparing-prompt-versions","depth":3,"children":[]},{"title":"Scenario 3: Investigating Failures","slug":"scenario-3-investigating-failures","depth":3,"children":[]}]},{"title":"Tips for Effective Comparison","slug":"tips-for-effective-comparison","depth":2,"children":[]},{"title":"Exporting Comparison Data","slug":"exporting-comparison-data","depth":2,"children":[]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"netra","siteName":"Netra Docs","title":"Comparing Traces - Netra Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-03-17T08:42:06.084Z","gitLastModified":"2026-03-17T08:41:36.000Z","originalFileLocation":"Tutorials/comparing-traces.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=\"description\" content=\"Learn to compare AI traces side-by-side in Netra to debug regressions and analyze performance differences between prompt versions or model updates.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Netra Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_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=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Comparing Traces - Netra Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn to compare AI traces side-by-side in Netra to debug regressions and analyze performance differences between prompt versions or model updates.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Netra Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getnetra.ai/Tutorials/comparing-traces\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://netra.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Comparing+Traces\u0026amp;description=Learn+to+compare+AI+traces+side-by-side+in+Netra+to+debug+regressions+and+analyze+performance+differences+between+prompt+versions+or+model+updates.\u0026amp;theme=7f96df49742eff5ae272e33e\u0026amp;signature=fb9c3b1e97df9f950eeabc5dfa9b057f2a8ea211e9448e1a509d1a8005fb9de0\">\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=\"Comparing Traces - Netra Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn to compare AI traces side-by-side in Netra to debug regressions and analyze performance differences between prompt versions or model updates.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://netra.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Comparing+Traces\u0026amp;description=Learn+to+compare+AI+traces+side-by-side+in+Netra+to+debug+regressions+and+analyze+performance+differences+between+prompt+versions+or+model+updates.\u0026amp;theme=7f96df49742eff5ae272e33e\u0026amp;signature=fb9c3b1e97df9f950eeabc5dfa9b057f2a8ea211e9448e1a509d1a8005fb9de0\">\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=\"/mintlify-assets/_mintlify/favicons/netra/HA-8nRDCuOtEnrbQ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Netra Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#de8900\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getnetra.ai/Tutorials/comparing-traces\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/Tutorials/comparing-traces.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Netra Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Netra Docs","nav":{"global":{"anchors":[{"anchor":"Github","icon":"github","href":"https://github.com/KeyValueSoftwareSystems/netra-sdk-py"},{"anchor":"Python SDK","icon":"python","href":"https://docs.getnetra.ai/sdk-reference/sdk/python"},{"anchor":"TypeScript SDK","icon":"js","href":"https://docs.getnetra.ai/sdk-reference/sdk/typescript"}]},"tabs":[{"tab":"Documentation","icon":"book","groups":[{"group":" ","pages":[{"title":"Netra","icon":"house","href":"/netra"},{"title":"Netra FAQs","icon":"circle-question","href":"/FAQs/FAQs"}]},{"group":"Get Started","icon":"rocket","pages":[{"title":"Overview","icon":"flag-checkered","href":"/quick-start/Overview"},{"group":"Quick Start","icon":"play","pages":[{"title":"Quick Start: Tracing","icon":"route","href":"/quick-start/QuickStart_Tracing"},{"title":"Quick Start: Evaluation","icon":"clipboard-check","href":"/quick-start/QuickStart_Evals"},{"title":"Quick Start: Simulation","icon":"flask","href":"/quick-start/QuickStart_Simulation"},{"title":"Quick Start: Alerts","icon":"bell","href":"/quick-start/QuickStart_Alerts"}]},{"title":"Integration Best Practices","sidebarTitle":"Best Practices","icon":"shield-check","href":"/Best-Practices/Integration-Best-Practices"}]},{"group":"Observability","icon":"eye","pages":[{"group":"Traces","icon":"route","pages":[{"title":"Traces Overview","icon":"binoculars","href":"/Observability/Traces/overview"},{"title":"Spans","icon":"diagram-project","href":"/Observability/Traces/spans"},{"title":"Auto Instrumentation","icon":"wand-magic-sparkles","href":"/Observability/Traces/auto-instrumentation"},{"title":"Decorators","icon":"at","href":"/Observability/Traces/decorators"},{"title":"Manual Tracing","icon":"hand","href":"/Observability/Traces/manual-tracing"},{"group":"Configuration","icon":"gear","pages":[{"title":"Initialization","icon":"power-off","href":"/Observability/Traces/configuration/initialization"},{"title":"Environment Variables","icon":"leaf","href":"/Observability/Traces/configuration/environment-variables"},{"title":"Instrumentation Selection","icon":"list-check","href":"/Observability/Traces/configuration/instrumentation-selection"},{"title":"Custom Exporters","icon":"upload","href":"/Observability/Traces/configuration/custom-exporters"}]}]},{"title":"Tenants","icon":"building","href":"/Observability/Tenants"},{"title":"Agents","icon":"robot","href":"/Observability/Agents"},{"title":"Users","icon":"user","href":"/Observability/Users"},{"title":"Sessions","icon":"clock-rotate-left","href":"/Observability/Session"}]},{"group":"Insights","icon":"chart-line","pages":[{"title":"Insights Overview","icon":"chart-line","href":"/Insights/Insights-overview"},{"title":"Intents","icon":"list-check","href":"/Insights/Intents"},{"title":"Drifts","icon":"arrow-trend-up","href":"/Insights/Drifts"}]},{"group":"Evaluations","icon":"clipboard-check","pages":[{"title":"Evaluation Overview","icon":"gauge-high","href":"/Evaluations/evaluation-overview"},{"title":"Test Runs","icon":"flask-vial","href":"/Evaluations/TestRuns"},{"title":"Analytics","icon":"chart-line","href":"/Evaluations/Analytics"},{"group":"Text Evaluations","icon":"font","pages":[{"title":"Evaluations","icon":"table","href":"/Evaluations/text-evaluations/evaluations"},{"title":"Agents","icon":"robot","href":"/Evaluations/text-evaluations/agents"},{"title":"Online Evaluations","icon":"signal-bars-good","href":"/Evaluations/text-evaluations/online-evaluation"}]},{"group":"Image Evaluations","icon":"image","pages":[{"title":"Evaluations","icon":"table","href":"/Evaluations/image-evaluations/evaluations"},{"title":"Online Evaluations","icon":"signal-bars-good","href":"/Evaluations/image-evaluations/online-evaluation"}]}]},{"group":"Simulations","icon":"flask","pages":[{"title":"Simulation Overview","icon":"vial-circle-check","href":"/Simulations/Simulation-overview"},{"title":"Test Runs","icon":"flask-vial","href":"/Simulations/TestRuns"},{"title":"Analytics","icon":"chart-line","href":"/Simulations/Analytics"},{"group":"Text Simulations","icon":"font","pages":[{"title":"Simulations","icon":"table","href":"/Simulations/text-simulations/Simulations"},{"title":"Agents","icon":"robot","href":"/Simulations/text-simulations/agents"}]},{"group":"Voice Simulations","icon":"microphone","pages":[{"title":"Agents","icon":"robot","href":"/Simulations/voice-simulations/agents"},{"title":"Simulations","icon":"table","href":"/Simulations/voice-simulations/Simulations"},{"title":"Personas","icon":"user-group","href":"/Simulations/voice-simulations/Personas"}]}]},{"group":"Evaluators","icon":"scale-balanced","pages":[{"title":"Overview","icon":"scale-balanced","href":"/Evaluators/overview"},{"title":"Text Evaluators","icon":"font","href":"/Evaluators/text-evaluators"},{"title":"Voice Evaluators","icon":"microphone","href":"/Evaluators/voice-evaluators"},{"title":"Image Evaluators","icon":"image","href":"/Evaluators/image-evaluators"}]},{"group":"Red Teaming","icon":"shield-halved","pages":[{"title":"Overview","icon":"shield-halved","href":"/Redteaming/Redteaming-overview"},{"title":"Suites \u0026 Evaluators","icon":"shield-check","href":"/Redteaming/Suites-and-Evaluators"},{"title":"Setup","icon":"gear","href":"/Redteaming/Configs"},{"title":"Runs \u0026 Results","icon":"play","href":"/Redteaming/Runs"},{"title":"Risk Scores \u0026 Progress","icon":"chart-line","href":"/Redteaming/Risk-Scores"}]},{"group":"Prompt Management","icon":"square-code","pages":[{"title":"Prompt Studio","icon":"message-pen","href":"/prompt-management/prompt-studio"},{"title":"Stress Testing","icon":"gauge-high","iconType":"solid","href":"/prompt-management/stress-testing"}]},{"group":"Monitoring \u0026 Dashboard","icon":"chart-line","pages":[{"title":"Custom Dashboard","icon":"chart-mixed","href":"/Dashboard/Custom-dashboard"},{"title":"Alert Rules","icon":"bell","href":"/Alert-rules/Alert-rules"}]},{"group":"Account settings","icon":"wrench","pages":[{"title":"Organization Settings","icon":"users-gear","href":"/Account-settings/Organisation"},{"title":"Project Settings","icon":"folder-gear","href":"/Account-settings/project"}]},{"group":"Migrations","icon":"truck","pages":[{"title":"Helicone to Netra","icon":"cube","href":"/Migrations/Helicone"},{"title":"Portkey to Netra","icon":"hexagon","href":"/Migrations/Portkey"}]}]},{"tab":"Integrations","icon":"plug","groups":[{"group":" ","pages":[{"title":"Integrations Overview","icon":"plug","href":"/Integrations/overview"},{"group":"LLM Providers","icon":"brain","pages":[{"title":"OpenAI","href":"/Integrations/ai_providers/OPENAI"},{"title":"Claude","href":"/Integrations/ai_providers/ANTHROPIC_CLAUDE"},{"title":"Gemini","href":"/Integrations/ai_providers/GEMINI"},{"title":"AWS Bedrock","href":"/Integrations/ai_providers/AWS_BEDROCK"},{"title":"Mistral AI","href":"/Integrations/ai_providers/MISTRAL"},{"title":"Groq","href":"/Integrations/ai_providers/GROQ"},{"title":"Cohere","href":"/Integrations/ai_providers/COHERE"},{"title":"Vertex AI","href":"/Integrations/ai_providers/VERTEXAI"},{"title":"Ollama","href":"/Integrations/ai_providers/OLLAMA"},{"title":"Together AI","href":"/Integrations/ai_providers/TOGETHERAI"},{"title":"Replicate","href":"/Integrations/ai_providers/REPLICATE"},{"title":"Hugging Face Transformers","href":"/Integrations/ai_providers/HUGGINGFACE_TRANSFORMERS"},{"title":"Aleph Alpha","href":"/Integrations/ai_providers/ALEPH_ALPHA"},{"title":"Watsonx AI","href":"/Integrations/ai_providers/WATSONX"}]},{"group":"LLM Frameworks","icon":"sitemap","pages":[{"title":"LangChain","href":"/Integrations/orchestrators/LangChain"},{"title":"LangGraph","href":"/Integrations/orchestrators/LangGraph"},{"title":"LlamaIndex","href":"/Integrations/orchestrators/LlamaIndex"},{"title":"CrewAI","href":"/Integrations/orchestrators/CrewAI"},{"title":"PydanticAI","href":"/Integrations/orchestrators/PydanticAI"},{"title":"Haystack","href":"/Integrations/orchestrators/Haystack"},{"title":"DSPy","href":"/Integrations/orchestrators/DSPy"},{"title":"Google ADK","href":"/Integrations/orchestrators/ADK"},{"title":"Cerebras","href":"/Integrations/orchestrators/Cerebras"},{"title":"Agno","href":"/Integrations/orchestrators/agno"}]},{"group":"Voice Providers","icon":"microphone","pages":[{"title":"OpenAI Audio","href":"/Integrations/stt-tts-docs/OpenAI_Audio"},{"title":"Google Gemini Audio","href":"/Integrations/stt-tts-docs/Gemini_Audio"},{"title":"Deepgram","href":"/Integrations/stt-tts-docs/Deepgram"},{"title":"ElevenLabs","href":"/Integrations/stt-tts-docs/Elevenlabs"},{"title":"Cartesia","href":"/Integrations/stt-tts-docs/Cartesia"}]},{"group":"Voice Frameworks","icon":"phone","pages":[{"title":"LiveKit","href":"/Integrations/voice-frameworks/LiveKit"},{"title":"Vapi","href":"/Integrations/voice-frameworks/Vapi"},{"title":"Websockets","href":"/Integrations/voice-frameworks/Websockets"}]},{"group":"Vector Databases","icon":"database","pages":[{"title":"Pinecone","href":"/Integrations/db-docs/Pinecone"},{"title":"ChromaDB","href":"/Integrations/db-docs/CHROMA"},{"title":"Weaviate","href":"/Integrations/db-docs/Weavite"},{"title":"Qdrant","href":"/Integrations/db-docs/Qdrant"},{"title":"Milvus","href":"/Integrations/db-docs/Milvus"},{"title":"Redis","href":"/Integrations/db-docs/Redis"},{"title":"LanceDB","href":"/Integrations/db-docs/LanceDB"},{"title":"Marqo","href":"/Integrations/db-docs/Margo"}]},{"group":"Additional Support","icon":"puzzle-piece","pages":[{"title":"LiteLLM","href":"/Integrations/additional-support/LiteLLM"},{"title":"Model Context Protocol (MCP)","href":"/Integrations/additional-support/MCP"}]}]}]},{"tab":"SDK","icon":"code","groups":[{"group":" ","pages":[{"title":"Netra SDK","icon":"box-open","href":"/sdk-reference/sdk/overview"}]},{"group":"Python SDK","icon":"python","pages":[{"title":"Overview","icon":"code","href":"/sdk-reference/sdk/python"},{"title":"Usage \u0026 Traces","icon":"chart-line","href":"/sdk-reference/usage/python"},{"title":"Dashboard Query","icon":"table","href":"/sdk-reference/dashboard-query/python"},{"title":"Evaluation","icon":"clipboard-check","href":"/sdk-reference/evaluation/python"},{"title":"Simulation","icon":"flask","href":"/sdk-reference/simulation/python"},{"title":"Custom Metrics","icon":"gear","href":"/sdk-reference/custom-metric"},{"title":"Prompts","icon":"books","href":"/sdk-reference/prompts"},{"title":"Models","icon":"cube","href":"/sdk-reference/models"}]},{"group":"TypeScript SDK","icon":"js","pages":[{"title":"Overview","icon":"code","href":"/sdk-reference/sdk/typescript"},{"title":"Usage \u0026 Traces","icon":"chart-line","href":"/sdk-reference/usage/typescript"},{"title":"Dashboard Query","icon":"table","href":"/sdk-reference/dashboard-query/typescript"},{"title":"Evaluation","icon":"clipboard-check","href":"/sdk-reference/evaluation/typescript"},{"title":"Simulation","icon":"flask","href":"/sdk-reference/simulation/typescript"}]}]},{"tab":"MCP","icon":"server","groups":[{"group":"Get Started","icon":"bolt","pages":[{"title":"Netra MCP","icon":"server","href":"/mcp/overview"},{"title":"Netra Skills","icon":"sparkles","href":"/mcp/skills"}]}]},{"tab":"Cookbooks","icon":"graduation-cap","groups":[{"group":"Observability","icon":"eye","pages":[{"title":"Tracing a RAG Pipeline","icon":"route","href":"/Cookbooks/observability/tracing-rag-pipeline"},{"title":"Tracing LangChain Agents","icon":"robot","href":"/Cookbooks/observability/tracing-langchain-agents"},{"title":"Tracing CrewAI Pipelines","icon":"users","href":"/Cookbooks/observability/tracing-crewai-pipelines"},{"title":"Multi-Tenant Cost Tracking","icon":"building","href":"/Cookbooks/observability/multi-tenant-cost-tracking"}]},{"group":"Evaluation","icon":"clipboard-check","pages":[{"title":"Evaluating RAG Quality","icon":"clipboard-check","href":"/Cookbooks/evaluation/evaluating-rag-quality"},{"title":"Evaluating Agent Decisions","icon":"robot","href":"/Cookbooks/evaluation/evaluating-agent-decisions"},{"title":"A/B Testing Model Configurations","icon":"flask-vial","href":"/Cookbooks/evaluation/ab-testing-configurations"}]},{"group":"Simulation","icon":"flask","pages":[{"title":"Simulating Customer Support Conversations","icon":"headset","href":"/Cookbooks/simulation/simulating-customer-support"},{"title":"Evaluating a Hotel Front-Desk Voice Agent","icon":"microphone","href":"/Cookbooks/simulation/evaluating-a-hotel-front-desk-voice-agent"}]}]}]},"basePath":"","title":"Comparing Traces - Netra Docs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["a74be98ba7","07c022d89b"],"chunks":["zoom-image-lightbox-eHyQ0tlO.js","lightbox-handle-r17bVUz3.js","Frame-DW6UFrUy.js","DynamicMarkdown-B62XqCSI.js"]}