blob: c25b928498bb901f082c9cd572817c9620e60551 [file] [log] [blame]
<!doctype html>
<html lang="zh" dir="ltr" class="docs-wrapper docs-doc-page docs-version-v0.15 plugin-docs plugin-id-default docs-doc-id-Metrics/PRDeployTime">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-rc.1">
<link rel="alternate" type="application/rss+xml" href="/zh/blog/rss.xml" title="Apache DevLake - Open-Source Dev Data Platform for Productivity RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/zh/blog/atom.xml" title="Apache DevLake - Open-Source Dev Data Platform for Productivity Atom Feed"><title data-rh="true">PR Deploy Time | Apache DevLake - Open-Source Dev Data Platform for Productivity</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://devlake.apache.org/zh/docs/v0.15/Metrics/PRDeployTime"><meta data-rh="true" name="docusaurus_locale" content="zh"><meta data-rh="true" name="docsearch:language" content="zh"><meta data-rh="true" name="keywords" content="Engineering Productivity, Open-Source Engineering, Open-Source Integration Tools, Data Integrates Platform, Open-Source Dev Platform, Open-Source Data Integrates, DevOps Tools Integrates, Open-Source DevOps Tools"><meta data-rh="true" name="docusaurus_version" content="v0.15"><meta data-rh="true" name="docusaurus_tag" content="docs-default-v0.15"><meta data-rh="true" name="docsearch:version" content="v0.15"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-v0.15"><meta data-rh="true" property="og:title" content="PR Deploy Time | Apache DevLake - Open-Source Dev Data Platform for Productivity"><meta data-rh="true" name="description" content="PR Deploy Time
"><meta data-rh="true" property="og:description" content="PR Deploy Time
"><link data-rh="true" rel="icon" href="/zh/img/logo.svg"><link data-rh="true" rel="canonical" href="https://devlake.apache.org/zh/docs/v0.15/Metrics/PRDeployTime"><link data-rh="true" rel="alternate" href="https://devlake.apache.org/docs/v0.15/Metrics/PRDeployTime" hreflang="en-GB"><link data-rh="true" rel="alternate" href="https://devlake.apache.org/zh/docs/v0.15/Metrics/PRDeployTime" hreflang="zh"><link data-rh="true" rel="alternate" href="https://devlake.apache.org/docs/v0.15/Metrics/PRDeployTime" hreflang="x-default"><link rel="stylesheet" href="/zh/assets/css/styles.ddc6bf33.css">
<link rel="preload" href="/zh/assets/js/runtime~main.99419766.js" as="script">
<link rel="preload" href="/zh/assets/js/main.46683ed4.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region"><a href="#" class="skipToContent_fXgn">跳到主要内容</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/zh/"><div class="navbar__logo"><img src="/zh/img/logo.svg" alt="apache devlake" class="themedImage_ToTc themedImage--light_HNdA"><img src="/zh/img/logo.svg" alt="apache devlake" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Apache DevLake</b></a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Docs</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/zh/docs/Overview/Introduction">Next</a></li><li><a class="dropdown__link" href="/zh/docs/v1.0/Overview/Introduction">v1.0 (Stable)</a></li><li><a class="dropdown__link" href="/zh/docs/v0.21/Overview/Introduction">v0.21</a></li><li><a class="dropdown__link" href="/zh/docs/v0.20/Overview/Introduction">v0.20</a></li><li><a class="dropdown__link" href="/zh/docs/v0.19/Overview/Introduction">v0.19</a></li><li><a class="dropdown__link" href="/zh/docs/v0.18/Overview/Introduction">v0.18</a></li><li><a class="dropdown__link" href="/zh/docs/v0.17/Overview/Introduction">v0.17</a></li><li><a class="dropdown__link" href="/zh/docs/v0.16/Overview/Introduction">v0.16</a></li><li><a class="dropdown__link" href="/zh/docs/v0.15/Overview/Introduction">v0.15</a></li></ul></div><a class="navbar__item navbar__link" href="/zh/livedemo/EngineeringLeads/DORA">Use Cases</a><a class="navbar__item navbar__link" href="/zh/community/">Community</a><a class="navbar__item navbar__link" href="/zh/team">Team</a><a class="navbar__item navbar__link" href="/zh/blogOverview">Blog</a><a href="https://github.com/apache/incubator-devlake" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub</a><a class="navbar__item navbar__link" href="/zh/download">Download</a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">ASF</a><ul class="dropdown__menu"><li><a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Foundation</a></li><li><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="dropdown__link">License</a></li><li><a href="https://www.apache.org/events/current-event" target="_blank" rel="noopener noreferrer" class="dropdown__link">Events</a></li><li><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="dropdown__link">Security</a></li><li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Privacy</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Sponsorship</a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Thanks</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="切换浅色/暗黑模式(当前为浅色模式)" aria-label="切换浅色/暗黑模式(当前为浅色模式)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><div class="navbar__search searchBarContainer_NW3z"><input placeholder="搜索" aria-label="Search" class="navbar__search-input"><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebar_njMd"><nav class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/docs/v0.15/Overview">Overview</a><button aria-label="打开/收起侧边栏菜单「Overview」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/docs/v0.15/GettingStarted">Getting Started</a><button aria-label="打开/收起侧边栏菜单「Getting Started」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/docs/v0.15/UserManuals">User Manuals</a><button aria-label="打开/收起侧边栏菜单「User Manuals」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" aria-expanded="true" href="/zh/docs/v0.15/Metrics">Metrics</a><button aria-label="打开/收起侧边栏菜单「Metrics」" type="button" class="clean-btn menu__caret"></button></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/RequirementCount">Requirement Count</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/RequirementLeadTime">Requirement Lead Time</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/RequirementDeliveryRate">Requirement Delivery Rate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/RequirementGranularity">Requirement Granularity</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/BugAge">Bug Age</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/BugCountPer1kLinesOfCode">Bug Count per 1k Lines of Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/IncidentAge">Incident Age</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/IncidentCountPer1kLinesOfCode">Incident Count per 1k Lines of Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/CommitCount">Commit Count</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/CommitAuthorCount">Commit Author Count</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/AddedLinesOfCode">Added Lines of Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/DeletedLinesOfCode">Deleted Lines of Code</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/PRCount">PR Count</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/PRCycleTime">PR Cycle Time</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/PRCodingTime">PR Coding Time</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/PRPickupTime">PR Pickup Time</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/PRReviewTime">PR Review Time</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/zh/docs/v0.15/Metrics/PRDeployTime">PR Deploy Time</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/PRTimeToMerge">PR Time To Merge</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/PRMergeRate">PR Merge Rate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/PRReviewDepth">PR Review Depth</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/PRSize">PR Size</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/BuildCount">Build Count</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/BuildDuration">Build Duration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/BuildSuccessRate">Build Success Rate</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/DeploymentFrequency">DORA - Deployment Frequency</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/LeadTimeForChanges">DORA - Lead Time for Changes</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/MTTR">DORA - Median Time to Restore Service</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/zh/docs/v0.15/Metrics/CFR">DORA - Change Failure Rate</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/docs/v0.15/DataModels">Data Models</a><button aria-label="打开/收起侧边栏菜单「Data Models」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/docs/v0.15/DeveloperManuals">Developer Manuals</a><button aria-label="打开/收起侧边栏菜单「Developer Manuals」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/docs/v0.15/Plugins">Plugins</a><button aria-label="打开/收起侧边栏菜单「Plugins」" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/zh/docs/v0.15/Troubleshooting">Troubleshooting</a><button aria-label="打开/收起侧边栏菜单「Troubleshooting」" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/zh/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_OVgt"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/zh/docs/v0.15/Metrics"><span itemprop="name">Metrics</span></a><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">PR Deploy Time</span><meta itemprop="position" content="2"></li></ul></nav><span class="theme-doc-version-badge badge badge--secondary">版本:v0.15</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><header><h1>PR Deploy Time</h1></header><h2 class="anchor anchorWithStickyNavbar_LWe7" id="what-is-this-metric">What is this metric?<a class="hash-link" href="#what-is-this-metric" title="标题的直接链接"></a></h2><p>The time it takes from when a PR is merged to when it is deployed.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-is-it-important">Why is it important?<a class="hash-link" href="#why-is-it-important" title="标题的直接链接"></a></h2><ol><li>Based on historical data, establish a baseline of the delivery capacity of a single iteration to improve the organization and planning of R&amp;D resources.</li><li>Evaluate whether the delivery capacity matches the business phase and demand scale. Identify key bottlenecks and reasonably allocate resources.</li></ol><h2 class="anchor anchorWithStickyNavbar_LWe7" id="which-dashboards-does-it-exist-in">Which dashboard(s) does it exist in?<a class="hash-link" href="#which-dashboards-does-it-exist-in" title="标题的直接链接"></a></h2><ul><li><a href="/zh/livedemo/EngineeringLeads/EngineeringThroughputAndCycleTime">Engineering Throughput and Cycle Time</a></li><li><a href="/zh/livedemo/EngineeringLeads/EngineeringThroughputAndCycleTimeTeamView">Engineering Throughput and Cycle Time - Team View</a></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-is-it-calculated">How is it calculated?<a class="hash-link" href="#how-is-it-calculated" title="标题的直接链接"></a></h2><p><code>PR deploy time</code> is calculated by subtracting a PR&#x27;s deployed_date and merged_date. Hence, we should associate PR/MRs with deployments.</p><p>Here are the detailed steps:</p><p><img loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAABdCAYAAADnjh/mAAASwElEQVR4Xu3diY/U5B/Hcf8mNB6boAhGESSrgiiIQS5BQTSCF7usUUA8USMaMIog3ooYBEVBVkTFI6iI54KKgAcgiOvKDc8v7+eXZ9KtszN9Zp6ZdrqfV9K4dGba+rRP++1znmJEREREAjslvkJERESkWgowREREJDgFGCIiIhKcAgwREREJTgGGiIiIBKcAQ0RERIJTgCEiIiLBKcAQkYb0xx9/mNWrV5tdu3bFPxKRDFCAISINp62tzUyYMMEsXLjQTJo0yVxzzTXm0KFD8a+JSIoUYIhIQ9m8ebMNLqJGjRpl1q5d222diKRLAYaI1NTEiRPNpk2bzPjx401zc7OZMWOGOXDggP1sx44dpqWlxSxfvtwMHjzY3HvvvbFf/9f27dv/Uy0ybtw4s3Hjxm7rRCRdCjBEpKb69etnpk2bZv79919z8uRJs3TpUtPa2mo/27p1q+nbt6+58cYbTUdHh9m7d2/s1z3r7Ow0a9asMbNnz7ZBy5EjR+JfEZEUKcAQkZoiwGhvby/8m7YS/fv3N0ePHrUBRp8+fWyDTV+7d+828+fPt9Uj/FcBhki2KMAQkZoiwNizZ0+3daNHjzZbtmyxAcawYcO6fbZo0SK7Lr6MHDmy2/eipkyZYlatWhVfLSIpUoAhIjVFgBFtH3H8+HG7jioOAowRI0ZEvm3MsWPHzOHDh4suoAfJypUru/2G3iTz5s3rtk5E0qUAQ0RqimBi5syZ5uDBg+bEiRNmxYoVZvLkyfazYgFGOcuWLTPDhw83XV1d9t9UrwwZMsSsX78+9k0RSZMCDBGpKQKMd955xwwdOtRWddCThAadqCTAIEhZsGCB3R7tL5qamszixYvjXxORlCnAEJGaIsDYv3+/rRqhYWYo9Eih9IIqFRHJHgUYIlJTLsAQkd5FAYaI1BTVGYyBISK9iwIMERERCU4BhoiIiASnAENERESCU4AhIiIiwSnAEBERkeAUYIiIiEhwCjBEREQkOAUYIiIiEpwCDBEREQlOAYaIiIgEpwBDREREgkstwPjuu+/MF198EV/trb293fz+++/x1bmybds289dff8VXp2rixImmT58+WgIspGU96dyFW2p57v7880/z9ttvx1d76w33SJ4lK1eutLPrSnakFmA8++yzZv78+fHV3qZOnWo++eST+OpM2rJli3nxxRfjq3t06NAhm06nnXaa2bBhQ/zjVMVvtFqqW+opvm8t1S218s0335jRo0fHV3vL8z3y5MmTZubMmWbYsGFm4cKFZtKkSWbatGnm2LFj8a9KChRg1NFrr71m7r///vjqHo0dO9asWLHCXHvttZkNMKQ6aaRjGvvMo1qnY28MMHzvke+9955pbm62gYZz+eWXm3Xr1kW+JWmpW4CxceNGM3LkSHPRRReZefPmmWeeeaYQYJw4ccI8/fTT5uKLL7af33XXXYXpndesWWNefvlle9Fddtll9uJhnRPNPEePHrXbvOSSS+y27r777sJ25syZYz799NPC77gg+e1PP/1kHn30UXthT5gwwQwcONAe399//22mT59uBg8ebB588EFz4MAB+7tyx7po0SJ7rPzulltuMZs3b7afzZ49264bMGCAueqqq2wVUTlHjhyx/73++usVYORUGumYxj7zKHQ67tq1y1x33XX2HnTTTTeZDz/8sBBglLvvJL1HgqqEK664wm6Hz3bu3GnXN+I98rnnnrPbi5oyZYp9MZP01SXA4MI7//zzzdq1a20QwEXGheQCDEozeIj+9ttvpquryyxYsMBeeHj11VdN3759bWYDdWwEENu3b7f/jmaeBx54wNxxxx32wXz8+HHz+OOP2+IycMHdeuut9m9wUQ8dOtRmottuu80MHz7cZjTqPUeMGGGj4q1bt9rjaWtrMy+99JL9XbljPeOMM2wwQBEd+xw1apT9jAz2wgsv2KDnn3/+sceXlAKM/EojHdPYZx6FTkfuFUuWLLH3CqoKxo8fXwgwyt13kt4jebPn/sZ9DtxXBg0aZPfZyPdI5+effzZNTU1235K+ugQYNFSaNWtWt3WTJ08uBBgXXHCB+fLLLwufHTx40Jxzzjlm37599oIkIo968sknzdKlS+3fLvMcPnzYtlVwmQpcsKeffrp9M+Dvfv36mf3799vP7rnnHhv9gszz/PPPF373xBNPmJaWlsK/P/roI1tNgXLHyhuIQyTfv39/s2fPHvtv3+I/RwFGfqWRjmnsM49CpiNBAW/7UZQCuACj3H0nyT0SlEAsX748+lVbFUupRiPfI/H111/bF1f+XyQb6hJgEJFy4URRrEWAQUNGMumVV15pI1m3EB1///339oLkQo8iUifTwGUe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" width="536" height="93" class="img_ev3q"></p><ol><li>Find the <a href="https://devlake.apache.org/docs/Plugins/refdiff/" target="_blank" rel="noopener noreferrer">commits diff</a> between two consecutive deployments by deployments&#x27; commit_sha
under the same scope and environment (in terms of TESTING/STAGING/PRODUCTION),
for example, we will get commit-2 and commit-3 by calculating commits_diff between deployment-1 and deployment-2, which means commit-2 and commit-3 are deployed by deployment-2 </li><li>Connect PR/MR and commits_diff through merge_commit or pr_commit, for example,
we get pr-3 connected to commit-3</li><li>Now we can get pr-3&#x27;s deploy time by finish_time of deployment-2 minus merge_time of pr-3.</li></ol><b>Data Transformation Required</b><p>This metric relies on two sources:</p><ol><li>PR/MRs collected from GitHub or GitLab by enabling &quot;Code Review&quot; under the Data Entities section.</li><li>Deployments collected in one of the following ways::<ul><li>Open APIs of Jenkins, GitLab, GitHub, etc by enabling &quot;CICD&quot; under the Data Entities section.</li><li>Webhook for general CI tools.</li><li>Releases and PR/MRs from GitHub, GitLab APIs, etc.</li></ul></li></ol><b>SQL Queries</b><p>The following SQL shows how to find the <code>deploy time</code> of a specific PR. DevLake pre-calculates the metric and stores it in table.pull_requests.</p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">SELECT</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> deploy_timespan/60 as &#x27;PR Deploy Time(h)&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">FROM</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> pull_requests</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>If you want to measure the monthly trend of <code>PR deploy time</code> in the screenshot below, please run the following SQL in Grafana. </p><p><img loading="lazy" src="/zh/assets/images/pr-deploy-time-monthly-cc8f4e0f2bb961f51b6766625fcaf364.png" width="1083" height="342" class="img_ev3q"></p><div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">SELECT </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> DATE_ADD(date(created_date), INTERVAL -DAY(date(created_date))+1 DAY) as time,</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> avg(deploy_timespan)/60 as &#x27;PR Deploy Time(h)&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">FROM pull_requests</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">GROUP BY 1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ORDER BY 1</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="复制代码到剪贴板" title="复制" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-improve">How to improve?<a class="hash-link" href="#how-to-improve" title="标题的直接链接"></a></h2><p>N/A</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/incubator-devlake-website/edit/main/versioned_docs/version-v0.15/Metrics/PRDeployTime.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="文档分页导航"><a class="pagination-nav__link pagination-nav__link--prev" href="/zh/docs/v0.15/Metrics/PRReviewTime"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">PR Review Time</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/zh/docs/v0.15/Metrics/PRTimeToMerge"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">PR Time To Merge</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#what-is-this-metric" class="table-of-contents__link toc-highlight">What is this metric?</a></li><li><a href="#why-is-it-important" class="table-of-contents__link toc-highlight">Why is it important?</a></li><li><a href="#which-dashboards-does-it-exist-in" class="table-of-contents__link toc-highlight">Which dashboard(s) does it exist in?</a></li><li><a href="#how-is-it-calculated" class="table-of-contents__link toc-highlight">How is it calculated?</a></li><li><a href="#how-to-improve" class="table-of-contents__link toc-highlight">How to improve?</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/zh/docs/GettingStarted">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/zh/docs/DataModels/DevLakeDomainLayerSchema">Data Models</a></li><li class="footer__item"><a class="footer__link-item" href="/zh/docs/Metrics">Engineering Metrics</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://join.slack.com/t/devlake-io/shared_invite/zt-2ox842kuu-_6x3Lwdj88YpzKhMRpgnMg" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack</a></li><li class="footer__item"><a href="https://github.com/apache/incubator-devlake/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub Issue Tracker</a></li><li class="footer__item"><a href="https://github.com/apache/incubator-devlake-website/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub Issue Tracker For Docs</a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/apache/incubator-devlake" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub</a></li><li class="footer__item"><a href="https://twitter.com/ApacheDevLake" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter</a></li><li class="footer__item"><a class="footer__link-item" href="/zh/community/trademark">Trademark Guidelines</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">
<div style="margin-top: 20px">
<a href="https://incubator.apache.org/" target="_blank"><img style="height:40px; margin-bottom: 10px; margin-top: 10px" alt="Apache Software Foundation" src="/img/apache-incubator.svg"></a>
<p style="text-align:left; font-weight: 300; font-size: 0.8em;">Apache DevLake is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
<p style="text-align:left; font-weight: 300; font-size: 0.8em;">Copyright ©2025 Apache DevLake, DevLake, Apache, the Apache feather logo and the Apache DevLake project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
</div>
</div></div></div></footer></div>
<script src="/zh/assets/js/runtime~main.99419766.js"></script>
<script src="/zh/assets/js/main.46683ed4.js"></script>
</body>
</html>