Learn how to enable performance safeguards in your project
CodSpeed provides a performance status check to your branches and pull
requests. The status of this check is based on the performance change between
the current branch and your main branch (and the project’s
regression threshold).You can configure the performance check to fail if the performance metrics of a
branch or pull request are overshooting your regression threshold. Thus,
blocking the pull request from being merged if the performance issue is
neither fixed nor acknowledged.
Once your project has run at least one benchmark, go to your repository’s settings on GitHub.
2
Navigate to branch protection
Under the Code and automation section, open the Branches tab.
3
Configure branch protection rule
Add a new branch protection rule or update the one already protecting your
main branch.
4
Set branch name pattern
In the branch name pattern field, enter the name of your default branch
5
Enable status checks requirement
Tick the Require status checks to pass before merging checkbox.
6
Add CodSpeed status check
Under this section, search for CodSpeed Performance Analysis and click on the item to enable the check:
7
Save changes
Save the changes and you’re done! 🎉 Your performance checks are now
configured and will run on future pull requests, preventing you from merging
pull requests that introduce performance regressions.
Pull Request Checks failing because of the performance regression
If you’re aware of performance issues that are not yet fixed or were totally
intentional, you can acknowledge them to prevent the performance check from
failing.
Acknowledgement Permission: When working with an organization’s
repository, only admins are allowed to acknowledge regressions.
Once all the regressions are fixed or acknowledged, the performance check will
pass and you can safely merge your pull request while being aware of your
performance issues.
First, head to the CodSpeed report (you can access it from the link in the
inline performance report or directly from your
CodSpeed Dashboard).Then, go to the regressed benchmark you want to acknowledge:Click on the the benchmark to expand its content:
Click on the “Acknowledge regression” button and that’s it 🎉 :
To acknowledge multiple benchmarks at once:Filter the benchmark list to show only regressions using the Status filter
or by typing is:regression in the search bar:Select the benchmarks you want to acknowledge using the checkboxes:Click the Acknowledge selected button that appears in the list header and
that’s it 🎉 :
Customize when performance changes trigger failures
CI Integration Setup
Set up CodSpeed in your continuous integration pipeline
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"CodSpeed Docs","description":"Documentation for CodSpeed, the continuous performance testing and optimization platform.","colors":{"primary":"#FC6E39","light":"#FB905C","dark":"#FC6E39"},"logo":{"light":"https://mintcdn.com/codspeed/SEPN15HtEhsaoVwO/assets/logo/light.svg?fit=max\u0026auto=format\u0026n=SEPN15HtEhsaoVwO\u0026q=85\u0026s=18d4dcb12a5617282de2da263e0db993","dark":"https://mintcdn.com/codspeed/SEPN15HtEhsaoVwO/assets/logo/dark.svg?fit=max\u0026auto=format\u0026n=SEPN15HtEhsaoVwO\u0026q=85\u0026s=7c53ba3b03b0620420bb5d1f4ea3c0cd","href":"https://codspeed.io"},"favicon":"https://mintcdn.com/codspeed/SEPN15HtEhsaoVwO/assets/favicon.svg?fit=max\u0026auto=format\u0026n=SEPN15HtEhsaoVwO\u0026q=85\u0026s=0cc9ab603558dbcd3c162f55cd0af677","appearance":{"default":"dark","strict":true},"background":{"decoration":"gradient","color":{"dark":"#09090B"}},"navbar":{"links":[{"icon":"github","href":"https://github.com/CodSpeedHQ/codspeed","label":"GitHub"}],"primary":{"type":"button","label":"Get Started","href":"https://app.codspeed.io/login?flow=get-started"}},"footer":{"socials":{"github":"https://github.com/CodSpeedHQ/codspeed","discord":"https://codspeed.io/discord","linkedin":"https://linkedin.com/company/codspeed","x":"https://x.com/codspeedhq","bluesky":"https://bsky.app/profile/codspeed.io"},"links":[{"header":"Resources","items":[{"label":"Docs","href":"https://codspeed.io/docs"},{"label":"Home","href":"https://codspeed.io/"},{"label":"Blog","href":"https://codspeed.io/blog"},{"label":"GitHub","href":"https://github.com/CodSpeedHQ/codspeed"},{"label":"Changelog","href":"https://codspeed.io/changelog"}]},{"header":"Getting Started","items":[{"label":"Sample Project","href":"https://app.codspeed.io/pydantic/pydantic-core"},{"label":"Explore repositories","href":"https://codspeed.io/explore"},{"label":"Support","href":"mailto:contact@codspeed.io"}]},{"header":"About","items":[{"label":"Careers","href":"https://careers.codspeed.io"},{"label":"Twitter","href":"https://x.com/CodSpeedHQ"},{"label":"Discord","href":"https://codspeed.io/discord"},{"label":"Contact Us","href":"mailto:contact@codspeed.io"},{"label":"Terms","href":"https://codspeed.io/terms"},{"label":"Privacy Policy","href":"https://codspeed.io/privacy"}]}]},"seo":{"metatags":{"canonical":"https://codspeed.io/docs","twitter:card":"summary_large_image","twitter:site":"@codspeedhq","twitter:domain":"codspeed.io"},"indexing":"all"},"fonts":{"family":"Inter"},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"gtm":{"tagId":"GTM-N2XNSNB7"},"hotjar":{"hjid":"3931281","hjsv":"6"}},"banner":{"content":"With the new **MCP Server** and **Agent Skills**, your AI assistant can now investigate regressions and optimize your code. [See what's new](https://codspeed.io/changelog).","dismissible":true},"contextual":{"options":["copy","chatgpt","claude"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Discord","icon":"discord","href":"https://discord.gg/MxpaCfKSqF"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"codspeed","hasAudioNarration":false,"actualSubdomain":"codspeed","customDomains":["codspeed.io"],"gitSource":{"type":"github","owner":"codspeedhq","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae49f52c69c99d3b7d14cd7","collectionId":"b64a8782-fa8c-4b8c-8283-b2e5516865ab","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae49f52c69c99d3b7d14cd7"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae49f52c69c99d3b7d14cd7","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Documentation","count":61},{"language":"default","tag":"Get Started","count":20},{"language":"default","tag":"Creating Benchmarks","count":17},{"language":"default","tag":"Integrations","count":14},{"language":"default","tag":"Instruments","count":11},{"language":"default","tag":"Explore Features","count":10},{"language":"default","tag":"Guides","count":10},{"language":"default","tag":"CI Environments","count":10},{"language":"default","tag":"API References","count":8},{"language":"default","tag":"Node.js","count":7}]},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":false,"deflection":{"enabled":true,"email":"support@codspeed.io","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":"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":"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":"#topbar-cta-button>a>span{background-color:unset;background-image:linear-gradient(#fc6e39 -16.25%,#d9390e 67.5%)}footer a.text-gray-500{display:none}footer>div{gap:0!important}footer>div>div:nth-child(n+2){display:none}.chat-assistant-floating-input{display:none!important}@font-face{font-family:\"Fira Code\";src:url(https://codspeed.io/docs/fonts/FiraCode-VariableFont_wght.ttf) format(\"truetype\")}code{font-family:\"Fira Code\",monospace}#banner{background-color:#fc6e39!important}#banner,#banner *{color:#09090b!important}#banner a{font-weight:700!important;text-decoration:underline!important}#\\/benchmarks\\/cpp>a>img{background-color:unset}"}],"page":{"pagePath":"features/performance-checks","slug":"/features/performance-checks","pageMetadata":{"sidebarTitle":"Performance Checks","title":"Setting up Continuous Performance Checks","description":"Learn how to enable performance safeguards in your project","icon":"circle-check","href":"/features/performance-checks/index"},"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 how to enable performance safeguards in your project\"\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`,strong:`strong`,..._provideComponents(),...props.components},{Card,Columns,Frame,Heading,Note,OptimizedImage,Step,Steps}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`CodSpeed provides a performance `,_jsx(_components.strong,{children:`status check`}),` to your branches and pull\nrequests. The status of this check is based on the performance change between\nthe current branch and your main branch (and the project’s\n`,_jsx(_components.a,{href:`/features/customization#regression-threshold`,children:`regression threshold`}),`).`]}),`\n`,_jsxs(_components.p,{children:[`You can configure the performance check to fail if the performance metrics of a\nbranch or pull request are overshooting your regression threshold. Thus,\n`,_jsx(_components.strong,{children:`blocking the pull request`}),` from being merged if the performance issue is\nneither fixed nor `,_jsx(_components.a,{href:`#acknowledge-regressions-or-benchmark-drops`,children:`acknowledged`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`setup-performance-checks`,children:`Setup performance checks`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Access repository settings`,children:_jsx(_components.p,{children:`Once your project has run at least one benchmark, go to your repository’s settings on GitHub.`})}),_jsx(Step,{title:`Navigate to branch protection`,children:_jsxs(_components.p,{children:[`Under the `,_jsx(_components.strong,{children:`Code and automation`}),` section, open the `,_jsx(_components.strong,{children:`Branches`}),` tab.`]})}),_jsx(Step,{title:`Configure branch protection rule`,children:_jsx(_components.p,{children:`Add a new branch protection rule or update the one already protecting your\nmain branch.`})}),_jsx(Step,{title:`Set branch name pattern`,children:_jsx(Frame,{caption:`In the branch name pattern field, enter the name of your default branch`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/branch-name-pattern.png?fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=36d03a48636c6c2e371154a9ebe7a255`,className:`mint-rounded-xl mint-w-full mint-max-w-lg mint-mx-auto`,alt:`Set the branch name pattern`,\"data-og-width\":`1086`,width:`1086`,\"data-og-height\":`310`,height:`310`,\"data-path\":`features/performance-checks/assets/branch-name-pattern.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/branch-name-pattern.png?w=280\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=666141e898536f44b8aaaad7536c9f97 280w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/branch-name-pattern.png?w=560\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=fa9f17cb4284f705b986ff8986011cc7 560w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/branch-name-pattern.png?w=840\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=c1073639c1d693f52ffd4a19c150ca66 840w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/branch-name-pattern.png?w=1100\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=14f8dc155dc3b69f0686acfd0942f9a8 1100w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/branch-name-pattern.png?w=1650\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=8f7f7dfe1ed6298a86c62c579b37f58d 1650w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/branch-name-pattern.png?w=2500\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=496a2968481d06898938c166a4e825f7 2500w`})})}),_jsx(Step,{title:`Enable status checks requirement`,children:_jsxs(_components.p,{children:[`Tick the `,_jsx(_components.strong,{children:`Require status checks to pass before merging`}),` checkbox.`]})}),_jsxs(Step,{title:`Add CodSpeed status check`,children:[_jsxs(_components.p,{children:[`Under this section, search for `,_jsx(_components.strong,{children:`CodSpeed Performance Analysis`}),` and click on the item to enable the check:`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/status-check-configuration.png?fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=cf1b4cd4aa386daad367d23753be2e98`,className:`mint-rounded-xl mint-w-full mint-max-w-lg mint-mx-auto`,alt:`Configuration of the status check`,\"data-og-width\":`1172`,width:`1172`,\"data-og-height\":`718`,height:`718`,\"data-path\":`features/performance-checks/assets/status-check-configuration.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/status-check-configuration.png?w=280\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=9cace47ff36f27a8d5374f894758e00d 280w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/status-check-configuration.png?w=560\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=00c53746d4e7d50fa36acf6f9c1adff2 560w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/status-check-configuration.png?w=840\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=77c03819902549e596d4770010710ced 840w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/status-check-configuration.png?w=1100\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=d9d9d3f38d34dda1d15155872c353028 1100w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/status-check-configuration.png?w=1650\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=a790c59894a299b94319cd768f4266f5 1650w, https://mintcdn.com/codspeed/jKaxX6yy-Kzw1C-0/features/performance-checks/assets/status-check-configuration.png?w=2500\u0026fit=max\u0026auto=format\u0026n=jKaxX6yy-Kzw1C-0\u0026q=85\u0026s=475f67116ce60abd2b697e5d16dea730 2500w`})})]}),_jsxs(Step,{title:`Save changes`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Save the changes`}),` and you’re done! 🎉 Your performance checks are now\nconfigured and will run on future pull requests, preventing you from merging\npull requests that introduce performance regressions.`]}),_jsx(Frame,{caption:`Pull Request Checks failing because of the performance regression`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codspeed/q5Q3QnyKsjTld2tv/assets/quickstart-regression-checks.png?fit=max\u0026auto=format\u0026n=q5Q3QnyKsjTld2tv\u0026q=85\u0026s=cafac36f9a791d06187e998b6ee8d6d7`,alt:`Pull Request Checks failing because of the performance regression`,className:`mint-w-full mint-max-w-lg mint-mx-auto`,\"data-og-width\":`831`,width:`831`,\"data-og-height\":`184`,height:`184`,\"data-path\":`assets/quickstart-regression-checks.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codspeed/q5Q3QnyKsjTld2tv/assets/quickstart-regression-checks.png?w=280\u0026fit=max\u0026auto=format\u0026n=q5Q3QnyKsjTld2tv\u0026q=85\u0026s=6f947c605575a7d0d8e97693bf191c0b 280w, https://mintcdn.com/codspeed/q5Q3QnyKsjTld2tv/assets/quickstart-regression-checks.png?w=560\u0026fit=max\u0026auto=format\u0026n=q5Q3QnyKsjTld2tv\u0026q=85\u0026s=280c9f80e84ae57c443fe0f4838eef6a 560w, https://mintcdn.com/codspeed/q5Q3QnyKsjTld2tv/assets/quickstart-regression-checks.png?w=840\u0026fit=max\u0026auto=format\u0026n=q5Q3QnyKsjTld2tv\u0026q=85\u0026s=ce2d0a061b5e7718010fb4ee9202bd4e 840w, https://mintcdn.com/codspeed/q5Q3QnyKsjTld2tv/assets/quickstart-regression-checks.png?w=1100\u0026fit=max\u0026auto=format\u0026n=q5Q3QnyKsjTld2tv\u0026q=85\u0026s=8146d2cc6ef1af60dc45c988da5eac2c 1100w, https://mintcdn.com/codspeed/q5Q3QnyKsjTld2tv/assets/quickstart-regression-checks.png?w=1650\u0026fit=max\u0026auto=format\u0026n=q5Q3QnyKsjTld2tv\u0026q=85\u0026s=d2cb3fce10e07c14d2821d242afb032c 1650w, https://mintcdn.com/codspeed/q5Q3QnyKsjTld2tv/assets/quickstart-regression-checks.png?w=2500\u0026fit=max\u0026auto=format\u0026n=q5Q3QnyKsjTld2tv\u0026q=85\u0026s=e5b2a35104dd20b9559975a2c0b23a25 2500w`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`acknowledge-regressions-or-benchmark-drops`,children:`Acknowledge regressions or benchmark drops`}),`\n`,_jsxs(_components.p,{children:[`If you’re aware of performance issues that are not yet fixed or were totally\nintentional, you can acknowledge them to `,_jsx(_components.strong,{children:`prevent the performance check from\nfailing`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Acknowledgement Permission`}),`: When working with an organization’s\nrepository, `,_jsx(_components.strong,{children:`only admins`}),` are allowed to acknowledge regressions.`]})}),`\n`,_jsxs(_components.p,{children:[`Once all the regressions are fixed or acknowledged, the performance check will\npass and you can safely merge your pull request while being `,_jsx(_components.strong,{children:`aware of your\nperformance issues`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`acknowledge-a-single-benchmark`,children:`Acknowledge a single benchmark`}),`\n`,_jsxs(_components.p,{children:[`First, head to the CodSpeed report (you can access it from the link in the\ninline performance report or directly from your\n`,_jsx(_components.a,{href:`https://app.codspeed.io/dashboard`,children:`CodSpeed Dashboard`}),`).`]}),`\n`,_jsx(_components.p,{children:`Then, go to the regressed benchmark you want to acknowledge:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/failing-benchmark.png?fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=e0bf7a717b3f1b610f019b6baee49b11`,className:`mint-rounded-xl mint-w-full mint-max-w-xl mint-mx-auto`,alt:`failing benchmark`,\"data-og-width\":`1261`,width:`1261`,\"data-og-height\":`104`,height:`104`,\"data-path\":`features/performance-checks/assets/failing-benchmark.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/failing-benchmark.png?w=280\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=aefebbd806618e7978e4fb1e8ea3b0a9 280w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/failing-benchmark.png?w=560\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=e0a2f29e5909701f9363ac45ba1bbafd 560w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/failing-benchmark.png?w=840\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=857311e495a50b8ce86884aee72eee13 840w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/failing-benchmark.png?w=1100\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=64bb1cea841fc38955e5f9584398341c 1100w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/failing-benchmark.png?w=1650\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=2ed53cc982717f1a5c3198b85b1fddd7 1650w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/failing-benchmark.png?w=2500\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=df35e2a44e2b7c56e5388048cee125f0 2500w`}),`\n`,_jsx(_components.p,{children:`Click on the the benchmark to expand its content:`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/expanded-benchmark.png?fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=e28452f1e23a027aec788b3136ab4941`,className:`mint-rounded-xl mint-w-full mint-max-w-xl mint-mx-auto`,alt:`Expanded benchmark`,\"data-og-width\":`1262`,width:`1262`,\"data-og-height\":`359`,height:`359`,\"data-path\":`features/performance-checks/assets/expanded-benchmark.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/expanded-benchmark.png?w=280\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=699a484f46b546e22b60c6e922ef981a 280w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/expanded-benchmark.png?w=560\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=ba3cf5ba7228f3962a8af9b23af0787c 560w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/expanded-benchmark.png?w=840\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=2b62ac108ea64a8555dfb2786baaf54e 840w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/expanded-benchmark.png?w=1100\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=3a01e612b2f53434bea5230259b3c743 1100w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/expanded-benchmark.png?w=1650\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=102c49e0c3c6a4e3bb81f81482381bde 1650w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/expanded-benchmark.png?w=2500\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=612a533b41930f4bec50a85e35a62fbf 2500w`})}),`\n`,_jsx(_components.p,{children:`Click on the “Acknowledge regression” button and that’s it 🎉 :`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-benchmark.png?fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=016dd5f94d693cdec57bce35fc7a3d9b`,className:`mint-rounded-xl mint-w-full mint-max-w-xl mint-mx-auto`,alt:`Acknowledged benchmark`,\"data-og-width\":`1251`,width:`1251`,\"data-og-height\":`115`,height:`115`,\"data-path\":`features/performance-checks/assets/acknowledged-benchmark.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-benchmark.png?w=280\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=876f8f1cd4c79343132afdf11c8e4177 280w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-benchmark.png?w=560\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=0fe0c1857a44286f7d441927041c33c9 560w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-benchmark.png?w=840\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=e2121955108f61919207b2b8154c5f94 840w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-benchmark.png?w=1100\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=d4db1b22ef41224d90ac9ceb9115ff3b 1100w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-benchmark.png?w=1650\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=801f32d360e139a130eb79249e190406 1650w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-benchmark.png?w=2500\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=880d49dfa21e79e70f1da01f083e8a0e 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`acknowledge-multiple-benchmarks`,children:`Acknowledge multiple benchmarks`}),`\n`,_jsx(_components.p,{children:`To acknowledge multiple benchmarks at once:`}),`\n`,_jsxs(_components.p,{children:[`Filter the benchmark list to show only regressions using the `,_jsx(_components.strong,{children:`Status`}),` filter\nor by typing `,_jsx(_components.code,{children:`is:regression`}),` in the search bar:`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/codspeed/yDUzQZhwEA7SNuSf/features/performance-checks/assets/acknowledge-multiple.png?fit=max\u0026auto=format\u0026n=yDUzQZhwEA7SNuSf\u0026q=85\u0026s=775a6368d32799445c64f0f8b44df31a`,className:`mint-rounded-xl mint-w-full mint-max-w-xl mint-mx-auto`,alt:`Acknowledge multiple benchmarks`,\"data-og-width\":`1293`,width:`1293`,\"data-og-height\":`898`,height:`898`,\"data-path\":`features/performance-checks/assets/acknowledge-multiple.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codspeed/yDUzQZhwEA7SNuSf/features/performance-checks/assets/acknowledge-multiple.png?w=280\u0026fit=max\u0026auto=format\u0026n=yDUzQZhwEA7SNuSf\u0026q=85\u0026s=65e0b841689b7b3b81da685be5348d93 280w, https://mintcdn.com/codspeed/yDUzQZhwEA7SNuSf/features/performance-checks/assets/acknowledge-multiple.png?w=560\u0026fit=max\u0026auto=format\u0026n=yDUzQZhwEA7SNuSf\u0026q=85\u0026s=a6dfd1bf525fec4fec7bd562a53f94fc 560w, https://mintcdn.com/codspeed/yDUzQZhwEA7SNuSf/features/performance-checks/assets/acknowledge-multiple.png?w=840\u0026fit=max\u0026auto=format\u0026n=yDUzQZhwEA7SNuSf\u0026q=85\u0026s=007cc0aa986f9113498c477f646e9162 840w, https://mintcdn.com/codspeed/yDUzQZhwEA7SNuSf/features/performance-checks/assets/acknowledge-multiple.png?w=1100\u0026fit=max\u0026auto=format\u0026n=yDUzQZhwEA7SNuSf\u0026q=85\u0026s=5ad4cd8e28e0446482b64826876b43b2 1100w, https://mintcdn.com/codspeed/yDUzQZhwEA7SNuSf/features/performance-checks/assets/acknowledge-multiple.png?w=1650\u0026fit=max\u0026auto=format\u0026n=yDUzQZhwEA7SNuSf\u0026q=85\u0026s=0e2dd9b8f2d3d02ddd1507670ceb090e 1650w, https://mintcdn.com/codspeed/yDUzQZhwEA7SNuSf/features/performance-checks/assets/acknowledge-multiple.png?w=2500\u0026fit=max\u0026auto=format\u0026n=yDUzQZhwEA7SNuSf\u0026q=85\u0026s=19b511c37f66ca1ae470fcd27fe0ab88 2500w`}),`\n`,_jsx(_components.p,{children:`Select the benchmarks you want to acknowledge using the checkboxes:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledge-selected.png?fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=f2f60b5e560e5e5b4098e148097a55cd`,className:`mint-rounded-xl mint-w-full mint-max-w-xl mint-mx-auto`,alt:`Acknowledge selected benchmarks`,\"data-og-width\":`1304`,width:`1304`,\"data-og-height\":`893`,height:`893`,\"data-path\":`features/performance-checks/assets/acknowledge-selected.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledge-selected.png?w=280\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=cf353b45b455e95c5d94d7fee2876dd0 280w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledge-selected.png?w=560\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=d533ef77a095552454d9b0d4ca89d670 560w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledge-selected.png?w=840\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=67e5d22dd3b6be9ccff470894af49262 840w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledge-selected.png?w=1100\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=c787dfd56697d0f7c4e63529e574e34c 1100w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledge-selected.png?w=1650\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=3e7636cea8db98a94d3f4e5663cd99d6 1650w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledge-selected.png?w=2500\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=f0271893a8502061257e66c39a186785 2500w`}),`\n`,_jsxs(_components.p,{children:[`Click the `,_jsx(_components.strong,{children:`Acknowledge selected`}),` button that appears in the list header and\nthat’s it 🎉 :`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-multiple-benchmarks.png?fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=463092efb39102d6db5c7234d6ea8ca3`,className:`mint-rounded-xl mint-w-full mint-max-w-xl mint-mx-auto`,alt:`Acknowledged multiple benchmarks`,\"data-og-width\":`1299`,width:`1299`,\"data-og-height\":`901`,height:`901`,\"data-path\":`features/performance-checks/assets/acknowledged-multiple-benchmarks.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-multiple-benchmarks.png?w=280\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=2062437e74326944dd3fc235f64c3bf2 280w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-multiple-benchmarks.png?w=560\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=e41c6f284f212850e997b248cbe47376 560w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-multiple-benchmarks.png?w=840\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=ad5dd94ff2ebb85e4f399fe7f043216c 840w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-multiple-benchmarks.png?w=1100\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=6eacaece2c54d592beaa9b029dc040cf 1100w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-multiple-benchmarks.png?w=1650\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=afdef719b264fa2a92f1739a4ff6b662 1650w, https://mintcdn.com/codspeed/03672jtP0I3gWCvv/features/performance-checks/assets/acknowledged-multiple-benchmarks.png?w=2500\u0026fit=max\u0026auto=format\u0026n=03672jtP0I3gWCvv\u0026q=85\u0026s=25f2e59f1a0f6f73e08d6622d84ec937 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`understanding-performance-regressions`,children:`Understanding Performance Regressions`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`How Performance Metrics Work`,href:`/features/understanding-the-metrics`,icon:`chart-line`,children:_jsx(_components.p,{children:`Learn how CodSpeed calculates performance impact and regression thresholds`})}),_jsx(Card,{title:`Debug with Flamegraphs`,href:`/features/profiling`,icon:`bars-sort`,children:_jsx(_components.p,{children:`Use detailed profiling data to identify and fix performance bottlenecks`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`related-guides`,children:`Related Guides`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`Configure Regression Thresholds`,href:`/features/customization`,icon:`gear`,children:_jsx(_components.p,{children:`Customize when performance changes trigger failures`})}),_jsx(Card,{title:`CI Integration Setup`,href:`/integrations/ci`,icon:`server`,children:_jsx(_components.p,{children:`Set up CodSpeed in your continuous integration pipeline`})})]})]})}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":{"sidebarTitle":"Performance Checks","title":"Setting up Continuous Performance Checks","description":"Learn how to enable performance safeguards in your project","icon":"circle-check","href":"/features/performance-checks/index"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Setup performance checks","slug":"setup-performance-checks","depth":2,"children":[]},{"title":"Acknowledge regressions or benchmark drops","slug":"acknowledge-regressions-or-benchmark-drops","depth":2,"children":[{"title":"Acknowledge a single benchmark","slug":"acknowledge-a-single-benchmark","depth":3,"children":[]},{"title":"Acknowledge multiple benchmarks","slug":"acknowledge-multiple-benchmarks","depth":3,"children":[]}]},{"title":"Understanding Performance Regressions","slug":"understanding-performance-regressions","depth":2,"children":[]},{"title":"Related Guides","slug":"related-guides","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/codspeed/b3eaa496f89f763a/scripts/plausible.js","/docs/_mintlify/custom/codspeed/49a364438b48260b/scripts/crisp.js","/docs/_mintlify/custom/codspeed/908f72e163898697/scripts/mixpanel.js","/docs/_mintlify/custom/codspeed/36100c5f420e7746/scripts/reo.js","/docs/_mintlify/custom/codspeed/818659b90dbf0ae9/scripts/mixpanel-events.js"],"dynamicCss":".mint-mx-auto {\n margin-left: auto;\n margin-right: auto\n}\n.mint-w-full {\n width: 100%\n}\n.mint-max-w-lg {\n max-width: 32rem\n}\n.mint-max-w-xl {\n max-width: 36rem\n}\n.mint-rounded-xl {\n border-radius: 0.75rem\n}","subdomain":"codspeed","siteName":"CodSpeed Docs","title":"Setting up Continuous Performance Checks - CodSpeed Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T12:33:25.732Z","originalFileLocation":"features/performance-checks/index.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"dark\"}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 how to enable performance safeguards in your project\">\u003cmeta data-mint-head name=\"application-name\" content=\"CodSpeed 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/codspeed/o6dkItj_FLwvyrIz/_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/codspeed/o6dkItj_FLwvyrIz/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/codspeed/o6dkItj_FLwvyrIz/_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/codspeed/o6dkItj_FLwvyrIz/_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/codspeed/o6dkItj_FLwvyrIz/_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/codspeed/o6dkItj_FLwvyrIz/_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/codspeed/o6dkItj_FLwvyrIz/_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/codspeed/o6dkItj_FLwvyrIz/_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/codspeed/o6dkItj_FLwvyrIz/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Setting up Continuous Performance Checks - CodSpeed Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to enable performance safeguards in your project\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CodSpeed Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://codspeed.io/docs/features/performance-checks\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://codspeed.mintlify.app/_mintlify/api/og/v2?division=Explore+Features\u0026amp;title=Setting+up+Continuous+Performance+Checks\u0026amp;description=Learn+how+to+enable+performance+safeguards+in+your+project\u0026amp;theme=6a0ff7cd01762648aac17823\u0026amp;signature=ca9287b0f9be074544361b9e029133035bf875f35e340ff9d65c9e0d32e0742b\">\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=\"Setting up Continuous Performance Checks - CodSpeed Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to enable performance safeguards in your project\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://codspeed.mintlify.app/_mintlify/api/og/v2?division=Explore+Features\u0026amp;title=Setting+up+Continuous+Performance+Checks\u0026amp;description=Learn+how+to+enable+performance+safeguards+in+your+project\u0026amp;theme=6a0ff7cd01762648aac17823\u0026amp;signature=ca9287b0f9be074544361b9e029133035bf875f35e340ff9d65c9e0d32e0742b\">\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/codspeed/o6dkItj_FLwvyrIz/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CodSpeed Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FC6E39\">\u003cmeta data-mint-head name=\"twitter:domain\" content=\"codspeed.io\">\u003clink data-mint-head rel=\"canonical\" href=\"https://codspeed.io/docs/features/performance-checks\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/features/performance-checks.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://codspeed.io/#organization\",\"name\":\"CodSpeed Docs\",\"url\":\"https://codspeed.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/codspeed/SEPN15HtEhsaoVwO/assets/logo/light.svg?fit=max\u0026auto=format\u0026n=SEPN15HtEhsaoVwO\u0026q=85\u0026s=18d4dcb12a5617282de2da263e0db993\"}},{\"@type\":\"WebSite\",\"@id\":\"https://codspeed.io/docs#website\",\"name\":\"CodSpeed Docs\",\"url\":\"https://codspeed.io/docs\",\"publisher\":{\"@id\":\"https://codspeed.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://codspeed.io/docs/features/performance-checks#webpage\",\"url\":\"https://codspeed.io/docs/features/performance-checks\",\"name\":\"Setting up Continuous Performance Checks\",\"description\":\"Learn how to enable performance safeguards in your project\",\"dateModified\":\"2026-10-19T12:33:25.732Z\",\"isPartOf\":{\"@id\":\"https://codspeed.io/docs#website\"},\"breadcrumb\":{\"@id\":\"https://codspeed.io/docs/features/performance-checks#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://codspeed.io/docs/features/performance-checks#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Explore Features\",\"item\":\"https://codspeed.io/docs/features/profiling\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Setting up Continuous Performance Checks\",\"item\":\"https://codspeed.io/docs/features/performance-checks\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://codspeed.io/docs/features/performance-checks#article\",\"headline\":\"Setting up Continuous Performance Checks\",\"name\":\"Setting up Continuous Performance Checks\",\"description\":\"Learn how to enable performance safeguards in your project\",\"url\":\"https://codspeed.io/docs/features/performance-checks\",\"mainEntityOfPage\":{\"@id\":\"https://codspeed.io/docs/features/performance-checks#webpage\"},\"dateModified\":\"2026-10-19T12:33:25.732Z\",\"publisher\":{\"@id\":\"https://codspeed.io/#organization\"},\"isPartOf\":{\"@id\":\"https://codspeed.io/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CodSpeed Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"CodSpeed Docs","nav":{"global":{"anchors":[{"anchor":"Discord","icon":"discord","href":"https://discord.gg/MxpaCfKSqF"}]},"tabs":[{"tab":"Documentation","icon":"book","pages":[{"group":"Get Started","pages":[{"title":"Quickstart","icon":"rocket","href":""},{"title":"What is CodSpeed?","icon":"lightbulb","href":"/what-is-codspeed"},{"group":"Creating Benchmarks","icon":"code","pages":[{"title":"Supported Languages","sidebarTitle":"Overview","href":"/benchmarks/overview"},{"title":"Writing Benchmarks in Python","sidebarTitle":"Python","icon":"python","href":"/benchmarks/python"},{"group":"Rust","icon":"rust","pages":[{"sidebarTitle":"Overview","title":"Writing Benchmarks in Rust","href":"/benchmarks/rust/index"},{"title":"Writing Benchmarks with divan","sidebarTitle":"divan","href":"/benchmarks/rust/divan"},{"title":"Writing Benchmarks with criterion.rs","sidebarTitle":"criterion.rs","href":"/benchmarks/rust/criterion"},{"title":"Writing Benchmarks with bencher (libtest)","sidebarTitle":"bencher","href":"/benchmarks/rust/bencher"}]},{"title":"Writing Benchmarks in C++","sidebarTitle":"C++","icon":"https://mintlify.s3.us-west-1.amazonaws.com/codspeed/assets/icons/cpp.svg","href":"/benchmarks/cpp"},{"group":"Node.js","icon":"node-js","pages":[{"sidebarTitle":"Overview","title":"Writing Benchmarks in JavaScript and TypeScript","href":"/benchmarks/nodejs/overview"},{"title":"Writing benchmarks with vitest-bench","sidebarTitle":"vitest","href":"/benchmarks/nodejs/vitest"},{"title":"Writing benchmarks with tinybench","sidebarTitle":"tinybench","href":"/benchmarks/nodejs/tinybench"},{"title":"Writing benchmarks with benchmark.js","sidebarTitle":"benchmark.js","href":"/benchmarks/nodejs/benchmarkjs"},{"title":"Profiling apps with Playwright","sidebarTitle":"Playwright","href":"/benchmarks/nodejs/playwright"}]},{"iconType":"solid","title":"Writing Benchmarks in Go","sidebarTitle":"Go","icon":"golang","href":"/benchmarks/go"},{"group":"JVM","icon":"java","pages":[{"title":"Writing Benchmarks in Java","sidebarTitle":"Java","icon":"java","href":"/benchmarks/java"},{"title":"Writing Benchmarks in Kotlin","sidebarTitle":"Kotlin","icon":"https://mintlify.s3.us-west-1.amazonaws.com/codspeed/assets/icons/kotlin.svg","href":"/benchmarks/kotlin"},{"title":"Writing Benchmarks in Scala","sidebarTitle":"Scala","icon":"https://mintlify.s3.us-west-1.amazonaws.com/codspeed/assets/icons/scala.svg","href":"/benchmarks/scala"}]},{"title":"Writing Benchmarks with CLI Commands","sidebarTitle":"CLI Commands","icon":"square-terminal","href":"/benchmarks/cli-commands"}]},{"title":"CodSpeed CLI","icon":"square-terminal","href":"/cli"}]},{"group":"For Agents","tag":"NEW","pages":[{"title":"Wizard (@codspeedbot)","sidebarTitle":"Wizard","icon":"wand-magic-sparkles","iconType":"solid","href":"/ai/wizard"},{"title":"MCP Server","icon":"https://mintlify.s3.us-west-1.amazonaws.com/codspeed/assets/icons/mcp.svg","href":"/ai/mcp"},{"title":"Agent Skills","icon":"books","href":"/ai/skills"}]},{"group":"Instruments","pages":[{"title":"Performance Instruments","icon":"microscope","sidebarTitle":"Overview","href":"/instruments/index"},{"group":"CPU Simulation","icon":"/assets/icons/dataflow-03-secondary.svg","pages":[{"title":"CPU Simulation Instrument","sidebarTitle":"Overview","href":"/instruments/cpu/index"},{"title":"Benchmark Variance","sidebarTitle":"Benchmark Variance","href":"/instruments/cpu/regression-causes"},{"title":"Reducing Variance","sidebarTitle":"Reducing Variance","href":"/instruments/cpu/reducing-variance"},{"title":"Allocation Exclusion","sidebarTitle":"Allocation Exclusion","href":"/instruments/cpu/allocation-exclusion"}]},{"title":"Memory","sidebarTitle":"Memory","icon":"https://mintlify.s3.us-west-1.amazonaws.com/codspeed/assets/icons/data-secondary.svg","href":"/instruments/memory/index"},{"group":"Walltime","icon":"stopwatch","pages":[{"title":"Walltime Instrument Overview","sidebarTitle":"Overview","href":"/instruments/walltime/index"},{"title":"Profiling System Processes on macOS","sidebarTitle":"macOS Profiling","icon":"apple","href":"/instruments/walltime/macos-profiling"}]},{"group":"Databases","icon":"database","pages":[{"title":"Database Instrument Overview","sidebarTitle":"Overview","href":"/instruments/databases/overview"},{"group":"MongoDB","pages":[{"title":"MongoDB Instrumentation Overview","sidebarTitle":"Overview","href":"/instruments/databases/mongodb/index"},{"title":"NodeJS setup for MongoDB instrumentation","sidebarTitle":"NodeJS","href":"/instruments/databases/mongodb/nodejs/index"}]}]}]},{"group":"Integrations","pages":[{"group":"Repository Providers","icon":"code-branch","pages":[{"title":"Integrating with a Repository Provider","sidebarTitle":"Overview","href":"/integrations/providers/index"},{"title":"Integrating with GitHub","sidebarTitle":"GitHub","href":"/integrations/providers/github"},{"title":"Integrating with GitLab","sidebarTitle":"GitLab","href":"/integrations/providers/gitlab"}]},{"group":"CI Environments","icon":"rotate","pages":[{"title":"Running Benchmarks in CI","sidebarTitle":"Overview","href":"/integrations/ci/index"},{"group":"GitHub Actions","pages":[{"sidebarTitle":"Guide","title":"Running Benchmarks in GitHub Actions","href":"/integrations/ci/github-actions/index"},{"sidebarTitle":"Configuration","title":"Configuring GitHub Actions for CodSpeed","href":"/integrations/ci/github-actions/configuration"},{"sidebarTitle":"Macro Runners","title":"Macro Runners on GitHub Actions","href":"/integrations/ci/github-actions/macro-runners"}]},{"group":"GitLab CI","pages":[{"sidebarTitle":"Guide","title":"Running Benchmarks in GitLab CI","href":"/integrations/ci/gitlab-ci/index"},{"sidebarTitle":"Configuration","title":"Configuring GitLab CI for CodSpeed","href":"/integrations/ci/gitlab-ci/configuration"}]},{"group":"CircleCI","pages":[{"sidebarTitle":"Guide","title":"Running Benchmarks in CircleCI","href":"/integrations/ci/circleci/index"},{"sidebarTitle":"Configuration","title":"Configuring CircleCI for CodSpeed","href":"/integrations/ci/circleci/configuration"},{"sidebarTitle":"Macro Runners","title":"Macro Runners on CircleCI","href":"/integrations/ci/circleci/macro-runners"}]},{"sidebarTitle":"Buildkite","title":"Running Benchmarks in Buildkite","href":"/integrations/ci/buildkite"}]},{"title":"Macro Runners","icon":"server","href":"/features/macro-runners"}]},{"group":"Explore Features","pages":[{"title":"Performance Profiling and Flamegraphs","sidebarTitle":"Profiling","description":"Debug performance issues with detailed flamegraphs and execution profiles generated by CodSpeed's instrumentation","icon":"bars-sort","href":"/features/profiling"},{"sidebarTitle":"Performance Checks","title":"Setting up Continuous Performance Checks","icon":"circle-check","href":"/features/performance-checks/index"},{"description":"Learn how the CodSpeed metrics work","title":"Impact Metrics","icon":"chart-line","href":"/features/understanding-the-metrics/index"},{"title":"Customization","icon":"sliders","href":"/features/customization"},{"title":"Sharded Benchmarks","icon":"layer-group","href":"/features/sharded-benchmarks/index"},{"title":"Partial Runs","icon":"forward","href":"/features/partial-runs/index"},{"title":"Benchmark Archival","icon":"box-archive","href":"/features/archiving-benchmarks/index"},{"title":"Ignoring a Benchmark","icon":"eye-slash","href":"/features/ignoring-benchmarks/index"},{"title":"Roles \u0026 Permissions","icon":"users","href":"/features/roles-and-permissions/index"},{"title":"Seats \u0026 Billing","icon":"credit-card","href":"/features/seats-and-billing/index"}]},{"title":"Troubleshooting","icon":"bug","href":"/troubleshooting"},{"title":"Security","icon":"shield-check","href":"/security"},{"title":"Data Deletion","icon":"trash","href":"/data-deletion"}]},{"tab":"Guides","icon":"map","pages":[{"title":"Guides","href":"/guides"}]},{"tab":"API References","icon":"code","dropdowns":[{"dropdown":"API References","icon":"code","pages":[{"title":"API References","sidebarTitle":"Overview","href":"/reference"}]},{"dropdown":"pytest-codspeed","icon":"python","pages":[{"title":"pytest-codspeed documentation","sidebarTitle":"API Reference","href":"/reference/pytest-codspeed"}]},{"dropdown":"codspeed-rust","icon":"rust","pages":[{"title":"codspeed-rust documentation","sidebarTitle":"Home","icon":"house","href":"/reference/codspeed-rust/index"},{"title":"cargo-codspeed documentation","sidebarTitle":"cargo-codspeed","icon":"cubes","href":"/reference/codspeed-rust/cargo-codspeed"},{"group":"Compatibility layers","icon":"layer-group","pages":[{"title":"divan compatibility layer documentation","sidebarTitle":"divan (recommended)","href":"/reference/codspeed-rust/divan"},{"title":"criterion.rs compatibility layer documentation","sidebarTitle":"criterion.rs","href":"/reference/codspeed-rust/criterion"},{"title":"bencher (libtest) compatibility layer documentation","sidebarTitle":"bencher (libtest)","href":"/reference/codspeed-rust/bencher"}]}]}]},{"tab":"Blog","icon":"newspaper","href":"https://codspeed.io/blog"},{"tab":"We're hiring!","icon":"briefcase","href":"https://careers.codspeed.io"}]},"title":"Setting up Continuous Performance Checks - CodSpeed Docs","buildId":"dpl_DGmhKsAzJdVqypJzon18vViniWRY","deploymentId":"dpl_DGmhKsAzJdVqypJzon18vViniWRY","dynamics":["10e4515597","07c022d89b","a74be98ba7"],"chunks":["BannerMarkdown-Db5Nu5n1.js","dist-DN0dCbTw.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-BOmkPVIU.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","Frame-Bb6zlep0.js","DynamicMarkdown-34OtG_BH.js","zoom-image-lightbox-B_gjFIjh.js","lightbox-handle-r17bVUz3.js"]}