Let’s take an example where we want to introduce llama2 in our systems (through Anyscale) but we’re not sure of the impact. We can create a config specifically for this use case to test llama2 in production.The config object would look like this
Here we are telling the gateway to send 5% of the traffic to anyscale’s hosted llama2-70b model. Portkey handles all the request transforms to make sure you don’t have to change your code.You can now use this config like this in your requests.Once data starts flowing in, we can use Portkey’s analytics dashboards to see the impact of the new model on cost, latency, errors and feedback.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Portkey (Prisma AIRS AI Gateway) Docs","description":"Comprehensive documentation for AI Gateway, Guardrails, Observability, and Governance features.","colors":{"primary":"#0891B2","light":"#0891B2","dark":"#0891B2"},"logo":{"light":"https://mintcdn.com/portkey-docs/tHk-hgNjLbEj4dhh/images/portkey-PANW-company-logo-positive.png?fit=max\u0026auto=format\u0026n=tHk-hgNjLbEj4dhh\u0026q=85\u0026s=c5fb09014ff79616583b1d3bffe27450","dark":"https://mintcdn.com/portkey-docs/tHk-hgNjLbEj4dhh/images/portkey-PANW-company-logo-negative.png?fit=max\u0026auto=format\u0026n=tHk-hgNjLbEj4dhh\u0026q=85\u0026s=6025ca49ef544522f58ff471b7f75f8f"},"favicon":"https://mintcdn.com/portkey-docs/Hf1XgyjG_b79ym4Q/favicon.png?fit=max\u0026auto=format\u0026n=Hf1XgyjG_b79ym4Q\u0026q=85\u0026s=cbaa1bfc49bb6e3fd6cf499a5da313a3","api":{"openapi":"https://raw.githubusercontent.com/Portkey-AI/openapi/refs/heads/master/openapi.yaml","examples":{"prefill":true},"url":"full"},"navbar":{"links":[{"href":"https://portkey.ai/models","label":"Models"},{"href":"https://support.portkey.ai/forms/customer-portal-ticket-form","label":"Support"},{"href":"https://www.paloaltonetworks.in/ai-security/ai-gateway?utm_source=portkey\u0026utm_medium=referral\u0026utm_campaign=prisma_airs\u0026utm_content=docs_nav#contact","label":"Contact Us"}],"primary":{"type":"button","label":"Sign in","href":"https://stratacloudmanager.paloaltonetworks.com/"}},"footer":{"socials":{"x":"https://twitter.com/PortkeyAI","linkedin":"https://www.linkedin.com/company/portkey-ai","github":"https://git.new/portkey"},"links":[{"header":"For LLMs","items":[{"label":"llms.txt","href":"https://portkey.ai/docs/llms.txt"},{"label":"llms-full.txt","href":"https://portkey.ai/docs/llms-full.txt"}]},{"header":"Products","items":[{"label":"Observability","href":"https://portkey.ai/features/observability"},{"label":"AI Gateway","href":"https://portkey.ai/features/ai-gateway"},{"label":"Guardrails","href":"https://portkey.ai/features/guardrails"},{"label":"Prompt Management","href":"https://portkey.ai/features/prompt-management"},{"label":"Agents","href":"https://portkey.ai/features/agents"},{"label":"MCP Gateway","href":"https://portkey.ai/docs/product/mcp-gateway"},{"label":"Security","href":"https://portkey.ai/features/security-and-compliance"},{"label":"Auto-Instrumentation","href":"https://portkey.ai/features/auto-instrumentation"}]},{"header":"Resources","items":[{"label":"API Status","href":"https://status.portkey.ai/"},{"label":"Helm Charts","href":"https://github.com/portkey-ai/helm"},{"label":"AI Grants Finder","href":"https://grantsfinder.portkey.ai/"},{"label":"Events Calendar","href":"https://lu.ma/portkey"},{"label":"Blog","href":"https://portkey.ai/blog"},{"label":"Error Library","href":"https://portkey.ai/error-library"},{"label":"Models \u0026 Pricing","href":"https://portkey.ai/models"}]},{"header":"Company","items":[{"label":"Pricing","href":"https://portkey.ai/pricing"},{"label":"Compliances","href":"https://trust.portkey.ai/"},{"label":"Privacy Policy","href":"https://portkey.ai/privacy-policy"},{"label":"Terms of Service","href":"https://portkey.ai/terms"},{"label":"DPA","href":"https://portkey.ai/dpa"},{"label":"Cookie Policy","href":"https://portkey.ai/cookie-policy"}]}]},"seo":{"metatags":{"og:type":"website","og:site_name":"Portkey AI Gateway Docs"},"indexing":"navigable"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"system","latex":true},"integrations":{"ga4":{"measurementId":"G-JJMXYE4DRL"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"toc"},"interaction":{"drilldown":true},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"portkey-docs","hasAudioNarration":false,"actualSubdomain":"portkey-docs","customDomains":["docs.portkey.ai","portkey.ai"],"gitSource":{"type":"github","owner":"portkey-ai","repo":"docs-core","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4a3f4c2eaceb0e3450b94","collectionId":"3fc5fddf-cd0a-44c8-8c84-d700aea81ada","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4a3f4c2eaceb0e3450b94"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae4a3f4c2eaceb0e3450b94","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Integrations","count":699},{"language":"default","tag":"Product","count":382},{"language":"default","tag":"Docs","count":320},{"language":"default","tag":"LLM Integrations","count":307},{"language":"default","tag":"More","count":176},{"language":"default","tag":"Admin APIs","count":172},{"language":"default","tag":"Guardrails","count":101},{"language":"default","tag":"AI Gateway","count":99},{"language":"default","tag":"Admin API","count":95},{"language":"default","tag":"Documentation","count":91}],"searchSettings":{"isFiltersEnabled":true,"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@portkey.ai","showHelpButton":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":"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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#banner{background:linear-gradient(90deg,#0d1b2e 0,#1a1040 40%,#2d0f22 100%);border-bottom:1px solid rgba(255,255,255,.08)}#banner a{color:#f0f0f0;text-decoration:none;font-weight:600;border-bottom:1px solid rgba(240,240,240,.5);padding-bottom:1px;transition:border-color .2s ease}#banner a:hover{border-bottom-color:#fff}"}],"page":{"pagePath":"virtual_key_old/product/ai-gateway/canary-testing","slug":"/virtual_key_old/product/ai-gateway/canary-testing","pageMetadata":{"title":"Canary Testing","description":"You can use Portkey's AI gateway to also canary test new models or prompts in different environments. ","href":"/virtual_key_old/product/ai-gateway/canary-testing"},"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: \"You can use Portkey’s AI gateway to also canary test new models or prompts in different environments.\"\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`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);return _jsxs(_Fragment,{children:[_jsx(Info,{children:_jsxs(_components.p,{children:[`This feature is available on all Portkey `,_jsx(_components.a,{href:`https://portkey.ai/pricing`,children:`plans`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`This uses the same techniques as `,_jsx(_components.a,{href:`/product/ai-gateway/load-balancing`,children:`load balancing`}),` but to achieve a different outcome.`]}),`\n`,_jsx(Heading,{level:`3`,id:`example-test-llama2-on-5%-of-the-traffic`,children:`Example: Test Llama2 on 5% of the traffic`}),`\n`,_jsx(_components.p,{children:`Let’s take an example where we want to introduce llama2 in our systems (through Anyscale) but we’re not sure of the impact. We can create a config specifically for this use case to test llama2 in production.`}),`\n`,_jsx(_components.p,{children:`The config object would look like this`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"strategy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"loadbalance\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"targets\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"virtual_key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"openai-virtual-key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"weight\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.95`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"virtual_key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"anyscale-virtual-key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"weight\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.05`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"override_params\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"model\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"meta-llama/Llama-2-70b-chat-hf\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#82071E`,\"--shiki-light-font-style\":`italic`,\"--shiki-dark\":`#F44747`,\"--shiki-dark-font-style\":`inherit`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Here we are telling the gateway to send 5% of the traffic to anyscale’s hosted llama2-70b model. Portkey handles all the request transforms to make sure you don’t have to change your code.`}),`\n`,_jsxs(_components.p,{children:[`You can now `,_jsx(_components.a,{href:`/product/ai-gateway/configs#using-configs`,children:`use this config like this`}),` in your requests.`]}),`\n`,_jsxs(_components.p,{children:[`Once data starts flowing in, we can use Portkey’s `,_jsx(_components.a,{href:`/product/observability/analytics`,children:`analytics dashboards`}),` to see the impact of the new model on cost, latency, errors and feedback.`]})]})}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":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Canary Testing","description":"You can use Portkey's AI gateway to also canary test new models or prompts in different environments. ","href":"/virtual_key_old/product/ai-gateway/canary-testing"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Example: Test Llama2 on 5% of the traffic","slug":"example-test-llama2-on-5%-of-the-traffic","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"portkey-docs","siteName":"Portkey (Prisma AIRS AI Gateway) Docs","title":"Canary Testing - Portkey (Prisma AIRS AI Gateway) Docs","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6aa972100031bd0287c97d01","deploymentId":"67086365a151447bf2fa5021","questionText":"How do I test a new model safely?","status":"active","generatedBy":"contextual","path":"virtual_key_old/product/ai-gateway/canary-testing","createdAt":"2026-09-15T16:28:00.278Z","updatedAt":"2026-09-15T16:28:00.278Z","__v":0},{"_id":"6aa972100031bd0287c97d03","deploymentId":"67086365a151447bf2fa5021","questionText":"How do I monitor canary results?","status":"active","generatedBy":"contextual","path":"virtual_key_old/product/ai-gateway/canary-testing","createdAt":"2026-09-15T16:28:00.278Z","updatedAt":"2026-09-15T16:28:00.278Z","__v":0},{"_id":"6aa972100031bd0287c97d02","deploymentId":"67086365a151447bf2fa5021","questionText":"What traffic split should I use?","status":"active","generatedBy":"contextual","path":"virtual_key_old/product/ai-gateway/canary-testing","createdAt":"2026-09-15T16:28:00.278Z","updatedAt":"2026-09-15T16:28:00.278Z","__v":0}],"navMaps":{"firstHrefInVersion":{"Latest":{"href":"/product/ai-gateway/canary-testing","matchLevel":1},"Prisma AIRS":{"href":"/aigw/product/ai-gateway/canary-testing","matchLevel":1},"Virtual Keys (Deprecated)":{"href":"/virtual_key_old/product/ai-gateway/canary-testing","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-01-28T13:34:24.822Z","gitLastModified":"2025-06-26T06:01:50.000Z","originalFileLocation":"virtual_key_old/product/ai-gateway/canary-testing.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=\"You can use Portkey\u0026#x27;s AI gateway to also canary test new models or prompts in different environments.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Portkey (Prisma AIRS AI Gateway) Docs\">\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/portkey-docs/9Whrk-8bCE6hyGSn/_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/portkey-docs/9Whrk-8bCE6hyGSn/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/portkey-docs/9Whrk-8bCE6hyGSn/_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/portkey-docs/9Whrk-8bCE6hyGSn/_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/portkey-docs/9Whrk-8bCE6hyGSn/_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/portkey-docs/9Whrk-8bCE6hyGSn/_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/portkey-docs/9Whrk-8bCE6hyGSn/_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/portkey-docs/9Whrk-8bCE6hyGSn/_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/portkey-docs/9Whrk-8bCE6hyGSn/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Canary Testing - Portkey (Prisma AIRS AI Gateway) Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"You can use Portkey\u0026#x27;s AI gateway to also canary test new models or prompts in different environments.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Portkey AI Gateway Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://portkey-docs.mintlify.app/_mintlify/api/og/v2?division=AI+Gateway\u0026amp;title=Canary+Testing\u0026amp;description=You+can+use+Portkey%27s+AI+gateway+to+also+canary+test+new+models+or+prompts+in+different+environments.+\u0026amp;theme=262137c9f2583e48984715e7\u0026amp;signature=57f5859d16fd4962a223ce4cbd04ec15b02e906a88508d8fe15d26f9684be86d\">\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=\"Canary Testing - Portkey (Prisma AIRS AI Gateway) Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"You can use Portkey\u0026#x27;s AI gateway to also canary test new models or prompts in different environments.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://portkey-docs.mintlify.app/_mintlify/api/og/v2?division=AI+Gateway\u0026amp;title=Canary+Testing\u0026amp;description=You+can+use+Portkey%27s+AI+gateway+to+also+canary+test+new+models+or+prompts+in+different+environments.+\u0026amp;theme=262137c9f2583e48984715e7\u0026amp;signature=57f5859d16fd4962a223ce4cbd04ec15b02e906a88508d8fe15d26f9684be86d\">\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/portkey-docs/9Whrk-8bCE6hyGSn/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Portkey (Prisma AIRS AI Gateway) Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0891B2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/virtual_key_old/product/ai-gateway/canary-testing.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.portkey.ai/#organization\",\"name\":\"Portkey (Prisma AIRS AI Gateway) Docs\",\"url\":\"https://docs.portkey.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/portkey-docs/tHk-hgNjLbEj4dhh/images/portkey-PANW-company-logo-positive.png?fit=max\u0026auto=format\u0026n=tHk-hgNjLbEj4dhh\u0026q=85\u0026s=c5fb09014ff79616583b1d3bffe27450\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.portkey.ai/docs#website\",\"name\":\"Portkey (Prisma AIRS AI Gateway) Docs\",\"url\":\"https://docs.portkey.ai/docs\",\"publisher\":{\"@id\":\"https://docs.portkey.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing#webpage\",\"url\":\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing\",\"name\":\"Canary Testing\",\"description\":\"You can use Portkey's AI gateway to also canary test new models or prompts in different environments.\",\"dateModified\":\"2025-06-26T06:01:50.000Z\",\"isPartOf\":{\"@id\":\"https://docs.portkey.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Product\",\"item\":\"https://docs.portkey.ai/docs/virtual_key_old/product/observability\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AI Gateway\",\"item\":\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Canary Testing\",\"item\":\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing#article\",\"headline\":\"Canary Testing\",\"name\":\"Canary Testing\",\"description\":\"You can use Portkey's AI gateway to also canary test new models or prompts in different environments.\",\"url\":\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing\",\"mainEntityOfPage\":{\"@id\":\"https://docs.portkey.ai/docs/virtual_key_old/product/ai-gateway/canary-testing#webpage\"},\"dateModified\":\"2025-06-26T06:01:50.000Z\",\"publisher\":{\"@id\":\"https://docs.portkey.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.portkey.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Portkey (Prisma AIRS AI Gateway) Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Portkey (Prisma AIRS AI Gateway) Docs","nav":{"global":null,"versions":[{"version":"Latest","pages":[{"title":"Latest","href":"/product/ai-gateway/canary-testing"}]},{"version":"Prisma AIRS","pages":[{"title":"Prisma AIRS","href":"/aigw/product/ai-gateway/canary-testing"}]},{"version":"Virtual Keys (Deprecated)","tabs":[{"tab":"Documentation","groups":[{"group":"Introduction","pages":[{"title":"What is Portkey?","href":"/virtual_key_old/introduction/what-is-portkey"},{"title":"Make Your First Request","href":"/virtual_key_old/introduction/make-your-first-request"},{"title":"Portkey Features","href":"/virtual_key_old/introduction/feature-overview"}]},{"group":"Product","pages":[{"group":"Observability","pages":[{"title":"Observability (OpenTelemetry)","href":"/virtual_key_old/product/observability"},{"title":"Logs","href":"/virtual_key_old/product/observability/logs"},{"title":"Tracing","href":"/virtual_key_old/product/observability/traces"},{"title":"Analytics","href":"/virtual_key_old/product/observability/analytics"},{"title":"Feedback","href":"/virtual_key_old/product/observability/feedback"},{"title":"Metadata","href":"/virtual_key_old/product/observability/metadata"},{"title":"Filters","href":"/virtual_key_old/product/observability/filters"},{"title":"Logs Export","href":"/virtual_key_old/product/observability/logs-export"},{"title":"Budget Limits","url":"/product/ai-gateway/virtual-keys/budget-limits","href":"/virtual_key_old/product/observability/budget-limits"},{"title":"Auto-Instrumentation [BETA]","href":"/virtual_key_old/product/observability/auto-instrumentation"}]},{"group":"AI Gateway","pages":[{"title":"AI Gateway","href":"/virtual_key_old/product/ai-gateway"},{"title":"Universal API","href":"/virtual_key_old/product/ai-gateway/universal-api"},{"title":"Configs","href":"/virtual_key_old/product/ai-gateway/configs"},{"title":"Remote MCP","href":"/virtual_key_old/product/ai-gateway/remote-mcp"},{"title":"Conditional Routing","href":"/virtual_key_old/product/ai-gateway/conditional-routing"},{"group":"Multimodal Capabilities","pages":[{"title":"Multimodal Capabilities","href":"/virtual_key_old/product/ai-gateway/multimodal-capabilities"},{"title":"Image Generation","href":"/virtual_key_old/product/ai-gateway/multimodal-capabilities/image-generation"},{"title":"Function Calling","href":"/virtual_key_old/product/ai-gateway/multimodal-capabilities/function-calling"},{"title":"Vision","href":"/virtual_key_old/product/ai-gateway/multimodal-capabilities/vision"},{"title":"Text-to-Speech","href":"/virtual_key_old/product/ai-gateway/multimodal-capabilities/text-to-speech"},{"title":"Speech-to-Text","href":"/virtual_key_old/product/ai-gateway/multimodal-capabilities/speech-to-text"},{"title":"Thinking Mode","href":"/virtual_key_old/product/ai-gateway/multimodal-capabilities/thinking-mode"}]},{"title":"Cache (Simple \u0026 Semantic)","href":"/virtual_key_old/product/ai-gateway/cache-simple-and-semantic"},{"title":"Fallbacks","href":"/virtual_key_old/product/ai-gateway/fallbacks"},{"title":"Automatic Retries","href":"/virtual_key_old/product/ai-gateway/automatic-retries"},{"title":"Realtime API","href":"/virtual_key_old/product/ai-gateway/realtime-api"},{"title":"Load Balancing","description":"Load Balancing feature efficiently distributes network traffic across multiple LLMs.","href":"/virtual_key_old/product/ai-gateway/load-balancing"},{"title":"Canary Testing","href":"/virtual_key_old/product/ai-gateway/canary-testing"},{"title":"Strict OpenAI Compliance","description":null,"href":"/virtual_key_old/product/ai-gateway/strict-open-ai-compliance"},{"group":"Virtual Keys","pages":[{"title":"Virtual Keys","tag":"Deprecated","href":"/virtual_key_old/product/ai-gateway/virtual-keys"},{"title":"Budget Limits","href":"/virtual_key_old/product/ai-gateway/virtual-keys/budget-limits"},{"title":"Rate Limits","href":"/virtual_key_old/product/ai-gateway/virtual-keys/rate-limits"},{"title":"Connect Bedrock with Amazon Assumed Role","href":"/virtual_key_old/product/ai-gateway/virtual-keys/bedrock-amazon-assumed-role"}]},{"title":"Request Timeouts","href":"/virtual_key_old/product/ai-gateway/request-timeouts"},{"title":"Files","href":"/virtual_key_old/product/ai-gateway/files"},{"title":"Batches","href":"/virtual_key_old/product/ai-gateway/batches"},{"title":"Fine-tuning","href":"/virtual_key_old/product/ai-gateway/fine-tuning"}]},{"group":"Guardrails","pages":[{"title":"Guardrails","href":"/virtual_key_old/product/guardrails"},{"title":"List of Guardrail Checks","href":"/virtual_key_old/product/guardrails/list-of-guardrail-checks"},{"title":"Guardrails for Embedding Requests","href":"/virtual_key_old/product/guardrails/embedding-guardrails"},{"title":"Creating Raw Guardrails (in JSON)","href":"/virtual_key_old/product/guardrails/creating-raw-guardrails-in-json"},{"title":"PII Redaction","href":"/virtual_key_old/product/guardrails/pii-redaction"},{"title":"Bring Your Own Guardrails","href":"/virtual_key_old/integrations/guardrails/bring-your-own-guardrails"}]},{"title":"MCP","url":"https://portkey.ai/features/mcp","href":"/virtual_key_old/product/mcp"},{"group":"Administration","pages":[{"title":"Enforcing Request Metadata","href":"/virtual_key_old/product/administration/enforcing-request-metadata"},{"title":"Enforcing Org Level Guardrails","href":"/virtual_key_old/product/administration/enforce-orgnization-level-guardrails"},{"title":"Enforcing Workspace Level Guardrails","href":"/virtual_key_old/product/administration/enforce-workspace-level-guardials"},{"title":"Enforcing Default Configs on API Keys","href":"/virtual_key_old/product/administration/enforce-default-config"},{"title":"Enforce Budget Limits and Rate Limits for Your API Keys","href":"/virtual_key_old/product/administration/enforce-budget-and-rate-limit"},{"title":"Configure Logs Access Permissions for Workspace","href":"/virtual_key_old/product/administration/configure-logs-access-permissions-in-workspace"},{"title":"Configure Virtual Key Access Permission for Workspaces","href":"/virtual_key_old/product/administration/configure-virtual-key-access-permissions"},{"title":"Configure API Key Access Permissions for Workspaces","href":"/virtual_key_old/product/administration/configure-api-key-access-permissions"}]},{"group":"Security","pages":[{"title":"PII Redaction","url":"/product/guardrails/pii-redaction","href":"/virtual_key_old/product/security/pii"}]},{"title":"Autonomous Fine-tuning","href":"/virtual_key_old/product/autonomous-fine-tuning"},{"group":"Enterprise Offering","pages":[{"title":"Enterprise Offering","href":"/virtual_key_old/product/enterprise-offering"},{"group":"Org Management","pages":[{"title":"Org Management","href":"/virtual_key_old/product/enterprise-offering/org-management"},{"title":"Organizations","href":"/virtual_key_old/product/enterprise-offering/org-management/organizations"},{"title":"Workspaces","href":"/virtual_key_old/product/enterprise-offering/org-management/workspaces"},{"title":"User Roles \u0026 Permissions","href":"/virtual_key_old/product/enterprise-offering/org-management/user-roles-and-permissions"},{"title":"API Keys (AuthN and AuthZ)","href":"/virtual_key_old/product/enterprise-offering/org-management/api-keys-authn-and-authz"},{"title":"JWT Authentication","href":"/virtual_key_old/product/enterprise-offering/org-management/jwt"},{"group":"SCIM","pages":[{"title":"Overview","href":"/virtual_key_old/product/enterprise-offering/org-management/scim/scim"},{"title":"Azure Entra","href":"/virtual_key_old/product/enterprise-offering/org-management/scim/azure-ad"},{"title":"Okta","href":"/virtual_key_old/product/enterprise-offering/org-management/scim/okta"}]},{"title":"SSO","href":"/virtual_key_old/product/enterprise-offering/org-management/sso"}]},{"title":"Access Control Management","href":"/virtual_key_old/product/enterprise-offering/access-control-management"},{"title":"Budget Limits","url":"/product/ai-gateway/virtual-keys/budget-limits","href":"/virtual_key_old/product/enterprise-offering/budget-limits"},{"title":"Security @ Portkey","href":"/virtual_key_old/product/enterprise-offering/security-portkey"},{"title":"OTel Integration (Analytics Data)","href":"/virtual_key_old/product/enterprise-offering/analytics-logs-export"},{"title":"Logs Export","url":"/product/observability/logs-export","href":"/virtual_key_old/product/enterprise-offering/logs-export"},{"title":"Audit Logs","href":"/virtual_key_old/product/enterprise-offering/audit-logs"},{"group":"Private Cloud Deployments","pages":[{"title":"Private Cloud Deployments","href":"/virtual_key_old/product/enterprise-offering/private-cloud-deployments"},{"title":"Enterprise Architecture","sidebarTitle":"Architecture","href":"/virtual_key_old/product/enterprise-offering/private-cloud-deployments/architecture"},{"title":"AWS","href":"/virtual_key_old/product/enterprise-offering/private-cloud-deployments/aws"},{"title":"GCP","href":"/virtual_key_old/product/enterprise-offering/private-cloud-deployments/gcp"},{"title":"Azure","href":"/virtual_key_old/product/enterprise-offering/private-cloud-deployments/azure"},{"title":"Cloudflare Workers","href":"/virtual_key_old/product/enterprise-offering/private-cloud-deployments/cloudflare-workers"},{"title":"F5 App Stack","href":"/virtual_key_old/product/enterprise-offering/private-cloud-deployments/f5-app-stack"}]},{"title":"Enterprise Components","href":"/virtual_key_old/product/enterprise-offering/components"},{"title":"KMS Integration","href":"/virtual_key_old/product/enterprise-offering/kms"},{"group":"Cloud Marketplace","pages":[{"title":"AWS","href":"/virtual_key_old/product/enterprise-offering/cloud-marketplace/aws"}]}]},{"title":"Open Source","href":"/virtual_key_old/product/open-source"},{"title":"Feature Comparison","href":"/virtual_key_old/product/product-feature-comparison"}]},{"group":"Support","pages":[{"title":"Upgrade to Model Catalog","tag":"New","href":"/support/upgrade-to-model-catalog"},{"title":"How to Contribute","href":"/README"},{"title":"Contact Us","href":"/support/contact-us"},{"title":"Developer Forum","href":"/support/developer-forum"},{"title":"Common Errors \u0026 Resolutions","href":"/support/common-errors-and-resolutions"},{"title":"December '23 Migration","href":"/support/portkeys-december-migration"}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/virtual_key_old/integrations/ecosystem"}]},{"tab":"Inference API","pages":[{"title":"Inference API","href":"/api-reference/inference-api/introduction"}]},{"tab":"Admin API","pages":[{"title":"Admin API","href":"/api-reference/admin-api/introduction"}]},{"tab":"Cookbooks","pages":[{"title":"Cookbooks","href":"/guides/use-cases/run-batch-evals"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/2025/may"}]},{"tab":"Help articles","pages":[{"title":"Help articles","href":"/help-center/you-do-not-have-enough-permissions"}]}]}]},"basePath":"","title":"Canary Testing - Portkey (Prisma AIRS AI Gateway) Docs","buildId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","deploymentId":"dpl_4RHMRqtvdHvKgaEfTTjFqjzja3B6","dynamics":[],"chunks":[]}